Retour au sommaire du Travail Pratique Access
5.3 Formulaire dynamique FormSérieConcurrents
Si l'on se reporte à la figure de début du chapitre présentant le
résultat final visé, on voit que notre sous-formulaire trouve sa place dans le
bas du formulaire tandis que la partie haute contient une liste à choix
affichant des informations sur chaque série. De plus, il doit y avoir un lien
entre le numéro de série sélectionné et la liste de concurrents qui en découle.
Pour que notre liste de choix puisse afficher une série et son horaire, ainsi
que le nom de l'épreuve correspondante, nous avons besoin d'une requête qui
récupère ces informations dans les tables Série et Epreuve. Nous l'appellerons
ReqSérieEpreuve et elle comportera les champs Num_Série (trié), Nom_Epreuve et
Horaire.

Nous allons maintenant créer le formulaire définitif en nous
mettant en Mode Création (pas d'assistant) sur la base de notre dernière requête
ReqSérieEpreuve. Nous allons tout d'abord placer le sous-formulaire
ssFormSérieNoms dans le formulaire : il suffit pour cela de le pointer dans la
fenêtre de notre base, à l'onglet Formulaire, et de le glisser avec la souris
sur le formulaire. Après un positionnement et un dimensionnement approximatifs,
on se retrouve avec l'écran qui suit.

Il nous faut ensuite installer notre zone à choix qui affiche la
liste des séries (avec épreuve et horaire) et permet le choix d'une série. Nous
le ferons en choisissant dans la Boîte à outils celui de Zone de Liste
Modifiable que l'on tracera en haut à droite du formulaire :

L'assistant nous prend par la main pour décrire cette zone de
choix. On suivra le parcours qui suit.


On inclura ensuite les trois champs de la table.

Ici, on peut rétrécir les colonnes sans problème. Comme l'indique
l'image qui suit, Access nous invite à stocker la valeur d'un champ de liaison
et donc à choisir le champ désiré.

C'est effectivement le champ Num_Série qui fait le lien avec le
sous-formulaire, et plus précisément avec la valeur [Quelle série ?] que demande
la requête paramétrée qu'il affiche.

Ici, l'usage ultérieur est la récupération par le sous-formulaire.
Après traçage de cet objet, on se retrouve avec le formulaire en création qui
suit. Le point le plus crucial ici est que le Nom (dans Propriétés) du contrôle
indépendant créé se voit affecté la fameuse variable "Quelle série ?" (sans
crochets, réservés à la spécification de la requête paramétrée). C'est le moyen
d'établir le lien souhaité.
On vérifiera que l'on obtient bien le résultat escompté. Il nous
reste maintenant quelques points de détail pour arriver à une présentation de
qualité.
Tout d'abord, notre formulaire nous propose deux barres de navigation entre
enregistrements qui ne nous servent à rien.

On peut les supprimer en mettant à "Non" la propriété "Boutons de
déplacement" du formulaire global (pointer en dehors de la zone du formulaire).
On fera de même pour le sous-formulaire ssFormSérieNoms.
Dans la liste de choix, seules 8 séries sur 12 sont affichées. On changera donc
dans la Propriété "Lignes affichées" le 8 (défaut) par 15 pour avoir une marge
si l'on crée de nouvelles séries.
Ensuite on ajustera la taille du formulaire et de ses éléments, notamment pour
éviter les ascenseurs de la liste des concurrents d'une série. On modifiera
enfin les étiquettes du sous-formulaire et de la zone de liste modifiable. On
pourra aussi changer polices, couleurs, etc. des divers éléments.
A titre d'exercice, on essaiera de supprimer l'affichage de la colonne Série
dans la liste des concurrents : elle fait double emploi avec le numéro de la
série choisie et qui apparaît en tête de formulaire.
Retour au sommaire du Travail Pratique Access