Vous pouvez automatiser un formulaire Microsoft Access en enregistrant des macros dans le modèle de formulaire. Les macros sous Access peuvent s’exécuter automatiquement lorsque le point d’insertion est placé dans un champ de formulaire ou en est retiré.
Comment ouvrir un formulaire microsoft access à partir d’un autre?
- Exemple: lorsque je suis dans le formulaire Films, je veux ouvrir un formulaire qui liste les clients qui ont loué ce film
- D’abord créer une requête, Location_par_clients, montrant le nom, l’adresse, etc. – il faut que la requête contienne aussi le numéro de film, ld_film afin de pouvoir le sélectionner plus loin
- Créer un formulaire simple basé sur la requête Clients_qui_louent_film
- Créer la macro pour le formulaire Films
- Dans la macro, ajouter une ligne pour le bouton Louer qui ouvrira le formulaire créé
- Le formulaire Clients_qui_louent_film qu’on ouvrira affichera tous les films loués – ce n’est pas ce qu’on veut: on veut voir seulement les films qui correspondent au numéro de film dans la fenêtre ouverte en ce moment dans le formulaire Films – il faut que le numéro de film dans le formulaire qu’on est en train d’ouvrir soit le même que le numéro de film dans le formulaire Films ouvert en ce moment – la façon de faire cela est d’écrire la Condition Where dans la macro comme ceci:
[ld_film] = Formulaires![Films]![f_numero] On obtient la formule en utilisant le Générateur d’expression - Créer le bouton Louer dans le formulaire Films et y associer la macro Films.louer
Autres propriétés
- Une macro peut être invoquée à partir de plusieurs propriétés d’un objet et non seulement “Sur clic”
- Par exemple: dans les propriétés du Formulaire on retrouve:
Sur ouverture – activée quand on ouvre le formulaire
Sur fermeture – activée quand on ferme le formulaire
Sur activation – quand on change d’enregistrement dans le formulaire Pour chacune de ces propriétés on pourrait avoir une macro - Par exemple: dans le formulaire Films on a ajouté un bouton pour Clients qui louent film; mais lorsqu’on ajoute un nouveau film dans le formulaire, le bouton ne sert à rien (le film n’a jamais été loué puisqu’il est neuf); donc, on veut désactiverle bouton (la légende du bouton devient grise et le Sur clic n’a pas d’effet) pour que l’utilisateur ne le clique pas par erreur
- Dans la macro on ajoute une nouvelle colonne avec le bouton Condition
- On crée une nouvelle ligne et on lui donne le nom: SurActivation (car on va l’associer à la propriété Sur activation du formulaire)
- La condition est: [f_numero] est Null (lors de l’ajout d’un nouveau film Sur activation est invoquée en passant à un formulaire vide donc, il n’y a pas de numéro de film)
- L’action est: DéfinirValeuret les arguments sont:
Élément: [Louer].[Activé]
Expression: Non On assigne la valeur “Non” à la propriété “Activé” de l’objet “Louer” - Il faut aussi spécifier la macro pour la condition: [f_numero] est Pas Null – dans ce cas on veut que [Louer].[Activé] soit “Oui”
- Dans la propriété Sur activation du formulaire Films, on ajoute le nom de la macro: Films.SurActivation
La macro autoexec
Access vous offre l’opportunité d’ouvrir une base de données en exécutant une macrocommande. Ceci vous donne l’avantage d’ouvrir avec une macro pour exécuter des commandes ou pour ouvrir la base de données à partir d’un formulaire (menu) principal. Il suffit de créer une macro en lui donnant le nom Autoexec. Si vous voulez ouvrir une base de données sans exécuter la macro de départ autoexec, gardez un doigt sur la touche MAJ (Shift) au moment d’ouvrir la base de données.