J'ai connu l'époque de ce fabuleux système de données Paradox de Borland.
Il était possible de créer des formulaires (appelés fiches) sous forme de liste et les combiner avec un formulaire en mode simple pour visualiser le détail.
Microsoft Access ne permet pas une telle manœuvre. Dans une relation formulaire/sous-formulaire, le formulaire principal est forcément en mode unique.
Pour réaliser la même chose sur Microsoft Access, il nous faut ruser.
Mise en route
Je prendrais l'exemple d'une table de contact [T_CONTACT].
Sa structure est relativement simple et classique.
Création des formulaires
Nous aurons besoin de 3 formulaires.
- Le formulaire sous forme de liste (Affichage => Formulaires continus).
- Le formulaire détail (Affichage => Formulaire unique).
- Enfin un formulaire indépendant dans lequel seront inclus les deux autres.
Formulaire continu
Je commence par un formulaire en mode continu, avec pour source ma table [T_CONTACT]. Je le nomme [CONTACT-sfr1].
Dans ce formulaire, j'inclue les nom/prénom du contact.
Je passe sa propriété « Affichage » en « Formulaires continus ».
Formulaire unique
Je réalise mon formulaire de détails [CONTACT-sfr2] qui lui sera en mode simple. La source de ce formulaire sera bien sûr notre table [T_CONTACT].
Formulaire indépendant
J'inclus ces deux formulaires dans un troisième [CONTACT-fr] qui n'a aucune source (formulaire indépendant).
Créer le champ père
Dans ce formulaire, j'ai besoin d'un champ calculé. Je le nomme [CONTACT_ID] comme la clé de ma table [T_CONTACT], mais cela n'est pas obligatoire et il peut porter n’importe quel nom.
Je récupère dans ce champ, la valeur de la clé primaire de l'enregistrement sélectionné dans le formulaire sous forme de liste [CONTACT-sfr1].
Associer les sous-formulaires
Il reste à définir les propriétés "champ père" et "champ fils" du second sous-formulaire.
Le "champ père", c'est le nom du champ calculé, le "champ fils", c'est la clé primaire de notre table
Inutile d'utiliser les points de suite pour sélectionner les champs. Microsoft Access répond qu'il ne peut utiliser un formulaire indépendant. Il faut saisir les noms des champs.
En sélectionnant un enregistrement du premier formulaire, l'ID du contact est transféré dans le champ calculé et le second sous-formulaire affiche les détails correspondants.
Un peu de cosmétique
Il reste à finaliser le formulaire en supprimant les éléments inutiles. Ce n'est pas obligatoire, le but ici est de rendre l'utilisation plus agréable.
Je n'ai pas besoin des boutons de navigation ni du sélecteur d'enregistrements sur le formulaire principal.
Le champ calculé est masqué, il n’y a aucun avantage à l’afficher.
Je supprime les légendes inutiles des deux sous-formulaires.
Là aussi, les boutons de déplacement n’ont aucun intérêt.Sur le premier sous-formulaire, je navigue à l’aide des ascenseurs, et le second affiche un enregistrement unique.
Dans le premier sous-formulaire [CONTACT-sfr1], je remplace les deux champs [CONTACT_PRENOM] et [CONTACT_NOM] par un champ calculé [CONTACT_PATRONYME] qui les concatène.
Téléchargement
Vous pouvez télécharger le fichier exemple au format Microsoft Access 2010.
Achetez mon ouvrage !
Mon PDF « Créer un planning perpétuel sur Microsoft Excel sans macro » est disponible à la vente.
Pour plus d’informations, rendez-vous sur la page dédiée.