Les événements Access
Définition
Un événement permet d’exécuter une ou plusieurs instructions à la suite d’une action de la part d’un utilisateur. L’action déclenche l’exécution du code de la procédure événementielle correspondante qui est rattachée à l’objet actif.
Pour associer un code VBA à une action sur un objet, on peut passer par l’onglet Événement dans le volet de navigation Feuille de propriétés :
Il est également possible de passer dans l’éditeur VBE par les zones de listes déroulantes (zone de gauche pour choisir l’objet, zone de droite pour choisir l’événement).
L’objectif de ce chapitre est de passer en revue les différents types d’événements, de montrer comment en annuler certains, et d’évoquer l’ordre de déclenchement des événements lors d’actions simples.
Types d’événements
Les descriptions s’appliquent également aux états.
1. Les événements à l’ouverture
Événement (Propriété) |
Se produit |
Annulable |
Open (sur ouverture) |
À l’ouverture du formulaire, mais avant que le premier enregistrement ne soit affiché. |
Oui |
Load (sur chargement) |
À l’ouverture du formulaire, une fois le premier enregistrement affiché. |
Non |
Resize (surredimensionnement) |
Lorsque le formulaire change de dimension ainsi que lors de son premier affichage. |
Non |
Activate (sur activé) |
Lorsque le formulaire devient actif. |
Non |
Current (sur activation) |
À l’ouverture du formulaire, avant que le premier enregistrement ne devienne l’enregistrement en cours. |
Non |
2. Les événements à la fermeture
Événement (Propriété) |
Se produit |
Annulable |
Unload (sur libération) |
À la fermeture du formulaire, une fois les enregistrements libérés, mais avant la disparition du formulaire. |
Oui |
Deactivate (sur désactivé) |
À la fermeture du formulaire, mais également à l’activation d’une autre fenêtre, avant que l’autre fenêtre ne devienne active. |
Non |
Close (sur fermeture) |
Lorsque le formulaire disparaît à la fermeture. |
Non |
3. Les événements d’ajout, suppression ou modification d’enregistrement
Événement (Propriété) |
Se produit |
Annulable |
BeforeInsert (avant insertion) |
Lors de la frappe du premier caractère d’un nouvel enregistrement, mais avant l’ajout du nouvel enregistrement. |
Oui |
AfterInsert (après insertion) |
Après l’ajout d’un nouvel enregistrement dans la table. |
Non |
BeforeUpdate (avant MAJ) |
Avant la mise à jour d’un enregistrement ou d’un contrôle (modification... |
Annulation d’un événement
Il est possible et parfois très pratique de pouvoir annuler un événement. Les différents événements précédemment listés peuvent ou non être annulés. Pour annuler un événement, il est possible de passer l’argument AnnulerEvénement à la macro, ou de passer à True la variable Cancel dans le code VBA.
Ordre de réalisation des événements
Dans certaines situations, plusieurs événements ont lieu les uns après les autres. Ce chapitre indique leur déroulement. Les événements sont représentés par ordre chronologique de haut en bas.
1. À l’ouverture d’un formulaire
2. À la fermeture d’un formulaire
3. À l’activation d’un formulaire déjà ouvert
4. À la mise à jour d’un contrôle
A lieu lorsque l’utilisateur finit sa saisie et passe au contrôle suivant.
5. À la mise à jour d’un enregistrement
A lieu lorsque l’utilisateur finit une saisie dans un enregistrement et passe à un autre enregistrement.
6. À la suppression d’un enregistrement
7. Sur l’appui de touche
Ordre des événements lors d’une mise à jour
Dans Microsoft Access, les événements liés aux mises à jour se déclenchent à deux niveaux différents.
1. Au niveau du contrôle
Lors de la mise à jour d’un contrôle, les événements BeforeUpdate et AfterUpdate du contrôle sont exécutés. Ils précèdent les événements du formulaire.
2. Au niveau d’un enregistrement
Lors de la mise à jour d’un enregistrement, ce sont les événements BeforeUpdate et AfterUpdate du formulaire qui sont exécutés.