Form.BeforeDelConfirm-Ereignis (Access)

Das BeforeDelConfirm-Ereignis tritt auf, nachdem der Benutzer einen oder mehrere Datensätze gelöscht hat, jedoch bevor Microsoft Access ein Dialogfeld anzeigt, in dem der Benutzer zur Bestätigung des Löschvorgangs aufgefordert wird.

Syntax

Ausdruck. BeforeDelConfirm (Abbrechen, Antwort)

expression Eine Variable, die ein Form-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Abbrechen Erforderlich Integer Die Einstellung bestimmt, ob das BeforeDelConfirm-Ereignis auftritt. Setting the Cancel argument to True cancels the BeforeDelConfirm event and prevents the Delete Confirm dialog box from being displayed. If the event is canceled, the original records are restored, but the AfterDelConfirm event still occurs. If Cancel is set to True, the Response argument is ignored. Wenn Cancel auf False (0) festgelegt ist, was standardmäßig der Wert ist, wird der Wert im Argument Response von Access verwendet, um den Typ der Antwort auf das Delete-Ereignis zu bestimmen.
Antwort Erforderlich Integer Eine systeminterne Konstante, die bestimmt, ob Access das Dialogfeld Löschen bestätigen anzeigt, in dem Sie gefragt werden, ob der Datensatz gelöscht werden soll. acDataErrContinue continues without displaying the Delete Confirm dialog box. Setting the Cancel argument to False and the Response argument to acDataErrContinue enables Microsoft Access to delete records without prompting the user. acDataErrDisplay displays the Delete Confirm dialog box. The default value is acDataErrDisplay.

HinwBemerkungeneise

Um ein Makro oder eine Ereignisprozedur auszuführen, wenn diese Ereignisse auftreten, legen Sie die BeforeDelConfirm-Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.

Wenn ein Datensatz gelöscht ist, wird er in einem temporären Puffer gespeichert. In einer Access-Datenbank tritt das BeforeDelConfirm-Ereignis nach dem Delete-Ereignis auf (oder wenn Sie mehrere Datensätze gelöscht haben, nachdem alle Datensätze gelöscht wurden, wobei für jeden Datensatz ein Delete-Ereignis auftritt), aber bevor das Dialogfeld Löschen Bestätigen angezeigt wird. Durch Abbrechen des BeforeDelConfirm -Ereignisses werden die Datensätze aus dem Puffer wiederhergestellt, und es wird verhindert, dass das Dialogfeld Löschen bestätigen angezeigt wird.

In einer Access-Datenbank tritt das AfterDelConfirm-Ereignis auf, nachdem ein oder mehrere Datensätze tatsächlich gelöscht wurden oder nachdem ein Löschvorgang oder ein Löschvorgang abgebrochen wurde. Wenn das BeforeDelConfirm -Ereignis nicht abgebrochen wird, tritt das AfterDelConfirm -Ereignis auf, nachdem das Dialogfeld zum Bestätigen des Löschvorgangs angezeigt wurde. Das AfterDelConfirm -Ereignis tritt auch dann auf, wenn das BeforeDelConfirm -Ereignis abgebrochen wird.

Wenn Sie das Delete-Ereignis abbrechen, tritt das BeforeDelConfirm-Ereignis nicht auf, und das Dialogfeld Löschen bestätigen wird nicht angezeigt.

In einem Access-Projekt (ADP) tritt das BeforeDelConfirm-Ereignis vor dem Delete-Ereignis auf. Um das Öffnen unnötiger Transaktionen in Microsoft SQL Server zu vermeiden, fordert Access Sie auf, den Löschvorgang vor dem Öffnen der Transaktion zu bestätigen. Wenn Sie den Löschvorgang bestätigen, öffnet Access eine Transaktion auf SQL Server, gibt die DELETE-Anweisung aus, um den Datensatz oder die Datensätze zu löschen, und löst das Delete-Ereignis des Formulars aus. Wenn Sie Nein auswählen, wenn Sie aufgefordert werden, den Löschvorgang zu bestätigen, öffnet Access keine Transaktion auf SQL Server, um den Datensatz zu löschen, und löst das Delete-Ereignis des Formulars nicht aus.

Hinweis

Das BeforeDelConfirm-Ereignis tritt nicht auf, und das Dialogfeld Löschen bestätigen wird nicht angezeigt, wenn Sie das Kontrollkästchen Änderungen aufzeichnenunter Bestätigen auf der Registerkarte Bearbeiten des Dialogfelds Zugriffsoptionen deaktivieren.

Durch Ausführen eines Makros oder einer Ereignisprozedur beim Auftreten des Delete-Ereignisses können Sie das Löschen eines Datensatzes verhindern oder nur unter bestimmten Bedingungen zulassen, dass ein Datensatz gelöscht wird. Sie können ein Delete-Ereignis auch verwenden, um ein Dialogfeld anzuzeigen, in dem der Benutzer vor dem Löschen eines Datensatzes gefragt wird, ob er den Datensatz löschen möchte.

Nachdem Sie den Datensatz gelöscht haben, wird der Fokus auf den nächsten Datensatz verschoben, der auf den gelöschten Datensatz folgt, und das Current-Ereignis für diesen Datensatz tritt auf, gefolgt von den Enter - und GotFocus-Ereignissen für das erste Steuerelement in diesem Datensatz.

Das BeforeDelConfirm-Ereignis tritt dann ein, kurz bevor Access das Dialogfeld Löschen bestätigen anzeigt, in dem Sie aufgefordert werden, den Löschvorgang zu bestätigen. Wenn Sie die Frage im Dialogfeld durch Bestätigen oder Abbrechen des Löschvorgangs beantwortet haben, tritt das AfterDelConfirm -Ereignis auf.

Es können ein oder mehrere Datensätze gleichzeitig gelöscht werden. Das Delete-Ereignis tritt nach dem Löschen jedes einzelnen Datensatzes auf. Dies ermöglicht es Ihnen, vor dem tatsächlichen Löschen auf die Daten in den einzelnen Datensätzen zuzugreifen und die einzelnen Löschvorgänge im Makro oder der Ereignisprozedur für das Delete-Ereignis zu bestätigen oder abzubrechen. Wenn Sie mehrere Datensätze löschen, treten das Current -Ereignis für den auf den letzten gelöschten Datensatz folgenden Datensatz und die Ereignisse Enter und GotFocus für das erste Steuerelement dieses Datensatzes erst dann auf, wenn alle Datensätze gelöscht sind. Das Delete -Ereignis tritt also für jeden markierten Datensatz auf, jedoch keine weiteren Ereignisse, bis alle markierten Datensätze gelöscht sind. Das BeforeDelConfirm-Ereignis tritt erst auf, wenn alle markierten Datensätze gelöscht sind.

Beispiel

Das folgende Beispiel zeigt, wie Sie die BeforeDelConfirm-Ereignisprozedur verwenden können, um das Dialogfeld Löschen bestätigen zu unterdrücken und ein benutzerdefiniertes Dialogfeld anzuzeigen, wenn ein Datensatz gelöscht wird. Außerdem wird gezeigt, wie Sie die AfterDelConfirm-Ereignisprozedur verwenden können, um eine Meldung anzuzeigen, die angibt, ob der Löschvorgang in der üblichen Weise fortgesetzt wurde oder ob er in Visual Basic oder vom Benutzer abgebrochen wurde.

Private Sub Form_BeforeDelConfirm(Cancel As Integer, _ 
 Response As Integer) 
 ' Suppress default Delete Confirm dialog box. 
 Response = acDataErrContinue 
 ' Display custom dialog box. 
 If MsgBox("Delete this record?", vbOKCancel) = vbCancel Then 
 Cancel = True 
 End If 
End Sub 
 
Private Sub Form_AfterDelConfirm(Status As Integer) 
 Select Case Status 
 Case acDeleteOK 
 MsgBox "Deletion occurred normally." 
 Case acDeleteCancel 
 MsgBox "Programmer canceled the deletion." 
 Case acDeleteUserCancel 
 MsgBox "User canceled the deletion." 
 End Select 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.