Lier des sous-formulaires à l'aide de Microsoft Access

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.

Capture écran fiche Paradox Borland
Figure 1 : Fiche dans Borland Paradox.

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].

Capture écran table T_CONTACT
Figure 2 : Affichage de la table exemple.

Sa structure est relativement simple et classique.

Capture écran structure table T_CONTACT
Figure 3 : Capture de la structure de la table.

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.

Capture écran formulaire mode design affichage continu
Figure 4 : Formulaire continu en mode « design ».

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].

Capture écran formulaire mode design affichage unique
Figure 5 : Formulaire unique en mode « design ».

Formulaire indépendant

J'inclus ces deux formulaires dans un troisième [CONTACT-fr] qui n'a aucune source (formulaire indépendant).

Capture écran formulaire indépendant mode design
Figure 6 : Sous-formulaires en mode « design ».

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.

Capture écran générateur d'expressions
Figure 7 : Calcul de récupération du champ père.

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

Capture écran attribution champ père et champ fils
Figure 8 : Associer les champs père et fils.

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.

Capture écran message erreur définition champ père et champ fils
Figure 9 : Associer les champs père et fils.

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.

Capture écran sous-formulaires multiples
Figure 10 : Formulaire finalisé.

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.