Formulaires et macros
en date de :
Ouvrir un formulaire à partir d'un autre formulaire
- Exemple: lorsque je suis dans le formulaire Films, je veux ouvrir un formulaire qui liste les clients qui ont loué ce film
 Fig. 13-1
- 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
 Fig. 13-2
 Fig. 13-3
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ésactiver le 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éfinirValeur et 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
 Fig. 13-4
 Fig. 13-5
|