7 - Macros
7 - Macros
7 - Macros
L’action qui consiste à ouvrir chaque formulaire à partir du formulaire "Menu" est mémorisée par la
base de données sous forme d’un module. Un module est un des objets d’Access. Cet objet est
très technique, et fait appel à des notions de programmation. Il est donc difficile, à notre niveau, de
modifier une action enregistrée sous forme de module.
Une macro est une liste d'instructions créées dans le but d'exécuter automatiquement certaines
tâches. Chaque instruction s'appelle une action. Lorsqu’on exécute la macro, Access réalise les
actions, dans la séquence indiquée, en utilisant les objets et les données spécifiés en tant
qu'arguments des actions. Les macros servent à automatiser les tâches répétitives et à enrichir les
possibilités de la base de données. Contrairement aux modules, il n’est pas nécessaire de savoir
programmer pour créer une macro.
Pour créer une nouvelle macro, il faut avant tout cliquer sur l’onglet des macros, puis sur le bouton
Nouvelle (New). Deux colonnes apparaissent.
Dans la colonne de gauche, on inscrira les actions. Il ne faut pas connaître toutes les actions de
mémoire puisqu’elles sont accessibles à partir d’un menu déroulant. Dans la colonne de droite on
inscrira une description afin de se souvenir des buts de la macro. Sous les deux colonnes, on
introduira les arguments de chaque action. Les arguments à fournir varient en fonction de chaque
action. La plupart d’entre eux sont aussi accessibles à partir d’un menu déroulant.
1 sur 40
Cours Access
L'outil contenant « xyz » au dessus de deux carrés est l'outil Nom de Macro (Macro Name) qui
permet de regrouper plusieurs macros sous un même nom général, en les différenciant par un
"sous-nom" (une sorte de prénom ; chaque prénom détermine une « sous-macro »). La macro «
Trouver » est basée sur ce principe : elle contient deux sous-macros: "Trouver.Tome" et
"Trouver.Serie" qui sont deux macros basées sur le même principe, mais appliquées à deux objets
différents. L'outil représentant un petit organigramme est l'outil Conditions qui permet l’exécution
ou non d’une macro selon qu’une condition introduite est satisfaite ou non.
Dans la suite de ce document, on décrit les actions des macros dans la colonne de gauche. Le
texte à droite de l’action n’est pas la description de la macro, mais la liste des arguments. Il y a la
version à n'utiliser que sur la version française d'Access, et la version à n'utiliser que sur la version
anglaise d'Access (Il existe des différences de syntaxe d'une version à l'autre).
La première macro est constituée de deux actions décrites ci-dessous. Elle ouvre donc le
formulaire « Encodage Ventes » sur une fiche vierge.
2 sur 40
Acti Paramètres de l'action (à déterminer en bas à gauche de la
on fenêtre)
OpenForm Form Name: Encodage Ventes
GoToRecord Record: new
Il faut a présent ouvrir le formulaire « Menu » et y remplacer l’action construite à l'aide de l’Assistant par cette
nouvelle macro. Dans le formulaire « Menu » ouvert en mode Création, on fait apparaître les propriétés du bouton
qui permet d’ouvrir notre formulaire « Encodage Ventes ». La propriété Sur Pression (On Click) contient la
mention [Event Procedure] (il s'agit de l'action que nous avons précédement construite à l'aide de l'assistant
bouton). En faisant apparaître le menu déroulant dévoilant la liste des macros, on remplace la mention [Event
Procedure] par « Ouvrir Encodage Ventes ». Un test en mode formulaire permet de vérifier que le formulaire
« Encodage Ventes » s’ouvre effectivement sur une fiche vierge.
La macro Fermer
La méthode décrite ci-dessus consiste à créer la macro, puis le bouton, et affecter la macro au bouton. La méthode
décrite maintenant consiste à créer le bouton et y construire directement la macro à partir d’un générateur
d’expression.
On désactive l'outil Assistant Outil (Control Wizards) de la barre d’outils (Toolbar). On dessine un nouveau bouton
et on fait apparaître ses propriétés. On clique sur la propriété Sur Pression (On Click), puis sur le bouton du
générateur d’expression (bouton avec points de suspension). On appelle le Générateur de Macro (Macro Builder).
Le nom de la macro sera « Fermer Menu ». La seule action dans ce cas-ci sera Fermer (Close). L’objet (Object
Type) à fermer est un formulaire (Form). Son nom (Object Name) est « Menu ».
Lors de l’ouverture de la base de données, le formulaire « 1 : Menu » s’ouvre automatiquement. Ceci se produit
grâce à la macro « Autoexec ». Le nom de cette macro est un nom réservé. Lors de l’ouverture de la base de
données, Access exécute, si elle existe, la macro Autoexec.
L’autre macro dont le nom est réservé est la macro AutoKeys qui affecte à une touche ou à un jeu de touches des
macros prédéfinies.
Quand la première action à exécuter n'est que l'affichage d'un formulaire, on peut l'effectuer à l'aide du menu
Outils/Démarrage/AfficherFormulaire (Tools/Startup/DisplayForm), en choisissant dans la zone Display Form le
formulaire à afficher automatiquement.
A ce stade, on ferme <08-9eArt-trrf.mdb> et on ouvre <08-9eArt-trrfm.mdb>. Ce fichier est complet au niveau des
tables, requêtes, formulaires et macros, ce qui permet aux étudiants « perdus » ou « en retard » de se remettre à
jour. On ne crée pas les macros qui suivent, mais on peut les visiter et/ou vérifier leur action. Leur création étant
semblable à une des macros rencontrées ci-dessus, on ne les décrit que très brièvement.
La macro Ouvrir
Ouvre le formulaire demandé dans le formulaire " 1:Menu des Formulaires ", ou dans le formulaire " Encodage
Tomes ". Une macro peut contenir plusieurs sous-macros. Les sept sous-macros de la macro Ouvrir sont
" acheteurs ", " séries d’un ", " tomes d’une ", " encod sér ", " encod tom ", " encod cli ", et " encod ach ". Voici les
actions et arguments des macros " Ouvrir.acheteurs ", " Ouvrir.séries d’un " et " Ouvrir.encod sér ".
Ouvrir.acheteurs: Ouvre le formulaire " Acheteurs d’un Tome " à partir du formulaire " Encodage Tomes ", mais ne
montre que les acheteurs du tome courant grâce à la Condition Where.
Ce dernier argument signifie que le formulaire à ouvrir ne doit afficher que les enregistrements dont la valeur du
champ [Code Tome] correspond à la valeur du champ [Code Tome] dans le formulaire principal qui est " Encodage
Tomes " (noté "Forms ! [Encodage Tomes] ! [Code Tome]").
Les macros " encod tom " et "encod cli " sont semblables à cette macro.
Vous trouverez dans le tableau ci-dessous un bref descriptif des actions de macros les plus souvent utilisées.