Macro-commandes
Créer une macro
Une macro est composée d’actions, chaque action correspond à une tâche : lorsque vous exécutez la macro, Access exécute automatiquement les actions qu’elle contient. L’application Access permet aussi de créer des macros plus complexes permettant d’afficher des boîtes de dialogue, de tester la réponse fournie par l’utilisateur, d’afficher une barre de menus personnalisée... et de développer ainsi une application autonome sans que vous ayez besoin de programmer (bien que les actions fassent référence à des instructions du langage Visual Basic).
Créer une macro autonome
Une macro autonome est contenue dans un objet macro et, bien qu’elle puisse l’être par la suite, à sa création elle ne peut pas être associée à une propriété d’évènement d’un formulaire, d’un état ou d’un contrôle (cf. Associer une macro à un formulaire/un état/un contrôle un peu plus loin dans ce chapitre).
Dans l’onglet Fichier, cliquez sur l’option Ouvrir.
Accédez au dossier dans lequel la base de données concernée est stockée puis sélectionnez le fichier correspondant à la base de données dans laquelle vous souhaitez créer la macro.
Ouvrez la liste associée au bouton Ouvrir puis cliquez sur l’option Ouvrir en exclusif.
Dans l’onglet Créer, cliquez sur le bouton Macro visible dans le groupe Macros et code.
Une fenêtre de macro, appelée Générateur de macro, s’ouvre dans l’application Access. Le volet Catalogue d’actions s’affiche à droite de la fenêtre et l’onglet Conception Macro, regroupant les options liées aux macros, est actif.
Ajoutez une action à votre macro en utilisant l’une des techniques suivantes :
-
Ouvrez la liste Ajouter une nouvelle action située dans la fenêtre de macro puis cliquez sur le nom de l’action à insérer.
-
Cliquez dans la zone de liste Ajouter...
Créer un groupe d’actions
Pour améliorer la lisibilité d’une macro, vous pouvez regrouper les actions de celle-ci dans des groupes. Les actions du groupe ne pourront pas être exécutées séparément.
Créez une nouvelle macro ou modifiez une macro existante (cf. Modifier une macro plus loin dans ce chapitre).
Si les actions à regrouper ne sont pas ajoutées à votre macro, faites un double clic sur le bloc Groupe situé dans le dossier Déroulement de programme du volet Catalogue d’actions ou faites-le glisser vers la fenêtre de macro.
Si les actions à regrouper sont déjà ajoutées à votre macro, sélectionnez-les à l’aide des touches Ctrl et/ou Shift, faites un clic droit sur la sélection puis cliquez sur l’option Créer un bloc de groupes.
Le nouveau groupe d’actions s’insère dans la fenêtre de macro.
Saisissez le nom du groupe dans la zone Groupe.
Si besoin, ajoutez les unes en dessous des autres les actions à intégrer au groupe et, pour chaque action, définissez ses arguments à l’aide des options correspondantes.
Créez ainsi chaque groupe d’actions.
Ici, la macro est constituée...
Exécuter une macro autonome
Trois techniques permettent d’exécuter une macro autonome :
-
À partir d’une fenêtre Macro en mode Création, cliquez sur le bouton Exécuter du groupe Outils (onglet Conception Macro).
-
À partir du volet de navigation, faites un double clic sur le nom de la macro à exécuter.
-
À partir d’une fenêtre quelconque, dans l’onglet Outils de base de données, cliquez sur le bouton Exécuter une macro du groupe Macro. Sélectionnez le nom de la macro à exécuter dans la liste Nom de la macro puis cliquez sur le bouton OK.
Access exécute alors chaque action de la fenêtre Macro, les unes à la suite des autres. Il s’arrête lorsqu’il rencontre une ligne vierge, l’instruction ArrêtMacro (ou ArrêtToutesMacros) ou si la macro affiche une boîte de dialogue.
Pour exécuter une macro pas à pas, ouvrez la macro en mode Création, cliquez sur le bouton Pas-à-pas du groupe Outils pour l’activer puis lancez l’exécution de la macro en cliquant sur le bouton Exécuter.
Exécuter une macro à l’ouverture d’une base de données
Enregistrez toutes les actions à effectuer à l’ouverture d’une base de données, dans une macro que vous nommerez AutoExec.
Il ne peut y avoir qu’une seule macro AutoExec.
Fermez la base de données active puis ouvrez-la de nouveau pour vérifier le fonctionnement de cette nouvelle macro.
Créer des sous-macros
Plutôt que de créer plusieurs macros individuellement, créez des sous-macros pour rassembler plusieurs sous-macros dans une fenêtre de macros.
Créez une nouvelle macro ou modifiez une macro existante (cf. Modifier une macro plus loin dans ce chapitre).
Si les actions à intégrer à la sous-macro ne sont pas ajoutées à votre macro, faites un double clic sur le bloc Sous-macro situé dans le dossier Déroulement de programme du volet Catalogue d’actions ou faites-le glisser vers la fenêtre de macro.
Si les actions à intégrer à la sous-macro sont déjà ajoutées à votre macro, sélectionnez-les à l’aide des touches Ctrl et/ou Shift, faites un clic droit sur la sélection puis cliquez sur l’option Créer un bloc de sous-macros.
Saisissez le nom de la sous-macro dans la zone Sous-macro.
< ...Associer une macro à un formulaire/un état/un contrôle
Ouvrez le formulaire ou l’état concerné en mode Création.
Sélectionnez le formulaire, l’état ou le contrôle concerné par l’association de la macro.
Nous vous rappelons que pour sélectionner un formulaire ou un état, vous devez cliquer sur sa case de sélection à l’intersection des deux règles.
Affichez si besoin la Feuille de propriétés du contrôle en appuyant sur la touche F4 puis cliquez sur l’onglet Événement.
Cliquez dans la propriété correspondant à l’événement qui va provoquer l’exécution de la macro.
Lorsque vous cliquez dans la propriété, sa signification apparaît sur la barre d’état.
Ouvrez la liste associée et sélectionnez la macro à exécuter. S’il s’agit d’une sous-macro, son nom est précédé du nom de la macro : nom_macro.nom_sous-macro.
Si vous sélectionnez une macro contenant uniquement des sous-macros sans spécifier la sous-macro à appeler, seule la première sous-macro de la macro sera exécutée.
Enregistrez les modifications apportées au formulaire ou à l’état puis fermez-le.
Modifier une macro
Dans le cas d’une macro autonome, faites un clic droit sur le nom de la macro concernée dans le volet de navigation puis cliquez sur l’option Mode création pour afficher la fenêtre macro.
Nous vous rappelons les principes permettant de gérer cette fenêtre :
Sélectionner une action |
Cliquez sur le nom de l’action.
|
Supprimer une action |
Cliquez sur le nom de l’action
concernée puis cliquez sur le bouton associé.
|
Déplacer une action |
Cliquez sur le nom de l’action puis faites-le
glisser vers sa nouvelle position ; maintenez la touche Ctrl enfoncée si
vous souhaitez réaliser une copie de l’action.
|
Réalisez les modifications souhaitées.
Enregistrez les modifications apportées à la macro () puis...
Exécuter des actions en fonction de conditions
Créez une nouvelle macro ou modifiez une macro existante.
Dans le volet Catalogue d’actions, faites un double clic sur le bloc Si situé dans le dossier Déroulement de programme ou faites-le glisser du volet Catalogue d’actions vers la fenêtre de macro ; vous pouvez également sélectionner l’action Si dans la liste Ajouter une nouvelle action.
Précisez dans la zone Si, l’expression logique permettant à Access de tester la condition.
Ajoutez au bloc Si, les actions à réaliser si la condition est vraie puis, pour chaque action, définissez ses arguments à l’aide des options correspondantes.
Si vous souhaitez ajouter une autre condition, cliquez sur le lien Ajouter Sinon si situé dans le coin inférieur droit du bloc Si puis, comme précédemment, précisez l’expression et ajoutez les actions à réaliser si la condition est vraie.
Cliquez ensuite sur le lien Ajouter Sinon puis précisez les actions à réaliser si la condition (bloc Si) ou les conditions (blocs Si et Sinon si) sont fausses.
Le bloc Si s’exécute si la condition est vrai, le bloc Sinon si s’exécute si la condition est vrai et le bloc Sinon s’exécute si aucun des blocs Si et Sinon si ne s’exécute....
Faire référence à un champ/une propriété
Dans le cas d’une macro autonome, faites un clic droit sur le nom de la macro concernée dans le volet de navigation puis cliquez sur l’option Mode création pour afficher la fenêtre macro.
Cliquez sur l’action concernée puis dans la zone de saisie correspondant à l’argument concerné.
Pour faire référence à un champ ou à un contrôle ne se trouvant pas dans l’objet actif, faites précéder le nom du champ du type et du nom de l’objet en les séparant par un point d’exclamation (appelé opérateur d’identificateur).
Trois types d’objets peuvent être spécifiés :
Formulaires |
Permet de se référer... |
Action d’exécuter une autre macro
Créez une nouvelle macro ou modifiez une macro existante.
Sélectionnez l’action ExécuterMacro dans la liste Ajouter une nouvelle action puis définissez ses arguments :
Nom de macro |
Nom de la macro ou nom de la sous-macro précédé du nom de la macro. |
Nombre de répétitions |
Nombre d’exécution de la macro. |
Expression de répétition |
Permet de préciser une expression : l’exécution est interrompue si l’expression est fausse. |
Enregistrez la macro () puis fermez sa fenêtre en cliquant sur le bouton .
Il est possible d’imbriquer des macros : vous pouvez alors exécuter une macro A, qui à son tour appelle une macro B lorsqu’elle est terminée.
Associer un raccourci-clavier à une macro
Dans l’onglet Créer, cliquez sur le bouton Macro visible dans le groupe Macros et code.
Créez une sous-macro en faisant glisser le bloc Sous-macro du volet Catalogue d’actions vers la fenêtre de macro.
Dans la zone Sous-macro, précisez la combinaison de touches affectée à la macro en respectant les principes suivants :
^ |
Représente la touche Ctrl. |
+ |
Représente la touche Shift. |
lettre ou chiffre |
Représente une lettre ou un chiffre quelconque. |
{fonction} |
Le nom d’une touche de fonction doit apparaître entre accolades (ex : {F1}). |
{touche} |
Les touches telles que Suppr ou Inser portent un nom précis qui doit apparaître entre accolades {DEL}, ({INSERT}...). |
Vous pouvez combiner ces différents éléments. Exemples :
Le nom de macro |
correspond à la combinaison : |
^A |
CtrlA |
{F4} |
F4 |
^{F4} |
CtrlF4 |
+{F4} |
ShiftF4 |
{INSERT} |
Inser |
^{INSERT} |
CtrlInser |
+{DEL} |
ShiftSuppr |
Ajoutez les actions exécutées par la combinaison de touches ; si la macro existe déjà, sélectionnez l’action ExécuterMacro puis sélectionnez le nom de la macro à exécuter dans la liste Nom de macro.
Procédez ainsi pour associer...
Définir la valeur des propriétés dans une macro
Créez une nouvelle macro ou modifiez une macro existante.
Sélectionnez l’action DéfinirPropriété dans la liste Ajouter une nouvelle action.
Précisez les arguments de l’action :
Nom du contrôle |
Tapez le nom du contrôle pour lequel vous souhaitez définir la valeur de propriété (le nom du contrôle ne doit pas être saisi entre des crochets : Date). |
Propriété |
Sélectionnez la propriété à définir. |
Valeur |
Précisez la valeur à attribuer à la propriété (elle correspond en règle générale à l’option correspondante visible dans la feuille de propriété). Vous devez utiliser 0 pour la valeur Non (ou Faux) et -1 pour la valeur Oui (ou Vrai). |
Enregistrez la macro () puis fermez la fenêtre en cliquant sur le bouton .