Cours ACCESS Les Macro Commandes Introduction . 2 2. Création d’une macr autonome or 12 Sni* to View Exécuter la macro pas pas. . . . . 4. Modifier une — Création d’une macro associée à un formulaire . 6. Page 1 sur 13 cours ACCESS LES MACRO COMMANDES 1. Introduction La macro commande permet d’automatiser certaines tâches d’Access, elle peut simuler une suite d’actions qui auraient du être fates par l’utilisateur. 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.
Certaines de ces actions, plus complexes, vous permettent 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 une application autonome sans avoir besoin de programmer des modules en Visual Basic (bien que les actions fassent référence ? des instructions en Visual Basic). La méthode de création d’une macro est liée à deux facteurs importants ?? L’environnement de départ de la macro : certaines macros peuvent être executées quelle que soit la fenêtre active, d’autres sont liées à un objet de la base de onnées (formulaire, état, ??
L’événement qui va déclencher l’exécutlon de la macro
Deux autres champs peuvent paramètrer l’action : ?? Affichage : détermine si la table sera ouverte en mode création ou en mode feuille de données ?? Mode données : Trois c PAGF 19 peut ajouter des avoir ouvert notre table Clients, nous allons ouvrir le formulaire associé à cette table : L ‘Action « OuvrirFormulaire » a plus de paramètres : ?? Affichage : identique aux tables ?? Mode données : identique aux tables ?? Nom Filtre : on peut indiquer ici le nom d’une requête contenant les critères nécessaires à la élection des enregistrements. ??
Mode fenêtre : indique comment le formulaire va être affiché : Standard (comme défini dans Affichage), Masquée (le formulaire est ouvert et automatiquement caché), Icône (le formulaire est réduit en icône), Boîte de dialogue (nous verrons ça plus tard) ?? Condition Where : plus tard… Exécution de la macro Sauvez votre macro. Comme pour les requêtes, cliquez sur l’icône ‘Point d’exclamation’. Access va alors exécuter toutes les lignes de la macro et s’arrêter dès qu’il va rencontrer une ligne vide, ou dès qu’il va rencontrer l’action « ArretMacro ».
Page 4 sur 13 3. Exécuter la macro pas à pas Pour analyser le déroulem 2 cro, on peut l’exécuter pas supprimer ou en insérer une autre. Page 5 sur 13 5. Création d’une macro associée à un formulaire Certaines macros doivent être exécutées en réponse à un événement lié au formulaire (ouverture, fermeture, fermeture… ), d’autres dépendent d’un événement lié ? un contrôle du formulaire (clic, valeur du contrôle, etc. ).
Dans le premier cas, la macro doit être insérée dans la feuille de propriétés du formulaire, dans le second cas, elle doit apparaître dans la feuille e propriétés du contrôle. II faut définir précisément quel est l’événement qui va déclencher l’exécution de la macro (quand tel événement se produit, telles actions vont se dérouler). Prenons un exemple, nous voulons refuser l’enregistrement d’une commande si la date de cette commande n’a pas été saisie. Nous pourrions dans les propriétés du champ date, indiquer dans la propriété Null Interdit Oui). La question à se poser est : « Quand va-t-on vérifier que le champ date est vide V, II n’y a qu’une réponse : « Quand on passera à un nouvel enregistrement, que ce oit pour retourner sur un enregistrement précédent ou pour en créer un nouveau ». Donc, lorsqu’on passera à un nouvel enregistrement, si la date est vide, on va afficher un message d’erreur, et positionner le curseur ? nouveau sur le champ date pour pouvoir le saisir.
L’événement « passer à un nouvel enre istrement » est lié au formulaire et pas au contr PAGF s 2 MAJ Après MAJ La macro doit s’exécuter A l’ouverture du formulaire A la fermeture du formulaire Lorsque Access accède à un enregistrement du formulaire Lorsqu’on précise la valeur d’un champ d’un nouvel nregistrement Lorsqu’on va supprimer un enregistrement Après avoir quitté un enregistrement modifié et avant l’enregistrement des modifications Après avoir quitté un enregistrement modifié et après modifications.
En résumé, ces événements concernent l’ouverture, la fermeture du formulaire et la gestion des enregistrements. Les événements liés aux contrôles d’un formulaire sont les suivants : Evénement Sur Clic sur Double Clic Sur Entrée Sur Sortie Avant MAJ La macro doit s’exécuter : Quand on clique sur le contrôle Quand on double-clique sur un contrôle Avant d’accéder à un contrôle Lorsqu’on quitte un contrôle Après avoir quitté un cont PAGF 6 2 t avant qu’Access ne fasse cette colonne qu’on va taper la condition qui décidera si oui ou non l’action de la macro doit s’exécuter.
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 déclenchée si la condition s’avère vraie va être l’affichage d’un message d’erreur. 7. Afficher un message Pour afficher un message pendant une macro, on utilise l’action BoîteMsg », « BoîteMsgi’ va afficher une boîte de dialogue Windows avec le texte et les caractèristiques qu’on va indiquer dans les paramètres de l’action.
L’action « BoîteMsg » a les paramètres suivants : Message : texte à afficher Bip : Émet un bip sonore lors de l’affichage du texte Type : Icône à afficher à côté du texte (point d’exclamation, d’interrogation, etc… ) Titre : titre de la fenêtre où va s’afficher le texte Page 7 sur 13 7 2 la condition : si la date de la commande est vide, on affiche le message d’erreur, mais après avoir affiché l’erreur que fait-on ? va faire plusieurs choses, et pour indiquer que les autres actions que l’on va faire vont se dérouler dans le cas où l’erreur s’est produite, on va mettre comme condition autrement dit, à chaque fois qu’Access va rencontrer comme condition « … l’, il va reprendre la condition spécifiée explicitement plus haut. Donc, après avoir affiché l’erreur, on va exécuter l’action « AnnulerEvénement ». A quoi sert cette action ? Normalement, après avoir modifié le formulaire, Access va mettre à jour les champs correspondants dans les tables liés à ce formulaire.
Juste avant de faire cette mise ? jour, Access va appeler la macro associée ? l’évènement « AvantMAJ La macro va être exécutée, puis la mise à jour sera faite. Il faut qu’on 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. L’action « AnnulerEvénement » annule la mise à jour qui allat être faite, ainsi, la date vide ne sera pas sauvée. Enfin, on va déplacer le curseur sur le contrôle « Date de la commande » grâce à l’action « AtteindreContrôle »,
Ainsi le curseur clignotera directement sur le contrôle où l’utilisateur devra saisir la date. Page 8 sur 13 9. Affectation de la macro 2 sur le carré noir situé en haut à gauche du formulaire, puis dans le menu, cliquez sur « Propriétés » Choisissez l’événement auquel vous voulez associer la macro, dans le menu déroulant s’affichent toutes les macros existantes, on choisit « Date Obligatoire » Une fois la macro associée à l’événement, il suffit d’entrer une commande dans laquelle on omet de saisir la date pour vérifier que la macro va s’éxecuter (message d’erreur et epositionnement sur le contrôle) : Page 9 Sur 13 10.
Définir la valeur d’un champ dans une macro On peut, grâce à une macro modifier le contenu d’un champ d’une table. Imaginons que nous voulions que le nom de chaque client saisi soit en majuscule, on pourrait bien sur le faire en modifiant la propriété « Masque de saisie » du contrôle « nom du client », mais nous allons voir comment le faire à partir d’une macro. Pouvoir modifier le contenu d’un champ lors d’un evénement peut s’avérer très utile. Nous allons créer une nouvelle macro et utiliser l’action DéfinirVaIeur » Quels sont les paramètres de l’action « DéfinirValeur » ? ??
Elément indique qu’est-ce qui est à modifier, ce peut être comme ici le nom d’un champ, mais ce peut être aussi une propriété d’un contrôle par exemple. ?? Expression : Indique la nouvelle valeur de l’élément indiqué précédemment, ce peut ê PAGF formulaire. Page 10 sur 13 11 . Mettre un bouton de commande dans un formulaire Nous avions vu rapidement dans les formulaires que, parmi les contrôles existants, il y avait un contrôle nommé « Bouton de Commande ». Ce bouton, placé sur un ormulaire, permet d’exécuter soit n’importe quelle action d’Access, soit, et c’est ce qui nous intéresse ici, une macro.
Dans notre formulaire « Bon de commande + », qui contient la commande ainsi que son détail, nous allons ajouter un bouton qui, lorsqu’on cliquera dessus, déclenchera l’impression du bon de commande. Nous allons créer une macro qui imprimera le formulaire Un petit peu compliqué pour imprimer un bon de commande ? La macro comporte trois actions, pourquo ? Si on n’utilise que l’action « Imprimer », Access va imprimer tous les bons de commande, il faut donc limiter ‘impression au bon de commande courant, pour cela, on procède en trois étapes : ??
D’abord, on appelle l’action « Executercommande », « ExecuterCammande » permet d’exécuter toutes les opérations possibles dans Access, on va donc choisir parmi la liste proposée, l’action « SélectionnerEnregistrement », cette action va sélectionner l’enregistrement courant. IJne fois cet enregistrement sélectionné, on va pouvoir l’imprimer. ?? Ensuite, on appelle l’action « Imprimer », parmi les paramètres de cette commande, il y a la définition de ce qui a à imprimer : tout groupe, une sélection,