Événement OptionGroup.BeforeUpdate (accès)OptionGroup.BeforeUpdate event (Access)

L'événement BeforeUpdate se produit avant que les données modifiées d'un contrôle ou d'un enregistrement soient mises à jour.The BeforeUpdate event occurs before changed data in a control or record is updated.

SyntaxeSyntax

expression.expression. BeforeUpdate( _Cancel_ )

expression Variable qui représente un objet OptionGroup .expression A variable that represents an OptionGroup object.

ParamètresParameters

NameName Requis/FacultatifRequired/Optional Type de donnéesData type DescriptionDescription
CancelCancel ObligatoireRequired IntegerInteger Le paramètre détermine si l’événement BeforeUpdate se produit.The setting determines if the BeforeUpdate event occurs. Définition de l'argument Cancel sur True (?1) annule l'événement BeforeUpdate.Setting the Cancel argument to True (?1) cancels the BeforeUpdate event.

RemarquesRemarks

Modification des données dans un contrôle à l'aide de Visual Basic ou une macro contenant l'action DéfinirValeur ne déclenche pas ces événements pour le contrôle.Changing data in a control by using Visual Basic or a macro containing the SetValue action doesn't trigger these events for the control. Toutefois, si vous déplacez vers un autre enregistrement ou enregistrez l’enregistrement, l’événement BeforeUpdate du formulaire se produit.However, if you then move to another record or save the record, the form's BeforeUpdate event does occur.

Pour exécuter une macro ou une procédure d'événement lorsque cet événement survient, définissez la propriété BeforeUpdate sur le nom de la macro ou sur [Procédure d'événement].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].

Cet événement ne s'applique pas aux cases d'option, cases à cocher ou boutons bascule d'un groupe d'options.This event does not apply to option buttons, check boxes, or toggle buttons in an option group. Il s'applique uniquement au groupe d'options lui-même.It applies only to the option group itself.

L’événement BeforeUpdate est déclenché lorsqu’un contrôle ou un enregistrement est mis à jour.The BeforeUpdate event is triggered when a control or record is updated. Au sein d'un enregistrement, les données modifiées de chaque contrôle sont mis à jour lorsque le contrôle perd le focus ou lorsque l'utilisateur appuie sur entrée ou TAB.Within a record, changed data in each control is updated when the control loses the focus or when the user presses ENTER or TAB. Lorsque le focus quitte l'enregistrement ou si l'utilisateur clique sur Sauvegarder enregistrement du menu enregistrements, l'ensemble de l'enregistrement est mis à jour et les données sont enregistrées dans la base de données.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.

Lorsque vous entrez des données nouvelles ou modifiées dans un contrôle sur un formulaire et puis déplacez vers un autre enregistrement ou l’enregistrez en cliquant sur Sauvegarder enregistrement dans le menu enregistrements , l’événement AfterUpdate du formulaire se produit immédiatement après AfterUpdate événement pour le contrôle.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 occur immediately after the AfterUpdate event for the control. Lorsque vous déplacez vers un autre enregistrement, les événements Exit et LostFocus du contrôle surviennent, suivis de l'événement Current pour l'enregistrement que vous avez déplacé vers et les événements Enter et GotFocus pour le premier contrôle de cet enregistrement.When you move to a different record, the Exit and LostFocus events for the control occur, followed by the Current event for the record you moved to, and the Enter and GotFocus events for the first control in this record. Pour exécuter la macro AprèsMAJ ou de procédure événementielle sans exécuter les macros Exit et LostFocus ou de procédures événementielles, enregistrez l'enregistrement à l'aide de la commande Enregistrer l'enregistrement dans le menu enregistrements.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.

Les macros et procédures d'événement BeforeUpdate ne sont exécutées que si vous modifiez les données d'un contrôle.BeforeUpdate macros and event procedures run only if you change the data in a control. Cet événement ne survient pas lorsqu'une valeur change dans le contrôle calculé.This event does not occur when a value changes in a calculated control. Les macros et procédures d'événement BeforeUpdate d'un formulaire sont exécutées uniquement si vous modifiez les données d'un ou plusieurs contrôles de l'enregistrement.BeforeUpdate macros and event procedures for a form run only if you change the data in one or more controls in the record.

Pour les formulaires, vous pouvez utiliser l'événement BeforeUpdate pour annuler la mise à jour d'un enregistrement avant de passer à un autre enregistrement.For forms, you can use the BeforeUpdate event to cancel updating of a record before moving to another record.

Si l’utilisateur entre une nouvelle valeur dans le contrôle, le paramètre de propriété OldValue n’est pas modifié jusqu'à ce que les données sont enregistrées (l’enregistrement est mis à jour).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). Si vous annulez une mise à jour, la valeur de la propriété OldValue remplace la valeur existante du contrôle.If you cancel an update, the value of the OldValue property replaces the existing value in the control.

L'événement BeforeUpdate est fréquemment utilisé pour valider des données, notamment lors de validations complexes, telles que :You often use the BeforeUpdate event to validate data, especially when you perform complex validations, such as those that:

  • qui appliquent des conditions pour plusieurs valeurs d'un formulaire ;Involve conditions for more than one value on a form.

  • qui affichent différents messages d'erreur pour diverses données entrées ;Display different error messages for different data entered.

  • qui peuvent être remplacées par l'utilisateur ;Can be overridden by the user.

  • Celles qui contiennent des références à des contrôles d'autres formulaires ou des fonctions définies par l'utilisateur.Contain references to controls on other forms or contain user-defined functions.

Remarque Pour effectuer des validations simples ou des validations plus complexes telles que demander une valeur dans un champ ou valider plusieurs contrôles d'un formulaire, vous pouvez utiliser la propriété ValidationRule pour les contrôles et les propriétés ValidationRule et Required pour les champs et les enregistrements des tables.Note 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.

Une erreur d'exécution se produit si vous tentez de modifier des données contenues dans le contrôle qui a déclenché l'événement BeforeUpdate dans la procédure de l'événement.A run-time error will occur if you attempt to modify the data contained in the control that fired the BeforeUpdate event in the event's procedure.

ExempleExample

L’exemple suivant montre comment vous pouvez utiliser une procédure événementielle BeforeUpdate pour vérifier si un nom de produit a déjà été entré dans la base de données.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. Une fois que l'utilisateur a tapé un nom de produit dans la zone ProductName, la valeur est comparée au champ ProductName de la table Products.After the user types a product name in the ProductName box, the value is compared to the ProductName field in the Products table. Si une valeur correspondante existe dans la table Products, un message informe l'utilisateur que le produit a déjà été entré.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.

Pour essayer l'exemple, ajoutez la procédure événementielle suivante à un formulaire nommé Products contenant une zone de texte appelée ProductName.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

Voir aussiSee also

Objet OptionGroupOptionGroup Object