Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

Macros

Constitution d'une macro

Lorsqu'on crée une macro, il est possible de rajouter 2 colonnes, comme dans le schéma :

Nom de macro

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

Condition

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

Interaction VB/Macros

Appel de la macro (RunMacro)

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"

Appeler une routine Access Basic depuis une macro

Pour appeler une fonction Access-Basic : ExécuterCode

Noms de macros particulières

AutoKeys

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é.

AutoExec

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

Idées de contenu d'AutoExec

Masquer la fenête base de données

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