Så här uppmanar du användaren att spara ändringar i posten i ett formulär i Access

Ursprungligt KB-nummer: 197103

Tips

Kräver grundläggande makron, kodning och kompatibilitetsfärdigheter.

Sammanfattning

När du flyttar till nästa post i ett formulär eller stänger ett formulär sparar Microsoft Access automatiskt alla ändringar som du har gjort i den aktuella posten. Den här artikeln visar hur du använder en BeforeUpdate-händelseprocedur för att uppmana dig att verifiera spara-åtgärden innan Microsoft Access fortsätter.

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov.

Mer information

Försiktighet

Om du följer stegen i det här exemplet ändrar du exempeldatabasen Northwind.mdb. Du kanske vill säkerhetskopiera Northwind.mdb-filen och följa de här stegen på en kopia av databasen.

I det här exemplet används händelseproceduren BeforeUpdate i formuläret Kunder för att uppmana användaren att bekräfta ändringarna innan Microsoft Access sparar posten:

  1. Öppna exempeldatabasen Northwind.mdb och öppna formuläret Kunder i designvyn.

  2. Ange formulärets BeforeUpdate egenskap till följande händelseprocedur:

    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. felsökningsmenyn klickar du på Kompilera Northwind.

  4. Klicka på Spara NorthwindArkiv-menyn.

  5. Arkiv-menyn klickar du på Stäng och återgå till Microsoft Access.

När du nu gör en ändring i en post och sedan antingen flyttar till en annan post eller stänger formuläret uppmanas du att bekräfta att du vill spara den aktuella posten. Om du klickar på Nej återställs posten och åtgärden fortsätter som vanligt.