Professional Documents
Culture Documents
Introduction .......................................................................................................................... 2 Cration d'une macro autonome .......................................................................................... 2 Excuter la macro pas pas................................................................................................. 5 Modifier une macro............................................................................................................... 5 Cration d'une macro associe un formulaire ................................................................... 6 Excuter des actions en fonction de conditions................................................................... 7 Afficher un message............................................................................................................. 7 Dplacer le curseur .............................................................................................................. 8 Affectation de la macro l'vnement.................................................................................. 9 Dfinir la valeur d'un champ dans une macro ..................................................................10 Mettre un bouton de commande dans un formulaire........................................................11 Ouvrir un formulaire et afficher un enregistrement ..........................................................12 Crer une boite de dialogue .............................................................................................13
Page 1 sur 13
Cours ACCESS
La partie suprieure de la fentre (le tableau) est destine aux diffrentes actions qui vont composer la macro. La plupart des actions ont des paramtres (par exemple l'action OuvrirTable qui ouvre une table demande en paramtre le nom de la table qu'elle va ouvrir), les paramtres (par exemple ici, le nom de la table) sera indiqu dans la partie infrieure de la fentre.
Page 2 sur 13
Cours ACCESS
2. On choisit dans le menu droulant l'action que l'on veut faire excuter par la macro :
Comme vous pouvez le constater, il existe un trs grand nombre d'actions possible, en fait, tout ce qu'on peut faire dans Access se retrouve dans ce menu. Pour avoir la liste des actions possibles, utilisez l'aide intgre Access qui dcrit le fonctionnement de chaque action. Nous voulons ouvrir une table, nous choisissons l'action "OuvrirTable".
3.
Comme vous pouvez le constater, dans le champ "Nom table" apparaissent les noms de toutes les tables de la base, on choisit "Clients". Deux autres champs peuvent paramtrer l'action : ?? Affichage : dtermine si la table sera ouverte en mode cration ou en mode feuille de donnes ?? Mode donnes : Trois choix : Ajout (on peut ajouter des enregistrements la table), Modification (on peut ajouter, modifier ou supprimer des enregistrements) et Lecture Seule (seule la consultation est permise).
Page 3 sur 13
Cours ACCESS
Vous l'avez remarqu, le tableau de la fentre "Macros" contient plusieurs lignes, on peut excuter plusieurs actions les unes la suite des autres dans la mme macro, maintenant, aprs avoir ouvert notre table Clients, nous allons ouvrir le formulaire associ cette table :
L'Action "OuvrirFormulaire" a plus de paramtres : ?? Affichage : identique aux tables ?? Mode donnes : identique aux tables ?? Nom Filtre : on peut indiquer ici le nom d'une requte contenant les critres ncessaires la slection des enregistrements. ?? Mode fentre : indique comment le formulaire va tre affich : Standard (comme dfini dans Affichage), Masque (le formulaire est ouvert et automatiquement cach), Icne (le formulaire est rduit en icne), Bote de dialogue (nous verrons a plus tard) ?? Condition Where : plus tard
5.
Excution de la macro
Sauvez votre macro. Comme pour les requtes, cliquez sur l'icne 'Point d'exclamation'. Access va alors excuter toutes les lignes de la macro et s'arrter ds qu'il va rencontrer une ligne vide, ou ds qu'il va rencontrer l'action "ArretMacro".
Page 4 sur 13
Cours ACCESS
3.
Access affiche la premire action ainsi que ses paramtres, cliquez sur : ?? Pas pas : pour excuter cette action et passer la suivante ?? Arrter : pour stopper l'excution de la macro ?? Continuer : Pour poursuivre l'excution de la macro en mode normal
Page 5 sur 13
Cours ACCESS
En rsum, ces vnements concernent l'ouverture, la fermeture du formulaire et la gestion des enregistrements. Les vnements lis aux contrles d'un formulaire sont les suivants : Evnement Sur Clic Sur Double Clic Sur Entre Sur Sortie Avant MAJ Aprs MAJ La macro doit s'excuter : Quand on clique sur le contrle Quand on double-clique sur un contrle Avant d'accder un contrle Lorsqu'on quitte un contrle Aprs avoir quitt un contrle modifi et avant qu'Access ne fasse la mise jour Aprs avoir quitt un contrle modifi et aprs sa mise jour
Dans notre exemple, il faut que la macro s'excute lorsqu'on va accder un nouvel enregistrement, on va donc l'affecter l'vnement "AvantMAJ" du formulaire : il faut que la vrification de la bonne saisie de la date se fasse lorsque l'on veut changer d'enregistrement mais avant qu'Access n'enregistre quoi que ce soit.
Page 6 sur 13
Cours ACCESS
2.
Une nouvelle colonne apparat dans la fentre de la macro, c'est la colonne "Condition", c'est dans cette colonne qu'on va taper la condition qui dcidera si oui ou non l'action de la macro doit s'excuter. On veut qu'un message d'erreur s'affiche lorsque la date de la commande est vide, la condition pour que le message s'affiche est donc : [date de la commande] Est Null. L'action qui va tre dclenche si la condition s'avre vraie va tre l'affichage d'un message d'erreur.
3.
7. Afficher un message
Pour afficher un message pendant une macro, on utilise l'action "BoteMsg", "BoteMsg" va afficher une bote de dialogue Windows avec le texte et les caractristiques qu'on va indiquer dans les paramtres de l'action. L'action "BoteMsg" a les paramtres suivants : ?? ?? ?? ?? Message : texte afficher Bip : Emet un bip sonore lors de l'affichage du texte Type : Icne afficher ct du texte (point d'exclamation, d'interrogation, etc) Titre : titre de la fentre o va s'afficher le texte
Page 7 sur 13
Cours ACCESS
8. Dplacer le curseur
Une fois le message d'erreur affich, il va falloir positionner le curseur automatiquement sur le contrle Date, pour que l'utilisateur puisse le resaisir. Il existe plusieurs actions pour dplacer le curseur : ?? AtteindreContrle : Dplace le curseur sur un contrle spcifi ?? AtteindrePage : Dplace le curseur sur le premier contrle de la page spcifie ?? AtteindreEnregistrement : Dplace le curseur sur l'enregistrement spcifi ou sur un nouvel enregistrement. Nous devons dplacer le curseur dans le formulaire sur le contrle du champ "Date", nous utiliserons donc l'action "AtteindreContrle" :
Quoi de neuf dans cette fentre ? Sur la premire ligne on a la condition : si la date de la commande est vide, on affiche le message d'erreur, mais aprs avoir affich l'erreur que fait-on ? on va faire plusieurs choses, et pour indiquer que les autres actions que l'on va faire vont se drouler dans le cas o l'erreur s'est produite, on va mettre comme condition "", autrement dit, chaque fois qu'Access va rencontrer comme condition "", il va reprendre la condition spcifie explicitement plus haut. Donc, aprs avoir affich l'erreur, on va excuter l'action "AnnulerEvnement". A quoi sert cette action ? Normalement, aprs avoir modifi le formulaire, Access va m ettre jour les champs correspondants dans les tables lis ce formulaire. Juste avant de faire cette mise jour, Access va appeler la macro associe lvnement AvantMAJ . La macro va tre excute, puis la mise jour sera faite. Il faut quon annule cette mise jour, sinon, le message indiquant que la date est vide va tre affich, puis Access va sauvegarder les modifications et sauver dans la table commandes la date vide. Laction AnnulerEvnement annule la mise jour qui allait tre faite, ainsi, la date vide ne sera pas sauve.
Enfin, on va dplacer le curseur sur le contrle "Date de la commande" grce l'action "AtteindreContrle", Ainsi le curseur clignotera directement sur le contrle o lutilisateur devra saisir la date.
Page 8 sur 13
Cours ACCESS
Choisissez l'vnement auquel vous voulez associer la macro, dans le menu droulant s'affichent toutes les macros existantes, on choisit "Date Obligatoire". Une fois la macro associe l'vnement, il suffit d'entrer une commande dans laquelle on omet de saisir la date pour vrifier que la macro va s'xecuter (message d'erreur et repositionnement sur le contrle) :
Page 9 sur 13
Cours ACCESS
Quels sont les paramtres de l'action "DfinirValeur" ? ?? Elment indique qu'est-ce qui est modifier, ce peut tre comme ici le nom d'un champ, mais ce peut tre aussi une proprit d'un contrle par exemple. ?? Expression : Indique la nouvelle valeur de l'lment indiqu prcdemment, ce peut tre une valeur indique explicitement, le contenu d'un autre champ, le rsultat d'un calcul, ou, comme ici le rsultat d'une fonction. La fonction "Majuscule( )" renvoie la chane de caractre pass en paramtre en majuscule. Comme prcdemment, on va affecter cette macro l'vnement "AvantMAJ" su formulaire.
Page 10 sur 13
Cours ACCESS
Un petit peu compliqu pour imprimer un bon de commande ? La macro comporte trois actions, pourquoi ? Si on n'utilise que l'action "Imprimer", Access va imprimer tous les bons de commande, il faut donc limiter l'impression au bon de commande courant, pour cela, on procde en trois tapes : ?? D'abord, on appelle l'action "ExecuterCommande", "ExecuterCommande" permet d'excuter toutes les oprations possibles dans Access, on va donc choisir parmi la liste propose, l'action "SlectionnerEnregistrement", cette action va slectionner l'enregistrement courant. Une fois cet enregistrement slectionn, on va pouvoir l'imprimer. ?? Ensuite, on appelle l'action "Imprimer", parmi les paramtres de cette commande, il y a la dfinition de ce qui a imprimer : toutes les pages, un groupe, une slection, on choisit la slection. ?? Enfin, on appelle l'action "AtteindreContrle", cette action va positionner le curseur sur le contrle pass en paramtre, ce qui a pour effet de supprimer la slection.
Page 11 sur 13
Cours ACCESS
On peut choisir toutes les actions possibles, parmi celles-ci, dans la catgorie "Divers", il y a "Executer une macro", aprs avoir cliqu sur suivant, Access nous demande le nom de cette macro, on choisit celle que l'on vient de crer, puis le texte ou l'icne du bouton. Vous pouvez essayer, ca marche ! Si par la suite, vous allez regarder les proprits du bouton qui vient d'tre cr, vous verrez que la macro a t affecte l'vnement "Sur Clic", ce qui signifie, qu' chaque fois qu'on cliquera sur le bouton, la macro se dclanchera, vous pouvez la placer ailleurs, par exemple sur l'vnement "Sur Double Clic", il faudra alors double-cliquer sur le bouton pour imprimer.
On indique qu'on ouvre le formulaire "Clients", et ici, on utilise la condition Where qu'on avait vu plus tt, on va indiquer que dans le formulaire qui va tre ouvert, le champ [Nclient] (numro de client) va tre gal [Formulaires]![bon de commande + ]![Nom Client]. Ce qui signifie que le champ [Nclient] dans le formulaire "Clients" va tre gal au contenu du contrle "Nom Client" dans le formulaire " Bon de commande+".
Page 12 sur 13
Cours ACCESS
Une bote de dialogue est un formulaire standard qui a des proprits particulires : Dans la fentre proprits du formulaire, cliquez sur l'onglet "Toutes", et mettez la proprit "Fen Indpendante" oui, "Fen Modale" oui, "Auto Center" oui, "Boite Contrle" non et "Affich par dfaut" "Mode simple". Ce qui aura pour effet de crer un formulaire qui sera centr l'cran, qui n'affichera pas le menu systme de windows en haut gauche et qui n'affichera pas les icones pour se dplacer sur les enregistrements.
La liste de choix contient le rsultat d'une requte allant chercher les numros de toutes les commandes. 2. On cre ensuite la macro
La macro est du mme type que la prcdente, la clause Where ici est : [N Commande]=[Formulaires]![boite]![liste commandes] o [N Commande] est le nom du champ contenant le numro de commande dans le formulaire "Bond de Commande" et [liste commandes] est le nom de la liste contenant la liste des commandes existantes.
Voil, nous avons fait le tour rapidement des fonctionnalits offertes par l'utilisation des macros, on peut, bien sur, pousser plus loin et faire beaucoup d'autres choses avec, vous d'exprimenter et de trouver d'autres utilisations aux macros.
Page 13 sur 13