Vous pouvez utiliser l’action Annulerévénement pour annuler le événement qui a provoqué l’exécution Access du macro contenant cette action. Le nom de la macro est le paramètre d’une propriété d’événement telle que BeforeUpdate, OnOpen, OnUnload ou OnPrint.
Remarque : L’action de macro Annulerévénement n’est pas disponible dans les applications web Access.
Paramètre
L’action Annulerévénement n’a pas d’arguments.
Remarques
Dans un formulaire, vous utilisez généralement l’action Annulerévénement dans une macro validation avec la propriété d’événement BeforeUpdate . Lorsqu’un utilisateur entre des données dans un contrôle ou enregistrement, Access exécute la macro avant d’ajouter les données à la base de données. Si les données échouent aux conditions de validation dans la macro, l’action Annulerévénement annule le processus mettre à jour avant son démarrage.
Souvent, vous utilisez cette action avec l’action MsgBox pour indiquer que les données ont échoué dans les conditions de validation et pour fournir des informations utiles sur le type de données à entrer.
Les événements suivants peuvent être annulés par l’action Annulerévénement .
ApplyFilter |
Dirty |
Mousedown |
BeforeDelConfirm |
Quitter |
Nodata |
BeforeInsert |
Filtre |
Ouverte |
BeforeUpdate |
Mise en forme |
Imprimer |
DblClick |
Keypress |
Unload |
Suppr. |
Remarque : Vous pouvez utiliser l’action Annulerévénement avec l’événement MouseDown uniquement pour annuler l’événement qui se produit lorsque vous cliquez avec le bouton droit sur un objet.
Si le paramètre de propriété d’événement OnDblClick d’un contrôle spécifie une macro contenant l’action CancelEvent , l’action annule l’événement DblClick .
Pour les événements qui peuvent être annulés, le comportement par défaut de l’événement (autrement dit, ce qu’Access fait généralement quand l’événement se produit) se produit après l’exécution de la macro pour l’événement. Cela vous permet d’annuler le comportement par défaut. Par exemple, lorsque vous double-cliquez sur un mot sur lequel le point d’insertion se trouve dans un zone de texte, Access sélectionne normalement le mot. Vous pouvez annuler ce comportement par défaut dans la macro pour l’événement DblClick et effectuer d’autres actions, telles que l’ouverture d’un formulaire contenant des informations sur les données dans la zone de texte. Pour les événements qui ne peuvent pas être annulés, le comportement par défaut se produit avant l’exécution de la macro.
Remarque : Si la propriété d’événement OnUnload d’un formulaire spécifie une macro qui exécute une action Annulerévénement , vous ne pourrez pas fermer le formulaire. Vous devez soit corriger la condition à l’origine de l’exécution de l’action CancelEvent , soit ouvrir la macro et supprimer l’action Annulerévénement . Si le formulaire est un formulaire modal, vous ne pourrez pas ouvrir la macro.
Pour exécuter l’action CancelEvent dans un module Visual Basic pour Applications (VBA), utilisez la méthode CancelEvent de l’objet DoCmd .
Exemple
Valider des données à l’aide d’une macro
La macro de validation suivante vérifie les codes postaux entrés dans un formulaire Fournisseurs. Il montre l’utilisation des actions StopMacro, MsgBox, CancelEvent et GoToControl . Une expression conditionnelle vérifie le pays/la région et le code postal entrés dans un enregistrement sur le formulaire. Si le code postal n’est pas au format approprié pour le pays/la région, la macro affiche une boîte de message et annule l’enregistrement. Il vous renvoie ensuite au contrôle Code postal, où vous pouvez corriger l’erreur. Cette macro doit être attachée à la propriété BeforeUpdate du formulaire Fournisseurs.
Condition |
Action |
Arguments : Paramètre |
Commentaire |
IsNull([CountryRegion]) |
StopMacro |
Si CountryRegion a la valeur Null, le code postal ne peut pas être validé. |
|
[CountryRegion] In (« France »,"Italie »,"Espagne ») and Len([Code postal]) <> 5 |
Msgbox |
Message : le code postal doit comporter 5 caractères. Bip : Oui Type : Informations Titre : Erreur de code postal |
Si le code postal ne comprend pas 5 caractères, affichez un message. |
... |
CancelEvent |
Annulez l’événement. |
|
GoToControl |
Nom du contrôle : PostalCode |
||
[CountryRegion] In (« Australia »,"Singapore ») And Len([Postal Code]) <> 4 |
Msgbox |
Message : le code postal doit être de 4 caractères. Bip : Oui Type : Informations Titre : Erreur de code postal |
Si le code postal ne comprend pas 4 caractères, affichez un message. |
... |
CancelEvent |
Annulez l’événement. |
|
GoToControl |
Nom du contrôle : PostalCode |
||
([CountryRegion] = « Canada ») And ([code postal] not like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9] ») |
Msgbox |
Message : le code postal n’est pas valide. Exemple de code canadien : H1J 1C3 Bip : Oui Type : Informations Titre : Erreur de code postal |
Si le code postal n’est pas correct pour le Canada, affichez un message. (Exemple de code canadien : H1J 1C3) |
... |
CancelEvent |
Annulez l’événement. |