formateur informatique

Didacticiel sur les macros Access, leurs crtières et exécution

Accueil  >  Bureautique  >  Access  >  Access Avancé  >  Didacticiel sur les macros Access, leurs crtières et exécution
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Les Macros avec Access
Dans ce didacticiel nous abordons les macros dans Access. Les macros permettent d'automatiser de nombreuses actions et de réaliser des tâches spécifiques. Pour ce faire, nous allons réaliser les manipulations sur une petite base de données existante, la base de données facturation-macros.
  • Télécharger la base de données facturation-macros.accdb en cliquant sur ce lien,
  • L'ouvrir dans Access,
  • Cliquer sur le bouton Activer le contenu sous le ruban,

Comme vous le constatez, cette base de données est déjà constituée de nombreux objets listés dans le volet de gauche d'Access. Nous avons des tables, des requêtes ainsi que des formulaires et des états. L'ossature de cette petite base de données est conçue sur deux tables reliées entre elles. La table Clients qui liste des clients et la table Commandes qui liste des commandes de ce clients. Le formulaire Clients_et_commandes regroupe ces données sur une interface graphique ergonomique de sorte que nous accédons aux commandes d'un client sur une même vue. Il s'agit donc d'un formulaire avec un sous formulaire. Le didacticiel suivant forme sur l'apprentissage de la création de ces formulaires complexes.

Création d'une macro
  • Cliquer sur l'onglet créer pour afficher son ruban,
  • Cliquer sur le bouton Macro dans la section Macros et codes,
Nous basculons ainsi dans l'éditeur de macro qui permet de paramétrer les actions à associer.
  • Dans la liste déroulante de l'éditeur, choisir l'action OuvrirFormulaire,
  • Dans la liste Nom du formulaire, choisir le formulaire Clients_et_commandes,
  • Dans la liste Mode de données, choisir le mode Modification,
Comme vous le constatez, nous aurions pu choisir le mode Lecture seule. Dans ce cas les utilisateurs n'auraient pu que consulter les données et non les modifier. Ici, en mode Modification, nous pouvons modifier les clients et leurs commandes.
  • Réaliser la combinaison de touches CTRL + S pour enregistrer cette macro,
  • Dans l'invite qui apparaît, lui donner un nom, par exemple : Ouvrir_form_clts_cmdes,
  • Puis valider en cliquant sur Ok.
Création macro pour ouvrir un formulaire Access
La macro apparaît dans la liste de tous les objets du volet de gauche dans la section Macros.
  • Fermer l'éditeur de macro en cliquant sur la croix de son onglet,
  • Double cliquer sur la macro ainsi créée dans le volet de gauche,
Vous constatez qu'elle commande bien l'affichage du formulaire Clients_et_commandes comme nous l'avons demandé.
  • Fermer ce formulaire en cliquant sur la croix de son onglet.

Les groupes de macros
Il s'agit ni plus ni moins d'une macro dans laquelle nous paramétrons plusieurs actions. Ainsi la macro ne se limite pas à un traitement. Elle enchaîne les tâches en cascade selon la chronologie qui a été définie.
  • Cliquer sur la macro dans le volet de gauche pour la sélectionner,
  • Réaliser la combinaison de touches CTRL + C pour la copier,
  • Réaliser la combinaison de touches CTRL + V pour la coller,
  • A l'invite qui apparaît, lui donner un nom, par exemple : Groupe_form_clts_cmdes,
  • Puis cliquer sur Ok pour valider.
La copie de cette macro apparaît à son tour dans le volet de gauche. Pour reprendre le paramétrage d'une macro et lui ajouter des actions, nous devons l'ouvrir en mode création :
  • Dans le volet de gauche, cliquer avec le bouton droit de la souris sur la copie de la macro que nous venons de créer,
  • Dans le menu contextuel, cliquer sur Mode création,
Nous souhaitons ajouter une action qui permette de définir précisément à quel endroit le formulaire doit s'ouvrir, sur quel client. Pour cela, nous devons ajouter une action qui réalise un filtre sur le nom du client. Ce nom lui sera passé à l'ouverture du formulaire par l'utilisateur qui souhaite accéder à ce client. C'est la condition WHERE du filtre avec un paramètre qui va permettre de réaliser cette tâche.
  • Sous l'action précédente, à l'aide de la liste déroulante, choisir l'action DéfinirFiltre,
  • Attribuer un nom à ce filtre dans la zone Nom du filtre, par exemple Quel_client,
  • Dans la zone Condition WHERE, taper la correspondance suivante : [Clients_nom]=[Nom du client ?]
Nous demandons à ce que le nom du client, identifier dans la table par le champ Clients_nom soit identique à ce que l'utilisateur tapera au moment de l'action. Le fait que le paramètre Nom du client ? tapé entre crochets ne corresponde pas à un nom de champ valide de la table, amènera Access à vous demander de préciser, via une boîte de dialogue au moment de l'exécution. Remarque : Quand vous pointez sur une action dans l'éditeur de macro, vous notez la présence d'une flèche verte dirigée vers le haut ou le bas. Elle permet tout simplement de modifier la chronologie de la macro en changeant l'ordre de ses actions.
  • Enregistrer la macro (CTRL + S),
  • Fermer l'éditeur de macro en cliquant sur la croix de son onglet,
  • Puis double cliquer sur cette macro depuis le volet de gauche afin de l'exécuter,
Macro avec filtre et boîte de dialogue



L'ouverture se produit et est directement suivie de l'invite programmée par la condition WHERE avec comme indication dans la boîte de dialogue, l'information que nous avions donnée : Nom du client ?
  • Taper alors le nom de l'un des clients, par exemple Douch,
  • Puis valider en cliquant sur Ok.
Vous êtes directement positionné sur le client que vous souhaitez traiter. Voilà donc, un début intéressant avec les macros pour automatiser certaines tâches et gagner du temps.
  • Fermer le formulaire en cliquant sur la croix de son onglet.

Condition dans les macros
Nous allons compliquer légèrement le cas ce qui va nous donner un léger aperçu de la puissance des macros avec Access. Nous souhaitons que la macro conçue jusqu'alors fonctionne toujours de la même façon à un détail près. Si l'utilisateur connaît le mot passe c'est qu'il s'agit de l'administrateur. Dans ce cas, le formulaire lui sera ouvert avec l'invite et avec tous les droits soit l'ajout et la modification des données. Dans le cas contraire, le formulaire s'ouvre toujours avec l'invite sur le nom mais en lecture seule, donc l'utilisateur ne peut modifier aucune donnée. Ce principe permet de sécuriser les données de la base de données. Pour cela nous devons ajouter dans la macro une condition qui vérifie le mot de passe saisi par l'utilisateur.
  • Dans le volet de gauche, sélectionner la dernière macro Groupe_form_clts_cmdes,
  • La copier (CTRL + C),
  • Puis la coller (CTRL + V),
  • A l'invite, taper son nouveau nom, par exemple : Si_form_clts_cmdes,
  • Puis valider en cliquant sur Ok.
La nouvelle macro apparaît bien dans le volet de gauche dans la liste des macros.
  • Cliquer dessus avec le bouton droit de la souris,
  • Dans le menu contextuel, cliquer sur Mode création,
Nous voilà de retour dans l'éditeur de macro. Si le mot de passe est correct, nous ouvrons avec tous les droits sinon, nous ouvrons en lecture seule. Le volet sur la droite de l'éditeur de macro représente le catalogue d'actions. Il est organisé en groupes d'actions représentés par des dossiers. Vous constatez à ce titre qu'ils sont nombreux, que les actions le sont tout autant et que les macros ont donc peu de limite. Un dossier Déroulement de programme doit être ouvert. Dans ce dernier figure l'action Si. Elle permet de poser la fameuse condition que nous recherchons.
  • Double cliquer sur cette action Si depuis le volet de droite,
Elle se greffe en bas de l'éditeur sous les deux actions précédentes.
  • Pointer avec la souris sur l'action Si de manière à faire apparaître la flèche verte dirigée vers le haut que nous avons évoquée toute à l'heure,
  • Cliquer deux fois consécutivement sur cette flèche verte de manière à remonter le Si en tête des actions,
Vous devez obtenir le résultat présenté par la figure ci-dessous.
Critère dans les actions de macro, fonction Si
Maintenant nous devons définir le critère de la fonction Si. Le mot de passe doit être validé. Pour cela, l'utilisateur doit pouvoir saisir le mot de passe, donc il faut une boîte de dialogue qui renvoie le texte tapé par l'utilisateur.
  • Cliquer sur l'icône de la baguette magique située à droite de la zone de saisie de la fonction Si,
Vous ouvrez ainsi le générateur d'expression.
  • Dans la liste de gauche Eléments d'expression, déployer le groupe Fonctions en cliquant sur son symbole +,
  • Cliquer alors sur Fonctions intégrées,
  • Dans la liste centrale, Catégories d'expressions, cliquer sur la catégorie Messages,
  • Dans la liste de droite, Valeurs d'expressions, cliquer sur la fonction BEntrée,
  • Puis cliquer sur Ok pour valider et fermer le générateur d'expression.
L'expression n'est pas terminée puisqu'elle n'est pas paramétrée et qu'elle ne pose aucun critère. Mais nous allons finir de la personnaliser depuis l'éditeur de macro car c'est plus simple.
Macro et générateur expression pour boîte de dialogue
Dans l'éditeur de macro, dans l'expression de la fonction Si :
  • Remplacer le texte «prompt» par le message de la boîte de dialogue, par exemple : 'Veuillez saisir le mot de passe Administrateur s'il vous plaît',
N'oubliez pas les guillemets.
  • Remplacer le texte «title» par 'Mot de passe',
Il s'agit du titre qui apparaîtra sur la boîte de dialogue. Tous les autres arguments étant facultatifs :
  • Supprimer tous les arguments qui suivent et fermer la parenthèse après le titre,
  • Après la parenthèse fermée, taper le symbole =,
Le mot de passe doit suivre pour que le critère soit complété. Nous choisissons arbitrairement le mot de passe xyz.
  • Taper le mot de passe 'xyz' sans oublier les guillemets car il s'agit d'un texte,
Le critère est correctement tapé. Cependant les actions que nous avions précédemment définies pour ouvrir le formulaire et rechercher un client ne sont pas incluses dans la fonction. Elles vont donc échapper à la vérification du critère. Nous devons les glisser dans la partie Alors de la fonction Si.
  • Cliquer et glisser l'action OuvrirFormulaire sur la fonction Si,
Un cadre rouge apparaît autour de l'action de la fonction Si au moment où vous pouvez relâcher le bouton de la souris. Vous incorporez ainsi l'action d'ouverture dans le Alors de la fonction Si, soit lorsque le critère sur le mot de passe est vérifié.
  • Faire de même avec l'action DéfinirFiltre en la plaçant fort logiquement après l'action OuvrirFormulaire,
Actions de macros Access sans une fonction Si



Jusqu'alors par le biais de la macro, nous avons bien indiqué quoi faire lorsque le mot de passe est validé : Ouvrir le formulaire avec tous les droits (Modification) et enclencher la recherche sur le nom. Mais nous n'avons pas encore indiqué quoi faire dans le cas contraire, un utilisateur qui n'est pas l'administrateur : Ouvrir le formulaire en lecture seule et enclencher la recherche sur le nom.
  • Dans l'éditeur de macro, en bas de la fonction Si, cliquer sur le lien Ajouter sinon,
Nous allons greffer dans cette partie sinon une copie des deux actions exécutées par la partie Alors.
  • En maintenant la touche CTRL enfoncée, cliquer et glisser l'action OuvrirFormulaire dans la partie sinon,
  • Modifier alors son mode de données sur Lecture seule,
  • Puis, toujours avec la touche CTRL, cliquer et glisser la fonction DéfinirFiltre dans la partie Sinon après l'action OuvrirFormulaire que nous venons de modifier,
  • Enregistrer la macro (CTRL + S),
La capture ci-dessous illustre le travail effectué sur la macro.
Critères sur une macro, quoi faire alors et quoi faire sinon
  • Fermer l'éditeur de macro en cliquant sur la croix de son onglet,
  • Puis, double cliquer sur cette macro dans le volet de gauche pour l'exécuter,
La boîte dialogue que nous avons paramétrée (BEntrée) s'affiche.
  • Taper le mot de passe administrateur xyz et valider,
L'ouverture du formulaire suit selon la chronologie programmée puis survient l'invite sur le nom du client à rechercher.
  • Taper un nom de client comme Douch par exemple et valider par Ok,
Jusque là tout fonctionne, nous nous retrouvons bien sur le client demandé après avoir tapé le mot de passe et le nom du client recherché.
  • Essayer de modifier la date de naissance du client,
Access vous y autorise. Le formulaire a bien été ouvert en mode exclusif.
  • Fermer le formulaire,
  • Double cliquer de nouveau sur la macro dans le volet de gauche,
  • Taper un mot de passe erroné ou valider directement en cliquant sur Ok,
  • Taper ensuite le nom du client recherché, le même que précédemment Douch,
Access vous y positionne de la même façon que précédemment. Vous notez au passage que la modification sur la date de naissance a bien été prise en compte.
  • Tenter de nouveau de modifier la date de naissance du client,
Cette fois Access vous l'interdit. Le formulaire a bien été ouvert en mode Lecture seule et les critères de la fonction Si ont correctement été déroulés. Voilà donc un bout d'application Access fort intéressant pour sécuriser les données. Tous les salariés qui ne connaissent pas le mot de passe ont bien accès aux données pour les consulter et/ou les imprimer mais ne peuvent pas les modifier. Les administrateurs quant à eux, par le biais de la même application, ont accès aux mêmes informations mais peuvent en plus les modifier, les supprimer et en ajouter. Pour parfaire l'application et sécuriser encore plus les données, nous avons besoin que seule cette invite de saisie de mot de passe soit disponible à l'ouverture de la base de données. Pour cela nous avons besoin d'un type de macro particulier, une macro auto-exécutable.
  • Fermer le formulaire.

Macro auto-exécutable – Autoexec
Nous allons créer une macro dont le but sera simplement de lancer l'exécution de la macro précédente. Ce qui définira qu'elle devra s'exécuter au démarrage de la base de données est son nom. Elle doit s'appeler Autoexec.
  • Cliquer sur l'onglet Créer pour activer son ruban,
  • Cliquer sur le bouton Macro de la section Macros et code,
  • Dans le volet de droite, dans le sous dossier Commandes de macro du dossier Actions, double cliquer sur la commande ExécuterMacro,
Commande exécuter macro Access
La macro apparaît au centre de l'éditeur.
  • Dans la liste déroulante Nom de macro, choisir la macro précédente Si_form_clts_cmdes,
C'est tout ! Il ne nous reste plus qu'à l'enregistrer avec le bon nom.
  • CTRL + S pour enregistrer cette nouvelle macro,
  • A l'invite taper précisément le nom suivant : Autoexec,
  • Valider et fermer l'éditeur de macro.
Macro Access auto-exécutable, autoexec
La nouvelle macro apparaît bien dans la liste des objets dans le volet de gauche.
  • Cliquer sur le menu Fichier en haut de la fenêtre Access,
  • Dans la liste, cliquer ensuite sur Fermer,
Maintenant que la base de données est fermée, nous souhaitons vérifier qu'elle se comporte bien comme convenu à l'ouverture.
  • Cliquer de nouveau sur le menu Fichier,
  • Cliquer ensuite sur Ouvrir,
Votre base de données doit apparaître dans la liste des bases récentes, catégorie Aujourd'hui, au centre de l'écran.
  • Cliquer dessus pour l'ouvrir,
Le message demandant le mot de passe apparaît automatiquement. Nous avons donc bien réussi à transformer notre base de données en petite application avec quelques sécurités même si d'autres sont encore à définir. Ce sera l'objet d'un autre support de formation.



 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn