De gebruiker vragen om wijzigingen in de record op te slaan in een formulier in Access

Origineel KB-nummer: 197103

Tip

Vereist basisvaardigheden op het gebied van macro's, coderen en interoperabiliteit.

Samenvatting

Wanneer u naar de volgende record in een formulier gaat of een formulier sluit, worden alle wijzigingen die u in de huidige record hebt aangebracht, automatisch opgeslagen. In dit artikel wordt beschreven hoe u een BeforeUpdate-gebeurtenisprocedure gebruikt om u te vragen de opslagbewerking te controleren voordat Microsoft Access wordt voortgezet.

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

Meer informatie

Voorzichtigheid

Als u de stappen in dit voorbeeld volgt, wijzigt u de voorbeelddatabase Northwind.mdb. Mogelijk wilt u een back-up maken van het Northwind.mdb-bestand en deze stappen uitvoeren op een kopie van de database.

In dit voorbeeld wordt de gebeurtenisprocedure BeforeUpdate in het formulier Klanten gebruikt om de gebruiker te vragen wijzigingen te bevestigen voordat Microsoft Access de record opslaat:

  1. Open de voorbeelddatabase Northwind.mdb en open het formulier Klanten in de ontwerpweergave.

  2. Stel de eigenschap van BeforeUpdate het formulier in op de volgende gebeurtenisprocedure:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    
     ' This procedure checks to see if the data on the form has
     ' changed. If the data has changed, the procedure prompts the
     ' user to continue with the save operation or to cancel it. Then
     ' the action that triggered the BeforeUpdate event is completed.
    
     Dim ctl As Control
    
     On Error GoTo Err_BeforeUpdate
    
     ' The Dirty property is True if the record has been changed.
     If Me.Dirty Then
       ' Prompt to confirm the save operation.
       If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
               "Save Record") = vbNo Then
          Me.Undo
       End If
     End If
    
    Exit_BeforeUpdate:
     Exit Sub
    
    Err_BeforeUpdate:
     MsgBox Err.Number & " " & Err.Description
     Resume Exit_BeforeUpdate
    End Sub
    
  3. Klik in het menu Foutopsporing op Northwind compileren.

  4. Klik in het menu Bestand op Opslaan northwind.

  5. Klik in het menu Bestand op Sluiten en terugkeren naar Microsoft Access.

Wanneer u nu een wijziging aanbrengt in een record en vervolgens naar een andere record gaat of het formulier sluit, wordt u gevraagd om te bevestigen dat u de huidige record wilt opslaan. Als u op Nee klikt, wordt de record opnieuw ingesteld en gaat de bewerking gewoon door.