Lorsque vous travaillez avec des données relationnelles dans Access, vous devez souvent afficher plusieurs tables ou requêtes sur le même formulaire. Par exemple, vous souhaiterez peut-être afficher les données client d’une table et les informations de commande client d’une autre table en même temps. Les sous-formulaires facilitent cette tâche, et Access vous offre plusieurs façons rapides de les créer.
Que voulez-vous faire ?
- En savoir plus sur les sous-formulaires
- Créer ou ajouter un sous-formulaire
- Créer un formulaire contenant un sous-formulaire à l’aide de l’Assistant Formulaire
- Ajouter un ou plusieurs sous-formulaires à un formulaire existant à l’aide de l’Assistant Sous-formulaire
- Créer un sous-formulaire en faisant glisser un formulaire sur un autre
- Ouvrir un sous-formulaire dans une nouvelle fenêtre en mode Création
- Changer l’affichage par défaut d’un sous-formulaire
- Ajouter des données associées à un formulaire sans créer de sous-formulaire
En savoir plus sur les sous-formulaires
Un sous-formulaire est un formulaire inséré dans un autre formulaire. Le formulaire principal est appelé le formulaire principal, et le formulaire joint est appelé le sous-formulaire. Une combinaison formulaire/sous-formulaire est parfois appelée formulaire hiérarchique, formulaire master/détail ou formulaire parent/enfant.
Les sous-formulaires fonctionnent particulièrement bien lorsque vous souhaitez afficher des données de tables ou de requêtes qui ont une relation un-à-plusieurs. Dans ce type de relation, la valeur de clé primaire de chaque enregistrement de la table primaire correspond à la valeur du champ correspondant ou des champs de nombreux enregistrements de la table associée. Par exemple, vous pouvez créer un formulaire qui affiche les données des employés et un sous-formulaire qui affiche les commandes de chaque employé. Les données de la table Employees sont le côté « un » de la relation. Les données de la table Orders sont le côté « plusieurs » de la relation, car chaque employé peut avoir plusieurs commandes.
Le formulaire principal affiche les données du côté « un » de la relation.
Le sous-formulaire affiche les données du côté « plusieurs » de la relation.
Dans ce type de formulaire, le formulaire principal et le sous-formulaire sont liés, si bien que le sous-formulaire ne présente que les enregistrements associés à l’enregistrement actif du formulaire principal. Par exemple, lorsque le formulaire principal affiche les informations de Nancy Freehafer, le sous-formulaire affiche uniquement ses commandes. Si le formulaire et le sous-formulaire étaient dissociés, le sous-formulaire afficherait toutes les commandes, pas seulement celles de Nancy.
Le tableau suivant définit les termes liés aux sous-formulaires. Access gère la plupart des détails si vous utilisez les procédures décrites dans cet article, mais il vous aide à savoir ce qui se passe en arrière-plan si vous devez apporter des modifications ultérieurement.
| Terme | Définition |
|---|---|
| Contrôle de sous-formulaire | Contrôle qui permet d’incorporer un formulaire dans un autre formulaire. Vous pouvez comparer le contrôle de sous-formulaire à une « vue » d’un autre objet de votre base de données, qu’il s’agisse d’un autre formulaire, d’une table ou d’une requête. Le contrôle de sous-formulaire possède des propriétés qui vous permettent de lier les données affichées dans le contrôle aux données du formulaire principal. |
| Propriété Objet source | Propriété du contrôle de sous-formulaire qui indique l’objet qui s’affiche dans le contrôle. |
| Feuille de données | Affichage simple de données sous forme de lignes et de colonnes, à la manière d’une feuille de calcul. Le contrôle de sous-formulaire affiche une feuille de données lorsque son objet source est une table ou une requête, ou lorsque son objet source est un formulaire dont Default View la propriété a la Datasheetvaleur . Dans ces cas, le sous-formulaire est parfois appelé feuille de données ou sous-feuille de données et non sous-formulaire. |
| Propriété Lier les champs enfants | Propriété du contrôle de sous-formulaire qui spécifie le ou les champs du sous-formulaire qui le lient au formulaire principal. |
| Propriété Lier les champs pères | Propriété du contrôle de sous-formulaire qui spécifie le ou les champs du formulaire principal le lient au sous-formulaire. |
Remarque
- Pour obtenir de meilleurs résultats, établissez des relations de table avant de suivre les procédures de cet article. Access peut ainsi créer automatiquement les liens entre les sous-formulaires et les formulaires principaux. Pour afficher, ajouter ou modifier les relations entre les tables de votre base de données, sous l’onglet Outils de base de données , dans le groupe Relations , cliquez sur Relations.
- Lorsqu’un contrôle de sous-formulaire a un formulaire comme objet source, il contient les champs que vous placez sur le formulaire. Vous pouvez l’afficher sous la forme d’un formulaire unique, d’un formulaire continu ou d’une feuille de données. L’un des avantages de la base d’un sous-formulaire sur un objet de formulaire est que vous pouvez ajouter des champs calculés au sous-formulaire, tels que
[Quantity] * [Unit price]. - Vous pouvez insérer une feuille de données ou une vue croisée dynamique dans un formulaire en créant un contrôle de sous-formulaire dont l’objet source est une table ou une requête. Pour plus d’informations, voir la section Ajouter des données associées à un formulaire sans créer de sous-formulaire.
Haut de la page
Créer ou ajouter un sous-formulaire
Utilisez le tableau suivant pour déterminer la procédure la plus adaptée à votre situation.
| Scénario | Procédure recommandée |
|---|---|
| Vous souhaitez qu’Access crée à la fois un formulaire principal et un sous-formulaire, et lie le sous-formulaire au formulaire principal. | Créer un formulaire contenant un sous-formulaire à l’aide de l’Assistant Formulaire |
| Vous souhaitez utiliser un formulaire existant en tant que formulaire principal, mais souhaitez qu’Access crée un nouveau formulaire et l’ajoute au formulaire principal. | Ajouter un ou plusieurs sous-formulaires à un formulaire existant à l’aide de l’Assistant Sous-formulaire |
| Vous souhaitez utiliser un formulaire existant en tant que formulaire principal, et ajouter un ou plusieurs formulaires existants à ce formulaire en tant que sous-formulaires. | Créer un sous-formulaire en faisant glisser un formulaire sur un autre |
Créer un formulaire contenant un sous-formulaire à l’aide de l’Assistant Formulaire
Cette procédure permet de créer une combinaison formulaire/sous-formulaire à l’aide de l’Assistant Formulaire. Il s’agit également du moyen le plus rapide de commencer si vous n’avez pas encore créé les formulaires que vous souhaitez utiliser comme formulaire principal ou sous-formulaire.
Sous l’onglet Création, dans le groupe Formulaires, cliquez sur Assistant Formulaire.
Dans la liste déroulante Tables/Requêtes de la première page de l’Assistant, sélectionnez une table ou une requête. Pour cet exemple, pour créer un formulaire Employés qui affiche les commandes de chaque employé dans un sous-formulaire, sélectionnez Table : Employés (le côté « un » de la relation un-à-plusieurs).
Remarque
Peu importe la table ou la requête que vous choisissez en premier.
Double-cliquez sur les champs de cette table ou requête que vous souhaitez inclure.
Dans la même page de l’Assistant, sélectionnez une autre table ou requête dans la liste déroulante Tables/Requêtes. Pour cet exemple, sélectionnez la table Orders (le côté « plusieurs » de la relation un-à-plusieurs).
Double-cliquez sur les champs de cette table ou requête que vous souhaitez inclure.
Lorsque vous cliquez sur Suivant, à supposer que vous ayez correctement configuré les relations avant de démarrer l’Assistant, celui-ci vous pose la question suivante : Comment souhaitez-vous afficher vos données ? (c’est-à-dire, en fonction de quelle table ou requête). Sélectionnez la table du côté « un » de la relation un-à-plusieurs. Pour cet exemple, pour créer le formulaire Employés, sélectionnez par Employés. L’Assistant affiche une image réduite d’un formulaire. La page devrait ressembler à l’illustration suivante :
La zone dans la partie inférieure du diagramme du formulaire représente le sous-formulaire.
Remarque
Si l’Assistant ne vous demande pas Comment souhaitez-vous afficher vos données ?, cela signifie qu’Access n’a détecté aucune relation un-à-plusieurs entre les tables ou requêtes sélectionnées. L’Assistant se poursuivra, mais Access n’ajoutera pas de sous-formulaire au formulaire. Vous pourriez peut-être cliquer sur Annuler et examiner vos relations de table avant de continuer.
En bas de la page de l’Assistant, sélectionnez Formulaire avec sous-formulaire(s), puis cliquez sur Suivant.
Dans la page Quelle disposition souhaitez-vous pour votre sous-formulaire ?, cliquez sur l’option de disposition souhaitée, puis sur Suivant. Les deux styles de disposition organisent les données de sous-formulaire en lignes et en colonnes, mais une disposition tabulaire vous offre plus d’options. Vous pouvez ajouter de la couleur, des graphiques et d’autres éléments de mise en forme, tandis qu’une feuille de données est plus compact, tout comme le mode Feuille de données d’une table.
Dans la page suivante de l’Assistant, sélectionnez un style de mise en forme pour le formulaire, puis cliquez sur Suivant. Si vous avez choisi Tabulaire sur la page précédente, le style de mise en forme que vous sélectionnez sera également appliqué au sous-formulaire.
À la dernière page de l’Assistant, entrez les titres des formulaires. Access nomme les formulaires en fonction des titres entrés et crée l’étiquette du sous-formulaire en fonction du titre attribué à celui-ci.
Spécifiez si vous souhaitez ouvrir le formulaire en mode Formulaire, afin de pouvoir afficher ou entrer des informations, ou en mode Création, afin de pouvoir modifier sa conception, puis cliquez sur Terminer. Access crée deux formulaires : l’un pour le formulaire principal qui contient le contrôle de sous-formulaire et l’autre pour le sous-formulaire lui-même.
Haut de la page
Ajouter un ou plusieurs sous-formulaires à un formulaire existant à l’aide de l’Assistant Sous-formulaire
Utilisez cette procédure pour ajouter un ou plusieurs sous-formulaires à un formulaire existant. Pour chaque sous-formulaire, vous pouvez décider de laisser Access créer un nouveau formulaire ou utiliser un formulaire existant comme sous-formulaire.
- Cliquez avec le bouton droit sur le formulaire existant dans le volet de navigation, puis cliquez sur Mode Création.
- Sous l’onglet Création de formulaire , dans le groupe Contrôles , cliquez sur la flèche vers le bas pour afficher la galerie Contrôles et vérifiez que l’option Utiliser les Assistants Contrôle est sélectionnée.
- Sous l’onglet Création de formulaire , dans le groupe Contrôles , cliquez sur le bouton Sous-formulaire/Sous-état .
- Cliquez sur le formulaire dans lequel vous souhaitez placer le sous-formulaire.
- Suivez les instructions de l’Assistant. Quand vous cliquez sur Terminer, Access ajoute un contrôle de sous-formulaire à votre formulaire. Si vous décidez de laisser Access créer un nouveau formulaire pour le sous-formulaire au lieu d’utiliser un formulaire existant, Access crée le nouvel objet de formulaire et l’ajoute au volet de navigation.
Créer un sous-formulaire en faisant glisser un formulaire sur un autre
Utilisez cette procédure si vous souhaitez utiliser un formulaire existant comme formulaire principal et y ajouter un ou plusieurs formulaires existants en tant que sous-formulaires.
- Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire à utiliser comme formulaire principal, puis cliquez sur Mode Page.
- Faites glisser le formulaire à utiliser comme sous-formulaire du volet de navigation sur le formulaire principal Access ajoute un contrôle de sous-formulaire au formulaire principal et lie le contrôle au formulaire que vous avez fait glisser du volet de navigation. Access tente également de lier le sous-formulaire au formulaire principal, en fonction des relations qui ont été définies dans votre base de données.
- Répétez cette étape pour ajouter d’éventuels sous-formulaires supplémentaires au formulaire principal.
- Pour vérifier que la liaison a réussi, sous l’onglet Accueil, dans le groupe Affichages, cliquez sur Affichage, sur Mode Formulaire, puis utilisez le sélecteur d’enregistrement du formulaire principal pour parcourir plusieurs enregistrements. Si le sous-formulaire est filtré correctement pour chaque employé, cela signifie que la procédure est terminée.
Si le test précédent ne fonctionne pas, Access n’a pas pu déterminer comment lier le sous-formulaire au formulaire principal, et les Link Child Fields propriétés et Link Master Fields du contrôle de sous-formulaire sont vides. Vous devez les définir manuellement en procédant comme suit :
Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire principal, puis cliquez sur Mode Création.
Cliquez une fois sur le contrôle de sous-formulaire pour le sélectionner.
Si le volet Office Feuille de propriétés n’est pas affiché, appuyez sur F4 pour l’afficher.
Dans la feuille de propriétés, cliquez sur l’onglet Données.
Cliquez sur le bouton Générer en regard de la
Link Child Fieldszone de propriété.
La boîte de dialogue Éditeur de liens de champ de sous-formulaire s’affiche.Dans les listes déroulantes Champs pères et Champs fils, sélectionnez les champs auxquels vous souhaitez lier les formulaires, puis cliquez sur OK. Si vous hésitez quant aux champs à choisir, cliquez sur Suggérer pour qu’Access tente de déterminer les champs de liaison.
Conseil
Si vous ne voyez pas le champ que vous souhaitez utiliser pour lier les formulaires, vous devrez peut-être modifier la source d’enregistrement du formulaire master ou du formulaire enfant pour vous assurer que le champ de liaison est inclus. Par exemple, si le formulaire est basé sur une requête, vous devez vous assurer que le champ de liaison est présent dans les résultats de la requête.
Enregistrez le formulaire principal, passez en mode Formulaire, puis vérifiez que le formulaire fonctionne comme prévu.
Ouvrir un sous-formulaire dans une nouvelle fenêtre en mode Création
Si vous souhaitez apporter des modifications à un sous-formulaire pendant que vous travaillez sur son formulaire principal en mode Création, vous pouvez ouvrir le sous-formulaire dans sa propre fenêtre :
- Cliquez sur le sous-formulaire pour le sélectionner.
- Sous l’onglet Création de formulaire , dans le groupe Outils , cliquez sur Sous-formulaire dans nouvelle fenêtre.
Haut de la page
Changer l’affichage par défaut d’un sous-formulaire
Lorsque vous ajoutez un sous-formulaire à un formulaire, le contrôle subform/subreport affiche le sous-formulaire en fonction de la propriété du Default View sous-formulaire. Cette propriété peut être configurée avec les valeurs suivantes :
- Formulaire unique
- Formulaires continus
- Feuille de données
- Formulaire double affichage
Lorsque vous créez un sous-formulaire pour la première fois, cette propriété peut être définie sur Formulaires continus ou Formulaire unique. Toutefois, si vous définissez la Default View propriété d’un sous-formulaire sur Datasheet, le sous-formulaire s’affiche sous la forme d’une feuille de données sur le formulaire principal.
Pour définir la Default View propriété d’un sous-formulaire :
Fermez tous les objets ouverts.
Dans le volet de navigation, cliquez avec le bouton droit sur le sous-formulaire, puis cliquez sur Mode Création.
Si la feuille de propriétés n’est pas déjà affichée, appuyez sur F4 pour l’afficher.
Dans la liste déroulante en haut de la feuille de propriétés, assurez-vous que Formulaire est sélectionné.
Sous l’onglet Format de la feuille de propriétés, configurez la propriété Affichage par défaut pour l’affichage que vous souhaitez utiliser.
Remarque
Si la vue que vous souhaitez utiliser ne figure pas dans la liste, vérifiez que la
Allow...Viewpropriété de cet affichage est définie sur Oui. Par exemple, si vous souhaitez spécifier Feuille de données comme affichage par défaut pour le formulaire, assurez-vous que la propriété Autoriser le mode Feuille de données est définie sur Oui.Enregistrez et fermez le sous-formulaire, puis ouvrez le formulaire principal pour vérifier les résultats.
Haut de la page
Ajouter des données associées à un formulaire sans créer de sous-formulaire
Vous n’avez pas toujours besoin de créer un objet de formulaire distinct pour afficher les données associées. Par exemple, si vous travaillez sur un formulaire en mode Page ou en mode Création et que vous faites glisser une table ou une requête à partir du volet de navigation sur le formulaire, Access crée un sous-formulaire/sous-état qui affiche les données de cet objet. La propriété de l’objet Default View détermine la façon dont les données sont affichées. En règle générale, il s’agit du mode Feuille de données, mais vous pouvez également définir la Default View propriété d’une table ou d’une requête sur Formulaire unique, Formulaire fractionné ou Formulaires continus, ce qui vous permet d’afficher plus facilement les données associées sur les formulaires.
Remarque
La modification de la Default View propriété d’une table ou d’une requête détermine comment elle s’affiche chaque fois qu’elle est ouverte, que vous l’ouvrez à partir du volet de navigation ou que vous l’affichez dans un contrôle de sous-formulaire/sous-état. La modification des paramètres d’affichage d’une table pouvant parfois semer la confusion à l’ouverture de la table depuis le volet de navigation, nous vous conseillons d’utiliser une requête au lieu d’une table pour cette procédure.
Haut de la page