So fordern Sie den Benutzer auf, Änderungen an einem Datensatz in einem Formular in Access zu speichern

Ursprüngliche KB-Nummer: 197103

Tipp

Erfordert grundlegende Makro-, Codierungs- und Interoperabilitätskenntnisse.

Zusammenfassung

Wenn Sie zum nächsten Datensatz auf einem Formular wechseln oder ein Formular schließen, speichert Microsoft Access automatisch alle Änderungen, die Sie am aktuellen Datensatz vorgenommen haben. In diesem Artikel erfahren Sie, wie Sie mithilfe einer BeforeUpdate-Ereignisprozedur aufgefordert werden, den Speichervorgang zu überprüfen, bevor Microsoft Access fortgesetzt wird.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.

Weitere Informationen

Achtung

Wenn Sie die Schritte in diesem Beispiel ausführen, ändern Sie die Beispieldatenbank Northwind.mdb. Möglicherweise möchten Sie die Northwind.mdb-Datei sichern und die folgenden Schritte für eine Kopie der Datenbank ausführen.

In diesem Beispiel wird die BeforeUpdate-Ereignisprozedur im Kundenformular verwendet, um den Benutzer aufzufordern, Änderungen zu bestätigen, bevor Microsoft Access den Datensatz speichert:

  1. Öffnen Sie die Beispieldatenbank Northwind.mdb, und öffnen Sie das Formular Kunden in der Entwurfsansicht.

  2. Legen Sie die -Eigenschaft des Formulars BeforeUpdate auf die folgende Ereignisprozedur fest:

    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. Klicken Sie im Menü Debuggen auf Northwind kompilieren.

  4. Klicken Sie im Menü Datei auf Save Northwind (Northwind speichern).

  5. Klicken Sie im Menü Datei auf Schließen und zu Microsoft Access zurückkehren.

Wenn Sie nun eine Änderung an einem Datensatz vornehmen und dann entweder zu einem anderen Datensatz wechseln oder das Formular schließen, werden Sie aufgefordert, zu bestätigen, dass Sie den aktuellen Datensatz speichern möchten. Wenn Sie auf Nein klicken, wird der Datensatz zurückgesetzt, und der Vorgang wird normal fortgesetzt.