Form.Delete-Ereignis (Access)

Tritt auf, wenn der Benutzer eine Aktion ausführt, z. B. das Drücken der ENTF-TASTE, um einen Datensatz zu löschen, jedoch bevor der Datensatz tatsächlich gelöscht wird.

Syntax

Ausdruck verwendet werden. Löschen (Abbrechen)

expression Eine Variable, die ein Form-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Abbrechen Erforderlich Integer Durch die Einstellung wird bestimmt, ob das BeforeUpdate-Ereignis auftritt. Wenn Sie das Cancel-Argument auf True (1) festlegen, wird das Delete-Ereignis abgebrochen.

Hinweise

Wenn Sie ein Makro oder eine Ereignisprozedur ausführen möchten, wenn diese Ereignisse auftreten, legen Sie die Eigenschaft OnDelete, BeforeDelConfirm oder AfterDelConfirm auf den Namen des Makros oder auf [Ereignisprozedur] fest.

Wenn ein Datensatz gelöscht ist, wird er in einem temporären Puffer gespeichert. Das BeforeDelConfirm-Ereignis tritt nach dem Delete-Ereignis auf (oder wenn Sie mehrere Datensätze gelöscht haben, nach dem Löschen aller Datensätze mit einem Delete-Ereignis für jeden Datensatz), 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.

Das AfterDelConfirm Ereignis tritt auf, nachdem ein Datensatz oder Datensätze tatsächlich gelöscht wurden oder nachdem ein oder mehrere Löschvorgänge abgebrochen wurden. Wenn das BeforeDelConfirm -Ereignis nicht abgebrochen wird, tritt das AfterDelConfirm -Ereignis auf, nachdem das Löschen bestätigen-Dialogfeld 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 mit dem AfterDelConfirm-Ereignis verknüpftes Makro verwenden, um Summen neu zu berechnen, die vom Löschen von Datensätzen betroffen sind.

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

Hinweis

Die Ereignisse BeforeDelConfirm und AfterDelConfirm treten nicht auf, und das Dialogfeld "Löschen bestätigen" wird nicht angezeigt, wenn Sie das Kontrollkästchen "Änderungen aufzeichnen" auf der Registerkarte "Erweitert" des Dialogfelds "Zugriffsoptionen" deaktivieren, das durch Klicken auf die Schaltfläche "Microsoft Office" und dann auf "Zugriffsoptionen" verfügbar ist.

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.

Um einen Datensatz zu löschen, können Sie im Menü Bearbeiten die Option Datensatz löschen wählen. Dadurch wird der aktuelle Datensatz (der Datensatz, der durch den Datensatzmarkierer gekennzeichnet ist) gelöscht. Sie können auch die Datensatzauswahl auswählen oder im Menü "Bearbeiten" die Option "Datensatz auswählen" wählen, um den Datensatz auszuwählen, und dann die ENTF-TASTE drücken, um ihn zu löschen. Wenn Sie Datensatz löschen, die Datensatzauswahl des aktuellen Datensatzes, oder Datensatz auswählen wählen, treten die Exit - und LostFocus-Ereignisse für das Steuerelement auf, das den Fokus hat. Wenn Sie Daten im Datensatz geändert haben, treten die Ereignisse BeforeUpdate und AfterUpdate für den Datensatz vor den Ereignissen Exit und LostFocus auf. Wenn Sie die Datensatzauswahl eines anderen Datensatzes auswählen, tritt auch das aktuelle Ereignis für diesen Datensatz ein.

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 BeforeDelConfirm-Ereignis tritt auf, direkt bevor in Microsoft Access das Dialogfeld Löschen bestätigen angezeigt wird, indem 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 Datensatz, der auf den letzten gelöschten Datensatz folgt, sowie die Enter - und GotFocus-Ereignisse für das erste Steuerelement in diesem Datensatz erst auf, wenn alle Datensätze gelöscht wurden. Das Delete -Ereignis tritt also für jeden markierten Datensatz auf, jedoch keine weiteren Ereignisse, bis alle markierten Datensätze gelöscht sind. Ebenso treten die Ereignisse BeforeDelConfirm und AfterDelConfirm erst auf, wenn alle markierten Datensätze gelöscht sind.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie verhindern können, dass ein Benutzer Datensätze aus einer Tabelle löscht. Zum Testen dieses Beispiels fügen Sie die nachstehende Ereignisprozedur zu einem Formular hinzu, das auf einer Tabelle basiert. Wechseln Sie zur Datenblattansicht des Formulars, und versuchen Sie, einen Datensatz zu löschen.

Private Sub Form_Delete(Cancel As Integer) 
    Cancel = True 
    MsgBox "This record can't be deleted." 
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.