NavigationControl.BeforeUpdate-Ereignis (Access)

Das BeforeUpdate-Ereignis tritt auf, bevor geänderte Daten in einem Steuerelement oder Datensatz aktualisiert werden.

Syntax

Ausdruck. BeforeUpdate (Abbrechen)

Ausdruck Eine Variable, die ein NavigationControl-Objekt darstellt.

Parameter

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

Rückgabewert

Nichts

Bemerkungen

Das Ändern von Daten in einem Steuerelement mit Visual Basic oder einem Makro, das die "SetValue"-Aktion enthält, löst diese Ereignisse nicht für das Steuerelement aus. Wenn Sie dann jedoch zu einem anderen Datensatz wechseln oder den Datensatz speichern, tritt das Ereignis BeforeUpdate doch ein.

Wenn bei Eintreten dieses Ereignisses ein Makro oder eine Ereignisprozedur ausgeführt werden sollen, legen Sie die BeforeUpdate Eigenschaft auf den Namen des Makros oder auf eine Ereignisprozedur fest.

Dieses Ereignis gilt nicht für Optionsfelder, Kontrollkästchen oder Umschaltflächen in einer Optionsgruppe. Sie betrifft nur die Optionsgruppe selbst.

Das BeforeUpdate-Ereignis wird ausgelöst, wenn ein Steuerelement oder ein Datensatz aktualisiert wird. Innerhalb eines Datensatzes werden geänderte Daten in jedem Steuerelement aktualisiert, wenn das Steuerelement den Fokus verliert oder wenn der Benutzer die EINGABETASTE oder TAB drückt. Wenn der Fokus den Datensatz verlässt oder der Benutzer im Menü Datensätze auf Datensatz speichern klickt, wird der gesamte Datensatz aktualisiert, und die Daten werden in der Datenbank gespeichert.

Wenn Sie neue oder geänderte Daten in ein Steuerelement auf einem Formular eingeben und dann zu einem anderen Datensatz wechseln oder den Datensatz speichern, indem Sie im Menü Datensätze auf Datensatz speichern klicken, tritt das AfterUpdate-Ereignis für das Formular unmittelbar nach dem AfterUpdate-Ereignis für das Steuerelement ein.

Wenn Sie zu einem anderen Datensatz wechseln, treten die Exit - und LostFocus-Ereignisse für das Steuerelement auf, gefolgt vom Current-Ereignis für den Datensatz, zu dem Sie verschoben haben, und den Enter - und GotFocus-Ereignissen für das erste Steuerelement in diesem Datensatz. Zum Ausführen des Makros oder der Ereignisprozedur für AfterUpdate ohne Ausführen der Makros oder Ereignisprozeduren für Exit und LostFocus speichern Sie den Datensatz mithilfe des Befehls Datensatz speichern im Menü Datensätze.

Die Makros und Ereignisprozeduren für BeforeUpdate werden nur ausgeführt, wenn Sie die Daten in einem Steuerelement ändern. Dieses Ereignis tritt nicht auf, wenn ein Wert in einem berechneten Steuerelement geändert wird. Die Makros und Ereignisprozeduren für BeforeUpdate für ein Formular werden nur ausgeführt, wenn Sie die Daten in einem oder mehreren Steuerelementen des Datensatzes ändern.

Für Formulare können Sie das BeforeUpdate-Ereignis verwenden, um die Aktualisierung eines Datensatzes abzubrechen, bevor Sie zu einem anderen Datensatz wechseln.

Wenn der Benutzer einen neuen Wert in das Steuerelement eingibt, wird die Einstellung der OldValue-Eigenschaft erst geändert, wenn die Daten gespeichert werden (wenn der Datensatz aktualisiert wird). Wenn Sie eine Aktualisierung abbrechen, ersetzt der Wert der Eigenschaft OldValue den vorhandenen Wert in dem Steuerelement.

Sie verwenden das BeforeUpdate-Ereignis häufig, um Daten zu überprüfen, insbesondere bei komplexen Gültigkeitsüberprüfungen, wie z. B.:

  • Bedingungen für mehr als einen Wert in einem Formular umfassen.
  • Gültigkeitsüberprüfungen, die verschiedene Fehlermeldungen für verschiedene eingegebene Daten anzeigen.
  • Gültigkeitsüberprüfungen, die durch den Benutzer außer Kraft gesetzt werden können.
  • Gültigkeitsüberprüfungen, die Verweise auf Steuerelemente anderer Formulare bzw. auf benutzerdefinierte Funktionen enthalten.

Hinweis

Wenn Sie einfache oder komplexere Validierungen ausführen möchten, wie das Überprüfen von erforderlichen Werten in einem Feld oder das Validieren von mehr als einem Steuerelement in einem Formular, können Sie für Steuerelemente die Eigenschaft ValidationRule und für Felder und Datensätze in Tabellen die Eigenschaften ValidationRule und Required verwenden.

Ein Laufzeitfehler tritt auf, wenn Sie versuchen, die in dem Steuerelement enthaltenen Daten zu ändern, das das BeforeUpdate-Ereignis in der Ereignisprozedur ausgelöst hat.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie eine BeforeUpdate- Ereignisprozedur verwenden können, um zu überprüfen, ob ein Produktname bereits in die Datenbank eingegeben wurde. Nachdem der Benutzer einen Produktnamen in das Feld ProductName eingegeben hat, wird der Wert mit dem Feld ProductName in der Tabelle Products verglichen. Wenn in der Tabelle Products ein übereinstimmender Wert gefunden wird, wird der Benutzer per Meldung darüber informiert, dass das Produkt bereits eingegeben wurde.

Wenn Sie das Beispiel ausprobieren möchten, fügen Sie einem Formular mit dem Namen Products, das ein Textfeld ProductName enthält, folgende Ereignisprozedur hinzu.

Private Sub ProductName_BeforeUpdate(Cancel As Integer) 
 If(Not IsNull(DLookup("[ProductName]", _ 
 "Products", "[ProductName] ='" _ 
 & Me!ProductName & "'"))) Then 
 MsgBox "Product has already been entered in the database." 
 Cancel = True 
 Me!ProductName.Undo 
 End If 
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.