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.

 

Suite

Retour au sommaire du Travail Pratique Access