ListBox. BeforeUpdate-Ereignis (Access)ListBox.BeforeUpdate event (Access)

Das BeforeUpdate-Ereignis tritt auf, bevor geänderte Daten in einem Steuerelement oder Datensatz aktualisiert werden.The BeforeUpdate event occurs before changed data in a control or record is updated.

SyntaxSyntax

Ausdruck. BeforeUpdate (Abbrechen)expression.BeforeUpdate (Cancel)

Ausdruck Eine Variable, die ein ListBox -Objekt darstellt.expression A variable that represents a ListBox object.

ParameterParameters

NameName Erforderlich/OptionalRequired/Optional DatentypData type BeschreibungDescription
AbbrechenCancel ErforderlichRequired IntegerInteger Die Einstellung bestimmt, ob das BeforeUpdate-Ereignis auftritt.The setting determines if the BeforeUpdate event occurs. Durch Festlegen des Cancel -Arguments auf true (1) wird das BeforeUpdate -Ereignis abgebrochen.Setting the Cancel argument to True (1) cancels the BeforeUpdate event.

BemerkungenRemarks

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.Changing data in a control by using Visual Basic or a macro containing the SetValue action doesn't trigger these events for the control. Wenn Sie dann jedoch zu einem anderen Datensatz wechseln oder den Datensatz speichern, tritt das Ereignis BeforeUpdate doch ein.However, if you then move to another record or save the record, the form's BeforeUpdate event does occur.

Wenn beim Auftreten dieses Ereignisses ein Makro oder eine Ereignisprozedur ausgeführt werden soll, legen Sie die BeforeUpdate -Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.To run a macro or event procedure when this event occurs, set the BeforeUpdate property to the name of the macro or to [Event Procedure].

Dieses Ereignis gilt nicht für Optionsschaltflächen, Kontrollkästchen oder Umschaltflächen in einer Optionsgruppe.This event does not apply to option buttons, check boxes, or toggle buttons in an option group. Sie betrifft nur die Optionsgruppe selbst.It applies only to the option group itself.

Das BeforeUpdate-Ereignis wird ausgelöst, wenn ein Steuerelement oder ein Datensatz aktualisiert wird.The BeforeUpdate event is triggered when a control or record is updated. In einem Datensatz werden geänderte Daten in jedem Steuerelement aktualisiert, wenn das Steuerelement den Fokus verliert oder wenn der Benutzer die EINGABETASTE oder die Tab-Taste drückt. Wenn der Fokus den Datensatz verlässt oder wenn der Benutzer im Menü Datensätze auf Datensatz speichern klickt, wird der gesamte Datensatz aktualisiert, und die Daten werden in der Datenbank gespeichert.Within a record, changed data in each control is updated when the control loses the focus or when the user presses Enter or Tab. When the focus leaves the record, or if the user clicks Save Record on the Records menu, the entire record is updated, and the data is saved in the database.

Wenn Sie neue oder geänderte Daten in einem Steuerelement in 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 after Update -Ereignis für das Formular unmittelbar nach der after Update -Ereignis für das Steuerelement.When you enter new or changed data in a control on a form and then move to another record, or save the record by clicking Save Record on the Records menu, the AfterUpdate event for the form occurs immediately after the AfterUpdate event for the control.

Wenn Sie zu einem anderen Datensatz wechseln, treten das Exit -und das LostFocus -Ereignis für das Steuerelement auf, gefolgt vom Current -Ereignisses für den Datensatz, den Sie in verschoben haben, und der Eingabe -und GotFocus -Ereignisse für das erste Steuerelement in diesem Datensatz.When you move to a different record, the Exit and LostFocus events for the control occur, followed by the Current event for the record that you moved to, and the Enter and GotFocus events for the first control in this record. 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.To run the AfterUpdate macro or event procedure without running the Exit and LostFocus macros or event procedures, save the record by using the Save Record command on the Records menu.

Die Makros und Ereignisprozeduren für BeforeUpdate werden nur ausgeführt, wenn Sie die Daten in einem Steuerelement ändern.BeforeUpdate macros and event procedures run only if you change the data in a control. Dieses Ereignis tritt nicht auf, wenn ein Wert in einem berechneten Steuerelement geändert wird.This event does not occur when a value changes in a calculated control. 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.BeforeUpdate macros and event procedures for a form run only if you change the data in one or more controls in the record.

Für Formulare können Sie das BeforeUpdate-Ereignis verwenden, um die Aktualisierung eines Datensatzes abzubrechen, bevor Sie zu einem anderen Datensatz wechseln.For forms, you can use the BeforeUpdate event to cancel updating of a record before moving to another record.

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).If the user enters a new value in the control, the OldValue property setting isn't changed until the data is saved (the record is updated). Wenn Sie eine Aktualisierung abbrechen, ersetzt der Wert der Eigenschaft OldValue den vorhandenen Wert in dem Steuerelement.If you cancel an update, the value of the OldValue property replaces the existing value in the control.

Sie verwenden das BeforeUpdate-Ereignis häufig, um Daten zu überprüfen, insbesondere bei komplexen Gültigkeitsüberprüfungen, wie z. B.:You often use the BeforeUpdate event to validate data, especially when you perform complex validations, such as those that:

  • Bedingungen für mehr als einen Wert in einem Formular umfassen.Involve conditions for more than one value on a form.
  • Gültigkeitsüberprüfungen, die verschiedene Fehlermeldungen für verschiedene eingegebene Daten anzeigen.Display different error messages for different data entered.
  • Gültigkeitsüberprüfungen, die durch den Benutzer außer Kraft gesetzt werden können.Can be overridden by the user.
  • Verweise auf Steuerelemente in anderen Formularen und benutzerdefinierte Funktionen umfassen.Contain references to controls on other forms or contain user-defined functions.

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.To perform simple validations, or more complex validations such as requiring a value in a field or validating more than one control on a form, you can use the ValidationRule property for controls and the ValidationRule and Required properties for fields and records in tables.

Wenn Sie versuchen, die Daten in dem Steuerelement zu ändern, das das BeforeUpdate -Ereignis in der Ereignisprozedur ausgelöst hat, tritt ein Laufzeitfehler auf.A run-time error occurs if you attempt to modify the data contained in the control that fired the BeforeUpdate event in the event's procedure.

BeispielExample

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.The following example shows how you can use a BeforeUpdate event procedure to check whether a product name has already been entered in the database. Nachdem der Benutzer einen Produktnamen in das Feld ProductName eingegeben hat, wird der Wert mit dem Feld ProductName in der Tabelle Products verglichen.After the user types a product name in the ProductName box, the value is compared to the ProductName field in the Products table. Wenn in der Tabelle Products ein übereinstimmender Wert gefunden wird, wird der Benutzer per Meldung darüber informiert, dass das Produkt bereits eingegeben wurde.If there is a matching value in the Products table, a message is displayed that informs the user that the product has already been entered.

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.To try the example, add the following event procedure to a form named Products that contains a text box called ProductName.

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 FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.