Créer un sous-formulaire Access

Publié le 18 avril 2013 par Lydia Provin @Votreassistante

Un sous-formulaire est un formulaire inséré dans un autre formulaire. Il permet d'afficher les données de plusieurs tables ou requêtes au même endroit et en même temps.

Pour ce tutoriel, je vais utiliser la base de données utilisée pour la création de relations car il est important que les tables des formulaires que je vais créer soient reliées. Pour cela, je vous invite à voir ou revoir l'article À quoi servent les relations entre les tables Access et comment les créer.

Pour mon exemple, je souhaiterais avoir un formulaire qui me permettrait d'afficher pour chaque client les factures qui lui ont été établies. Ce qui correspond à ce que l'on a pu voir précédemment lorsque l'on avait créé les relations et que nous sommes retournés dans la Table Clients.

La différence est, qu'en utilisant un sous-formulaire, je peux afficher plus de données et de manière plus agréable.

Pour commencer, je vais créer mon formulaire principal qui sera basé sur ma Table Clients. Je ne vais pas rentrer dans le détail car j'ai déjà publié un tutoriel sur la création d'un formulaire Access, je vous invite donc à le lire ou relire.

Je crée mon formulaire en utilisant l' Assistant Formulaire dans l'onglet Créer. Je choisis la Table Clients et je conserve tous mes champs. Je choisis la disposition Colonne simple.

Je réorganise ensuite la présentation pour pouvoir avoir mon sous-formulaire juste en dessous de mon formulaire principal et pour lui appliquer une mise en page plus agréable.

Voici le formulaire principal mis en page :

Maintenant il ne me reste plus qu'à insérer mon sous-formulaire.

Pour cela, j'agrandis la zone Détail en Mode création en faisant glisser le Pied de formulaire .

Puis, dans l'onglet Création, je fais dérouler les options de Contrôles :

Je clique ensuite sur Sous-formulaire/Sous-état .

Comme dans l'article sur la création de formulaire, lorsque j'insérai une image, mon curseur se transforme en + avec une image de formulaire. Je peux donc soit dessiner le cadre de mon sous-formulaire soit faire un simple clic à l'endroit souhaité.

Au moment où je relâche mon clic, une boîte de dialogue apparaît : l' Assistant Sous-formulaire.

Je laisse cochée Utiliser les tables et les requêtes existantes puisque je n'ai pas créé d'autre formulaire, puis je clique sur Suivant.

Je sélectionne ma Table Factures puisque mon formulaire principal contient déjà les informations des clients et je fais passer tous mes champs à droite sauf N° client qui ne sert qu'aux relations et qui ne me serait d'aucune utilité pour ce sous-formulaire. Je clique donc une fois sur puis je me place sur N° client et je clique sur . Je clique sur Suivant.

Comme j'ai créé une relation entre mes deux tables, je n'ai pas besoin de définir les champs effectuant le lien moi-même, je laisse cochée Choisir à partir d'une liste et Afficher Factures pour chaque enregistrement en Clients utilisant N° client. Je clique sur Suivant.

À cette dernière étape, je peux attribuer un nom à mon sous-formulaires, je laisse Factures sous-formulaire et clique sur Terminer.

J'ai bien mon sous-formulaire sous mon formulaire principal. Je peux retourner en mode formulaire soit en cliquant sur le bouton Mode formulaire soit sur la flèche en dessous puis Mode formulaire pour visualiser la mise en page.

Je peux, en retournant sur le Mode création , modifier la mise en page comme un formulaire classique.

Je peux déjà supprimer le titre du sous-formulaire en le sélectionnant et en appuyant sur la touche Suppr. Je déplace le sous-formulaire en cliquant une fois dessus, puis, lorsque le curseur se transforme en croix fléchée, je glisse l'encadré vers l'endroit souhaité. Ensuite, je l'agrandis en l'étirant avec la double flèche sur les points situés au milieu de chaque côté car en Mode formulaire on ne voyait pas toutes les données d'un seul coup et dans ce cas nous sommes obligés de naviguer avec la barre de défilement, ce qui fait perdre les avantages de la création de ce sous-formulaire : voir toutes les données en un clin d'œil.

En Mode formulaire, je peux réduire automatiquement les dimensions des champs en double-cliquant sur les lignes les séparant. Mais je peux également cliquer droit sur un des champs, puis Largeur de champ et entrer une largeur. Pour attribuer la même largeur à chaque champ, il suffit de tous les sélectionner avec la flèche noire et de cliquer sur Largeur de champ . Je peux aussi centrer certains champs en retournant dans le Mode création en cliquant sur la flèche de l' Affichage puis Mode création .

Sachez que vous pouvez, en Mode formulaire, faire afficher le sous-formulaire avec la même présentation que le formulaire principal. Pour cela, cliquez droit sur le sous-formulaire, puis Sous-formulaire > Formulaire .

Pour mon exemple, je ne trouve pas cette présentation utile car elle ne me permet pas de voir toutes les factures en une seule fois et je suis obligée de faire défiler les factures comme pour les clients.

Je peux repasser en mode Feuille de données en recliquant droit sur le sous-formulaire, toujours en Mode formulaire, puis Sous-formulaire > Feuille de données .

Je peux maintenant, créer un nouveau client et lui établir une facture ou établir une facture à un client existant.

Lorsque je referme mon formulaire, on me demande si je souhaite enregistrer les modifications du formulaire et du sous-formulaire, je clique sur Oui.

Mon sous-formulaire apparaît dans la liste des Formulaires et lorsque je clique dessus il est en mode feuille de données. Cependant, je ne l'utiliserais pas car n'ayant pas ajouté mon champ N° client, je pourrais ajouter des factures mais pas indiquer à quel client elle correspond.

Téléchargez " Créer un sous-formulaire Access " au format PDF

Je vous propose un fichier annexe dans l'Espace Membres contenant la base de données utilisée dans ce tutoriel.