Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Une action, telle que le basculement d’un contrôle sur un objet vers un autre contrôle, peut déclencher différents événements qui se produisent dans une séquence particulière. Il est important de connaître les événements qui surviennent et dans quel ordre, car ceux-ci peuvent affecter les modalités d’exécution de vos macros ou procédures événementielles. Par exemple, si deux procédures événementielles doivent être exécutées dans un certain ordre, vous pouvez vérifier que les événements auxquels elles sont associées se produisent dans ce même ordre.

Contenu de cet article

Ordre des événements pour les contrôles sur les formulaires

Les événements se produisent pour les contrôles sur les formulaires lorsque vous déplacez le focus vers un contrôle, et lorsque vous modifiez et mettez à jour des données dans un contrôle.

Remarque : Microsoft Office Access affiche les noms d’événement légèrement différemment dans Visual Basic Editor et dans la feuille de propriétés et le Générateur de macro. Par exemple, l’événement Sur réception focus dans la feuille de propriétés du formulaire et le Générateur de macro est nommé GotFocus dans Visual Basic Editor. Dans cet article, les exemples utilisent le format VBA (Visual Basic pour Applications) pour les noms d’événement.

Déplacer le focus vers un contrôle

Lorsque vous déplacez le focus vers un contrôle sur un formulaire (par exemple, en ouvrant un formulaire contenant un ou plusieurs contrôles actifs ou en déplaçant le focus vers un autre contrôle sur le même formulaire), les événements Enter et GotFocus se produisent dans l’ordre suivant :

Entrez flèche GotFocus

Lorsque vous ouvrez un formulaire, les événements Enter et GotFocus se produisent après les événements liés à l’ouverture du formulaire (par exemple, Open, Activate et Current), comme suit :

Ouvrir (formulaire) flècheActiver (formulaire) flècheActuel (formulaire) flècheEntrée (contrôle) flècheGotFocus (contrôle)

Lorsque le focus est déplacé hors d’un contrôle sur un formulaire (par exemple, lorsque vous fermez un formulaire contenant un ou plusieurs contrôles actifs ou lorsque le focus est déplacé vers un autre contrôle sur le même formulaire), les événements Exit et LostFocus se produisent dans l’ordre suivant :

Quitter flèche LostFocus

Lorsque vous fermez un formulaire, les événements Exit et LostFocus se produisent avant les événements liés à la fermeture du formulaire (par exemple, Unload, Deactivate et Close), comme suit :

Quitter (contrôle) flècheLostFocus (contrôle) flècheUnload (formulaire) flècheDésactiver (formulaire) flècheFermer (formulaire)

Modification et mise à jour des données dans un contrôle

Lorsque vous entrez ou modifiez les données dans un contrôle sur un formulaire, puis déplacez le focus vers un autre contrôle, les événements BeforeUpdate et AfterUpdate se produisent :

BeforeUpdate flèche Afte rUpdate

Les événements Exit et LostFocus pour un contrôle dont la valeur change se produisent après les événements BeforeUpdate et AfterUpdate :

BeforeUpdate flèche AfterUpdate flèche Quitter flèche LostFocus

Lorsque vous modifiez le texte dans une zone de texte ou dans la section de zone de texte d’une zone de liste modifiable, l’événement Change se produit. Cet événement se produit lorsque le contenu du contrôle change, mais avant que vous ne déplaciez le focus vers un autre contrôle ou enregistrement (et par conséquent, avant que les événements BeforeUpdate et AfterUpdate ne se produisent). La séquence d’événements suivante se produit pour chaque touche sur laquelle vous appuyez dans une zone de texte ou dans la section de zone de texte d’une zone de liste modifiable :

KeyDown flèche KeyPress flèche Dirty flèche Change flèche KeyUp

L’événement NotInList se produit lorsque vous entrez une valeur dans une zone de liste modifiable qui ne figure pas dans la zone de liste modifiable, puis essayez de déplacer le focus vers un autre contrôle ou enregistrement. L’événement NotInList se produit après les événements de clavier et les événements Change pour la zone de liste modifiable, mais avant les événements pour n’importe quel autre contrôle ou le formulaire. Si la propriété LimitToList de la zone de liste modifiable est définie sur Yes, l’événement Error pour le formulaire se produit immédiatement après l’événement NotInList :

KeyDown flèche KeyPress flèche Dirty flèche Change flèche KeyUp flèche NotInList 0 Error

Haut de la page

Ordre des événements pour les enregistrements sur les formulaires

Des événements se produisent pour les enregistrements sur les formulaires lorsque vous déplacez le focus vers un autre enregistrement, mettez à jour des données dans un enregistrement, supprimez un ou plusieurs enregistrements existants, ou créez un enregistrement.

Déplacement du focus vers des enregistrements et mise à jour de données dans des enregistrements

Lorsque vous déplacez le focus vers un enregistrement existant sur un formulaire, entrez ou modifiez des données dans l’enregistrement, puis déplacez le focus vers un autre enregistrement, la séquence d’événements suivante se produit pour le formulaire :

Actuel (formulaire) flècheBeforeUpdate (formulaire) flècheAfterUpdate (formulaire) flècheActuel (formulaire)

Lorsque vous quittez l’enregistrement dont les données ont changé, mais avant d’accéder à l’enregistrement suivant, les événements Exit et LostFocus se produisent pour le contrôle ayant le focus. Ces événements se produisent après les événements BeforeUpdate et AfterUpdate pour le formulaire, comme suit :

BeforeUpdate (formulaire) flècheAfterUpdate (formulaire) flècheExit (contrôle) flècheLostFocus (contrôle) flècheCurrent (formulaire)

Lorsque vous déplacez le focus entre les contrôles sur un formulaire, des événements se produisent pour chaque contrôle. Par exemple, les séquences suivantes d’événements se produisent lorsque vous effectuez les opérations suivantes :

  • Ouvrez un formulaire et modifiez des données dans un contrôle :

    Current (form) flècheEnter (control) flècheGotFocus (control) flècheBeforeUpdate (control) flècheAfterUpdate (control)

  • Déplacez le focus vers un autre contrôle :

    Exit (control1) flècheLostFocus (control1) flècheEnter (control2) flècheGotFocus (control2)

  • Déplacez le focus vers un autre enregistrement :

    BeforeUpdate (form) flècheAfterUpdate (form) flècheExit (control2) flècheLostFocus (control2) flècheCurrent (formulaire)

Suppression d’enregistrements

Lorsque vous supprimez un enregistrement, les événements suivants se produisent pour le formulaire, et Microsoft Office Access affiche une boîte de dialogue vous demandant de confirmer la suppression :

Supprimer flèche BeforeDelConfirm flèche AfterDelConfirm

Si vous annulez l’événement Delete, les événements BeforeDelConfirm et AfterDelConfirm ne se produisent pas, et la boîte de dialogue n’apparaît pas.

Création d’un enregistrement

Lorsque vous déplacez le focus vers un nouvel enregistrement (vide) dans un formulaire, puis créez un enregistrement en entrant des données dans un contrôle, la séquence d’événements suivante se produit :

Current (form) flècheEnter (control) flècheGotFocus (control) flècheBeforeInsert (form) flècheAfterInsert (formulaire)

L’événement BeforeInsert (form) se déclenche dès que vous commencez à taper dans le contrôle. L’événement AfterInsert (form) se déclenche une fois que vous avez quitté l’enregistrement.

Les événements BeforeUpdate et AfterUpdate pour les contrôles sur le formulaire et pour le nouvel enregistrement se produisent après l’événement BeforeInsert et avant l’événement AfterInsert.

Haut de la page

Ordre des événements pour les formulaires et sous-formulaires

Les événements se produisent pour les formulaires lorsque vous ouvrez ou fermez un formulaire, changez de formulaires ou utilisez des données sur un formulaire ou un sous-formulaire.

Ouverture ou fermeture d’un formulaire

Lorsque vous ouvrez un formulaire, la séquence suivante d’événements se produit pour le formulaire :

Ouvrir flèche Charger flèche Redimensionner flèche Activer flèche Actuel

S’il n’y a aucun contrôle actif sur le formulaire, l’événement GotFocus se produit pour le formulaire après l’événement Activate, mais avant l’événement Current.

Lorsque vous fermez un formulaire, la séquence suivante d’événements se produit pour le formulaire :

Décharger flèche désactiver flèche fermer

S’il n’y a aucun contrôle actif sur le formulaire, l’événement LostFocus se produit pour le formulaire après l’événement Unload, mais avant l’événement Deactivate.

Changement de formulaire

Lorsque vous basculez entre deux formulaires ouverts, l’événement Deactivate se produit pour le premier formulaire et l’événement Activate se produit pour le deuxième formulaire :

Désactiver (form1) flècheActiver (form2)

L’événement Deactivate pour un formulaire se produit également lorsque vous basculez du formulaire vers un autre onglet objet dans Access. Toutefois, l’événement Deactivate ne se produit pas lorsque vous basculez vers une boîte de dialogue, vers un formulaire dont la propriété PopUp est définie sur Yes ou vers une fenêtre dans un autre programme.

Remarque :  L’événement Open ne se produit pas si vous déplacez le focus vers un formulaire qui est déjà ouvert, même si vous avez déplacé le focus vers ce formulaire en effectuant une action OpenForm.

Utilisation des données sur un formulaire

Des événements de formulaire et de contrôle se produisent lorsque vous parcourez les enregistrements dans le formulaire et modifiez des données. Par exemple, lorsque vous ouvrez un formulaire pour la première fois, la séquence suivante d’événements se produit :

Ouvrir (formulaire) flècheCharger (formulaire) flècheRedimensionner (formulaire) flècheActiver (formulaire) flècheActuel (formulaire) flècheEntrée (contrôle)0 GotFocus (contrôle)

De même, lorsque vous fermez un formulaire, la séquence suivante d’événements se produit :

Quitter (contrôle) flècheLostFocus (contrôle) flècheDécharger (formulaire) flècheDésactiver (formulaire) flècheFermer (formulaire)

Si vous avez modifié des données dans un contrôle, les événements BeforeUpdate et AfterUpdate pour le contrôle et le formulaire se produisent avant l’événement Exit pour le contrôle.

Utilisation des sous-formulaires

Lorsque vous ouvrez un formulaire contenant un sous-formulaire, le sous-formulaire et ses enregistrements sont chargés avant le formulaire principal. Par conséquent, les événements pour le sous-formulaire et ses contrôles (tels que Open, Current, Enter et GotFocus) se produisent avant les événements pour le formulaire. Toutefois, l’événement Activate ne se produit pas pour les sous-formulaires. Par conséquent, l’ouverture d’un formulaire principal déclenche un événement Activate pour le formulaire principal uniquement.

De même, lorsque vous fermez un formulaire contenant un sous-formulaire, le sous-formulaire et ses enregistrements sont déchargés après le formulaire. L’événement Deactivate ne se produit pas pour les sous-formulaires. Par conséquent, le fermeture d’un formulaire principal déclenche un événement Deactivate pour le formulaire principal uniquement. Les événements pour les contrôles, le formulaire et le sous-formulaire se produisent dans l’ordre suivant :

  1. Événements pour les contrôles du sous-formulaire (tels que Exit et LostFocus)

  2. Événements pour les contrôles du formulaire (notamment le contrôle de sous-formulaire)

  3. Événements pour le formulaire (par exemple, Deactivate et Close)

  4. Événements pour le sous-formulaire

Remarque : Étant donné que les événements pour un sous-formulaire se produisent après la fermeture du formulaire principal, certains événements, tels que l’annulation de la fermeture du formulaire principal à partir d’un événement dans le sous-formulaire ne se produiront pas. Vous devrez peut-être déplacer ces types de tests de validation vers un événement sur le formulaire principal.

Haut de la page

Ordre des événements pour les séquences de touches et les clics de souris

Les événements de clavier se produisent pour les formulaires et contrôles lorsque vous appuyez sur des touches ou envoyez des séquences de touches alors que le focus est placé sur le formulaire ou le contrôle. Les événements de souris se produisent pour les formulaires, les sections de formulaire et les contrôles sur les formulaires lorsque vous cliquez sur les boutons de la souris, alors que le pointeur de la souris se trouve sur un formulaire, une section ou un contrôle. Les événements de souris peuvent également se produire lorsque vous déplacez le pointeur de la souris sur un formulaire, une section ou un contrôle.

Événements de clavier

Lorsque vous appuyez sur une touche avant de la relâcher alors que le focus est placé sur un contrôle sur un formulaire (ou vous utilisez l’action SendKeys ou instruction pour envoyer une séquence de touches), la séquence d’événements suivante se produit :

KeyDown flèche KeyPress flèche KeyUp

Lorsque vous appuyez et relâchez une touche ou que vous envoyez une séquence de touches dans le jeu de caractères ANSI, les événements KeyDown, KeyPress et KeyUp se produisent tous. Si vous appuyez de façon longue sur une touche ANSI, les événements KeyDown et KeyPress alternent à plusieurs reprises (KeyDown, KeyPress, KeyDown, KeyPress, et ainsi de suite) jusqu’à ce que vous relâchez la touche ; l’événement KeyUp se produit.

Si vous appuyez sur une touche non ANSI avant de la relâcher, les événements KeyDown et KeyUp se produisent. Si vous maintenez une touche non ANSI enfoncée, l’événement KeyDown se produit à plusieurs reprises jusqu’à ce que vous relâchiez la touche, puis l’événement KeyUp se produit.

Si l’utilisation d’une touche déclenche un autre événement pour un contrôle, cet événement se produit après l’événement KeyPress, mais avant l’événement KeyUp. Par exemple, si une frappe modifie le texte dans une zone de texte et déclenche un événement Change, la séquence d’événements suivante se produit :

KeyDown flèche KeyPress flèche Change flèche KeyUp

Si une frappe déplace le focus d’un contrôle vers un autre contrôle, l’événement KeyDown se produit pour le premier contrôle, tandis que les événements KeyPress et KeyUp se produisent pour le deuxième contrôle. Par exemple, si vous modifiez des données dans un contrôle, puis appuyez sur Tab pour atteindre le contrôle suivant, les séquences d’événements suivantes se produisent :

  • Premier contrôle :

    KeyDown flèche BeforeUpdate flèche AfterUpdate flèche Exit flèche LostFocus

  • Deuxième contrôle :

    Entrez flèche GotFocus flèche KeyPress flèche KeyUp

Événements de souris

Lorsque vous cliquez sur un bouton de la souris avant de le relâcher avec le pointeur de souris placé sur un contrôle sur un formulaire, la séquence d’événements suivante se produit pour le contrôle :

MouseDown flèche MouseUp flèche Click

Si le focus est placé sur un contrôle et que vous cliquez sur un autre contrôle pour déplacer le focus vers ce deuxième contrôle, les séquences d’événements suivantes se produisent :

  • Premier contrôle :

    Quitter flèche LostFocus

  • Deuxième contrôle :

    Entrez flèche GotFocus flèche MouseDown flèche MouseUp flèche Click

Si vous accédez à un autre enregistrement, puis cliquez sur un contrôle, l’événement Current pour le formulaire se produit également avant l’événement Enter pour le contrôle.

Le fait de double-cliquer sur un contrôle déclenche les événements Click et DblClick. Par exemple, lorsque vous double-cliquez sur un contrôle autre qu’un bouton de commande, la séquence d’événements suivante se produit pour le contrôle :

MouseD propre flèche MouseUp flèche Click flèche DblClick flèche MouseUp

Lorsque vous double-cliquez sur un bouton de commande, la séquence d’événements précédente se produit, suivie d’un deuxième événement Click.

L’événement MouseMove pour un formulaire, une section ou un contrôle se produit lorsque vous déplacez le pointeur de la souris sur le formulaire, la section ou le contrôle. Cet événement est indépendant des autres événements de souris.

Haut de la page

Ordre des événements pour les états et sections d’état

Des événements se produisent pour les états et sections d’état lorsque vous ouvrez un état pour l’imprimer ou en afficher un aperçu, ou que vous fermez un état.

Événements pour les états

Lorsque vous ouvrez un état pour l’imprimer ou en afficher un aperçu, avant de le fermer ou d’accéder à un autre onglet objet dans Access, la séquence d’événements suivante se produit pour l’état :

Ouvrir flèche Activer flèche Fermer flèche Désactiver

Lorsque vous basculez entre deux états ouverts, l’événement Deactivate se produit pour le premier état et l’événement Activate se produit pour le deuxième état :

Désactiver (report1) flècheActiver (rapport2)

L’événement Deactivate pour un état se produit également lorsque vous basculez de l’état vers un autre onglet objet dans Access. Toutefois, l’événement Deactivate ne se produit pas lorsque vous basculez vers une boîte de dialogue, vers un formulaire dont la propriété PopUp est définie sur Yes ou vers une fenêtre dans un autre programme.

Lorsque vous ouvrez un état basé sur une requête, Access déclenche l’événement Open pour l’état avant d’exécuter la requête sous-jacente. Par conséquent, vous pouvez définir les critères pour l’état à l’aide d’une macro ou d’une procédure événementielle qui répond à l’événement Open. Par exemple, la macro ou procédure événementielle peut ouvrir une boîte de dialogue personnalisée dans laquelle vous entrez des critères d’état.

Événements pour les sections d’état

Lorsque vous imprimez un état ou en affichez un aperçu, les événements Format et Print se produisent pour les sections d’état après les événements Open et Activate pour l’état et avant les événements Close ou Deactivate de l’état :

Ouvrir (rapport) flècheActiver (rapport) flècheFormat (section rapport) flècheImprimer (section rapport) flècheFermer (rapport) flècheDésactiver (rapport)

Sécurité    Vous pouvez utiliser la vue Rapport pour activer le filtrage utilisateur des rapports. Toutefois, contrairement à l’aperçu avant impression, les événements Format et Impression d’une section ne se produisent pas en mode Rapport. Cela s’applique également aux résultats des fonctions VBA et aux procédures définies par l’utilisateur qui s’affichent dans les contrôles (par exemple, les légendes d’étiquette, les status d’affichage, la mise en forme conditionnelle, le redimensionnement des contrôles, etc.) dans ces événements. Par conséquent, n’utilisez pas de code dans cet événement pour mettre en forme, masquer ou imprimer des données confidentielles qui peuvent être exposées. Nous vous recommandons de préfiltrer les données ou de désactiver l’aperçu du rapport en définissant la propriété AllowReportView sur Non.

En outre, les événements suivants peuvent se produire pendant ou après la mise en forme, mais avant l’événement Print :

  • L’événement Retreat se produit lorsque Access revient à une section précédente dans le cadre de la mise en forme de l’état.

  • L’événement NoData se produit si aucun enregistrement n’est affiché par l’état.

  • L’événement Page se produit après la mise en forme, mais avant l’impression. Vous pouvez utiliser cet événement pour personnaliser l’apparence de l’état imprimé.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.