Lorsqu'on crée une macro, il est possible de rajouter 2 colonnes, comme dans le schéma :
Qui est en fait un nom de sous-macros en quelque sorte. On pourrait par exemple regrouper plusieurs macros liées plus ou moins à la même tâche dans une seule Macro. Dans l'exemple, on a 2 sous-macros Test1 et Test2, que l'on peut appeler et exécuter séparément, bien qu'elles se trouvent toutes les deux dans une macro M_General
La colonne condition permet de déterminer si l'action dans la colonne de droite s'exécute ou non. Dans notre cas, si on exécute Test1, il exécutera le BoiteMsg 2 et 3. Dans le cas ou on aurait eu encore une ligne après le boiteMsg 3, sans condition, elle aurait également été exécutée
Il est possible d'appeler une sous-macro (inclue dans un nom de macro) depuis un module :
Exemple :
DoCmd RunMacro "NomGénériqueDeLaMacro.TitrePrécisDeLaMacro"
Pour appeler une fonction Access-Basic : ExécuterCode
Si on nomme une macro AutoKeys, elle peut alors renfermer des instructions qui seront données à l'aide des touches de fonction, ou des combinaisons de touches, qui sont valables dans tous les objets d'Access (y compris quand on est simplement avec la fenêtre de base Access sous les yeux)
Voici un exemple de macro AutoKeys :
La macro s'appelle Autokeys, et dans la colonne action, on constate que la touche F5 appelle 2 MsgBox consécutifs, et la touche F6, une seule. La syntaxe de la première colonne est identique à la fonction SendKeys. Voici un petit aide-mémoire :
^A or ^4 | CTRL-A et CTRL-4 |
{F1} | F1 |
^{F1} | CTRL-F1 |
+{F1} | SHIFT-F1 |
{INSERT} | INS |
^{INSERT} | CTRL-INS |
+{INSERT} | SHIFT-INS |
{DELETE} ou {DEL} | DEL |
^{DELETE} ou ^{DEL} | CTRL-DEL |
+{DELETE} ou +{DEL} | SHIFT-DEL |
Vous pouvez télécharger ici une base de données qui contient une macro Autokeys. Il suffit d'ouvrir la base de données, et d'appuyer par exemple sur la touche DEl pour que Autokeys reconnaisse le fait que DEL doit être intercepté.
La macro qui s'appelle automatiquement au démarrage doit s'appeler AutoExec. On peut l'éviter en appuyant sur SHIFT lors du chargement de la base. ATTENTION : Cette action est impossible lors de l'exécution d'une base de données avec le Run-Time MSARN200
Dans le cas ou on appelle Access avec en paramètre une base de données, et en plus l'ordre d'exécuter une macro particulière autre qu'autoexec (/x NomMacro), Autoexec sera exécuté la première
Access 2
Dans la macro Autoexec, il faut appeler une fonction Blackout (par exemple), dans laquelle on insère le code suivant :
DoCmd DoMenuItem 1, 4, 3, 0, 20
Pour la faire réapparaître : F11. Pour éviter F11 possible, mettre Fenêtre Indépendante à Oui
A partir d'access 97, on a des options qui permettent cela dans Outils/Démarrage