Ereignis Form.AfterDelConfirm (Access)

Das AfterDelConfirmation-Ereignis tritt auf, nachdem der Benutzer bestätigt hat, dass die Löschungen und Datensätze tatsächlich gelöscht wurden, oder wenn die Löschungen abgebrochen werden.

Syntax

Ausdruck verwendet werden. AfterDelConfirm (Status)

expression Eine Variable, die ein Form-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Status Erforderlich Integer Eine systeminterne Konstante, die angibt, ob ein Datensatz gelöscht wurde. acDeleteOK gibt an, dass der Löschvorgang erfolgreich war. acDeleteCancel gibt an, dass der Löschvorgang in Visual Basic abgebrochen wurde. acDeleteUserCancel gibt an, dass der Löschvorgang vom Benutzer abgebrochen wurde.

Hinweise

Wenn Sie ein Makro oder eine Ereignisprozedur ausführen möchten, wenn diese Ereignisse auftreten, legen Sie die AfterDelConfirmate-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 Microsoft Access-Datenbank tritt das AfterDelConfirm-Ereignis nach dem tatsächlichen Löschen eines oder mehrerer Datensätze oder nach dem Abbrechen eines oder mehrerer Löschvorgänge auf. 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 auf dann auf, wenn das BeforeDelConfirm -Ereignis abgebrochen wird. Die AfterDelConfirm -Ereignisprozedur gibt Statusinformationen über den Löschvorgang zurück. Sie können z. B. ein Makro oder eine Ereignisprozedur verwenden, die dem AfterDelConfirmation-Ereignis zugeordnet ist, um die vom Löschen von Datensätzen betroffenen Summen neu zu berechnen.

In einem Access-Projekt (.adp) tritt das AfterDelConfirmation-Ereignis auf, bevor ein Datensatz oder Datensätze tatsächlich gelöscht werden. Um das Öffnen unnötiger Transaktionen in Microsoft SQL Server zu vermeiden, werden Sie vor dem Öffnen der Transaktion von Access aufgefordert, den Löschvorgang 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 bzw. die Datensätze zu löschen, und löst das Delete-Ereignis des Formulars aus. Wenn Sie bei der Aufforderung zur Bestätigung des Löschvorgangs Nein auswählen, öffnet Access keine Transaktion auf SQL Server, um den Datensatz zu löschen, und löst auch nicht das Delete-Ereignis des Formulars aus.

Wenn Sie das Löschereignis abbrechen, tritt das Ereignis AfterDelConfirm nicht auf, und das Dialogfeld "Löschbestätigung " wird nicht angezeigt.

Hinweis

Das Ereignis AfterDelConfirm tritt nicht auf, und das Dialogfeld "Bestätigen löschen" wird nicht angezeigt, wenn Sie das Kontrollkästchen "Änderungen aufzeichnen"unter "Bestätigen " auf der Registerkarte "Bearbeiten " des Dialogfelds "Access-Optionen" 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 zum nächsten Datensatz nach dem gelöschten Datensatz verschoben, und das Current-Ereignis für diesen Datensatz tritt ein, gefolgt von den Enter - und GotFocus-Ereignissen für das erste Steuerelement in diesem Datensatz.

Das Ereignis BeforeDelConfirm tritt dann ein, kurz bevor Access das Dialogfeld "Löschen bestätigen " anzeigt und Sie auffordert, 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 AfterDelConfirm-Ereignis tritt ebenfalls erst auf, wenn alle markierten Datensätze gelöscht sind.

Beispiel

Das folgende Beispiel zeigt, wie Sie die BeforeDelConfirmation-Ereignisprozedur verwenden können, um das Dialogfeld "Delete Confirm " 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.