VBA Verwijder meerdere records

Status
Niet open voor verdere reacties.

Kirana2014

Gebruiker
Lid geworden
21 okt 2020
Berichten
55
Beste allemaal,

De gebruiker selecteert (door te markeren) de records met de recordkiezer. Ik moet VBA-code toevoegen aan een verwijderknop waarmee alle geselecteerde records worden verwijderd. Als ik dat doe, wordt alleen het eerste record verwijderd.

Hoe maak ik van de gemarkeerde records de actieve records en verwijder ik ze allemaal tegelijk?

Code:
Private Sub Command493_Click()
Dim strPasswd
    Dim stDocName As String
    Dim stLinkCriteria As String
 
On Error GoTo Err_Command6_Click_Error
    strPasswd = InputBox("Enter Password", "Restricted Form")
 
    If strPasswd = "" Or strPasswd = Empty Then
        MsgBox "No Input Provided", vbInformation, "Required Data"
        Exit Sub
    End If
 
    If strPasswd = "12345" Then
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord
    Else
        MsgBox "Sorry, you do not have access to this form", vbOKOnly, _
            "Important Information"
        Exit Sub
    End If
Exit_ErrorHandler:
  Exit Sub
Err_Command6_Click_Error:
  If Err.Number = 2501 Then
    MsgBox "Delete action cancelled"
    Resume Exit_ErrorHandler
  Else
    MsgBox "Error " & Err.Number & " (" & Err.Description & _
        ") in procedure Command6_Click of VBA Document Form_T2 at Line " & Erl
    Resume Exit_ErrorHandler
  End If

End Sub
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    43,9 KB · Weergaven: 30
Laatst bewerkt:
[XML][/XML]Waarom maak je geen verwijderquery op basis van een selectievakje?
 
Andere oplossing (want ik vind die van jou niet echt geweldig): een formulier heeft een aantal eigenschappen, zoals Bewerken toestaan, Toevoegen toestaan en Verwijderen toestaan. Als je niet wilt dat gebruikers records kunnen verwijderen (en dat wil je zo te zien niet) dan kun je die eigenschap(pen) dus uitzetten. En m.b.v. je knop zet je AllowDeletions dus aan. Dan kan een gebruiker records selecteren en verwijderen. Heb je verder geen trucs meer nodig.
 
Ik zie dat je er een plaatje bij hebt gezet. Dat verandert niets aan mijn laatste antwoord: zet de eigenschap <Verwijderen toestaan> op Nee, en laat de gebruiker middels de knop (en wachtwoord) de instelling veranderen naar Ja, zodat ze probleemloos records kunnen selecteren en verwijderen op de gewenste manier. Zet desnoods daarna de eigenschap weer op Nee zodat ze niet per ongeluk nog een keer records verwijderen.
 
@bharm: ‘t is niet: meeste stemmen gelden. Als alle 30.000 actieve gebruikers berichtjes gaan posten met als tekst: “zou ik ook doen” dan wordt het draadje érg onleesbaar :). Post dus alléén wat als je wat ànders in wilt brengen!
 
Oké, begrepen!

Laat ik dan wat toevoegen.

Persoonlijk zou ik, uiteraard afhankelijk van het soort tabel, nooit records verwijderen. In dit geval lijkt het te gaan om een klantenbestand oid.
Ik zou dan bijv een veld toevoegen "Active" Ja/Nee. En dan een Query maken en voortaan alleen die records tonen waarvan het veld "Active" True is.
 
@ Bharm: Dat is ook hetgeen ik zou toepassen :D :D :p
 
Persoonlijk zou ik, uiteraard afhankelijk van het soort tabel, nooit records verwijderen.
Database beslissingen moet je niet baseren op persoonlijke voorkeuren, maar op basis van goedgekeurde processen :).
Er zijn zat redenen te bedenken om wél records te verwijderen, bijvoorbeeld in geval van dubbel opgevoerde personen o.i.d.. Zolang je de processen niet kent, zou ik mij dus onthouden van aanbevelingen of je wel of niet mag verwijderen :). Neem alleen al het feit dat je vanuit de AVG sommige gegevens niet meer mág bewaren, en dat je die dus wel móet verwijderen of zodanig anonimiseren dat ze niet meer herleidbaar zijn.

Neemt uiteraard niet weg dat het bedrijfsmatig niet slim is om records te verwijderen die rechtstreeks invloed hebben op de bedrijfsresultaten. Maar goed, wij kennen de processen niet, dus enige terughoudendheid lijkt mij op zijn plaats....
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan