Créer un formulaire contenant un sous-formulaire (formulaire un-à-plusieurs)
Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Lorsque vous utilisez des données relationnelles (données associées stockées dans des tables distinctes) dans Access, vous devez souvent afficher plusieurs tables ou requêtes sur le même formulaire. Vous pouvez, par exemple, décider d’afficher en même temps des données client depuis une table et des informations concernant les commandes client depuis une autre table. Les sous-formulaires sont un outil pratique qui permet d’y parvenir, sachant qu’Access propose plusieurs méthodes vous permettant de créer des sous-formulaires rapidement.

Que voulez-vous faire ?

En savoir plus sur les sous-formulaires

Un sous-formulaire est un formulaire inséré dans un autre formulaire. Le formulaire de base est appelé formulaire principal, tandis que le formulaire qui est inclus dans le formulaire est appelé sous-formulaire. Une combinaison formulaire/sous-formulaire est parfois appelée formulaire hiérarchique ou formulaire père/fils.

Les sous-formulaires sont particulièrement efficaces lorsque vous souhaitez afficher des données de tables ou de requêtes qui ont une relation un-à-plusieurs. Une relation un-à-plusieurs est une association entre deux tables dans lesquelles 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 contient 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 : chaque employé peut avoir plusieurs commandes.

Formulaire contenant un sous-formulaire

1. Le formulaire principal affiche les données du côté « un » de la relation.

2. 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 n’étaient pas liés, le sous-formulaire afficherait toutes les commandes, pas seulement celles de Nancy.

Le tableau suivant définit quelques termes relatifs aux sous-formulaires. Même si Access traite la plupart des détails liés à l’utilisation des procédures décrites dans cet article, il est utile de savoir ce qui se produit « en coulisses » pour apporter des modifications ultérieures.

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 encore un formulaire dont la propriété Affichage par défaut est définie sur Feuille de données. 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 indique le ou les champs du sous-formulaire qui lient le sous-formulaire au formulaire principal.

Propriété Lier les champs pères

Propriété du contrôle de sous-formulaire qui indique le ou les champs du formulaire principal qui lient le formulaire principal au sous-formulaire.

Remarques : 

  • 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 pour objet source un formulaire, il contient les champs que vous placez dans ce formulaire, et peut être affiché en tant que formulaire standard, formulaire continu ou feuille de données. Baser un sous-formulaire sur un objet de formulaire vous permet d’ajouter des champs calculés au sous-formulaire, par exemple, [Quantité] * [Prix unitaire].

  • 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. C’est également le moyen le plus rapide de démarrer si vous n’avez pas déjà créé les formulaires que vous souhaitez utiliser en tant que formulaire principal ou sous-formulaire.

  1. Dans l’onglet Création, dans le groupe Formulaires, cliquez sur Assistant Formulaire

  2. Dans la liste déroulante Tables/Requêtes de la première page de l’Assistant, sélectionnez une table ou une requête. Dans le cadre de cet exemple, pour créer un formulaire Employés qui présente les commandes de chaque employé dans un sous-formulaire, nous sélectionnerons 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.

  3. Double-cliquez sur les champs de cette table ou requête que vous souhaitez inclure.

  4. 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, nous sélectionneront la table Commandes (le côté « plusieurs » de la relation un-à-plusieurs).

  5. Double-cliquez sur les champs de cette table ou requête que vous souhaitez inclure.

  6. 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. Dans le cadre de cet exemple, pour créer le formulaire Employés, nous cliquerons sur par employés. L’Assistant affiche une image réduite d’un formulaire. La page devrait ressembler à l’illustration suivante :

    Page du sous-formulaire de l’Assistant Formulaire

    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.

  7. En bas de la page de l’Assistant, sélectionnez Formulaire avec sous-formulaire(s), puis cliquez sur Suivant.

  8. 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 disposent les données du sous-formulaire sous forme de lignes et de colonnes, mais la disposition tabulaire est plus personnalisable. 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.

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

  10. À 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.

  11. Indiquez si vous souhaitez ouvrir le formulaire en mode Formulaire afin de pouvoir afficher ou entrer des données, ou en mode Création afin de pouvoir modifier sa structure, puis cliquez sur Terminer.

    Access crée deux formulaires : un pour le formulaire principal qui contient le contrôle de sous-formulaire et un pour le sous-formulaire proprement dit.

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.

  1. Cliquez avec le bouton droit sur le formulaire existant dans le volet de navigation, puis cliquez sur Mode Création.

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

  3. Sous l’onglet Création de formulaire , dans le groupe Contrôles , cliquez sur le bouton Sous-formulaire/Sous-état .

  4. Cliquez sur un emplacement du formulaire pour y placer le sous-formulaire.

  5. 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 ajouter un ou plusieurs formulaires existants à ce formulaire en tant que sous-formulaires.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire à utiliser comme formulaire principal, puis cliquez sur Mode Page.

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

  3. Répétez cette étape pour ajouter d’éventuels sous-formulaires supplémentaires au formulaire principal.

  4. 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, cela signifie qu’Access n’a pas été en mesure de déterminer comment lier le sous-formulaire au formulaire principal, et que les propriétés Champs fils et Champs pères du contrôle de sous-formulaire sont vierges. Vous devez les définir manuellement en procédant comme suit :

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire principal, puis cliquez sur Mode Création.

  2. Cliquez une fois sur le contrôle de sous-formulaire pour le sélectionner.

  3. Si le volet Office Feuille de propriétés n’est pas affiché, appuyez sur F4 pour l’afficher.

  4. Dans la feuille de propriétés, cliquez sur l’onglet Données.

  5. Cliquez sur le bouton Générer Bouton Générateur en regard de la zone de propriété Lier les champs enfants .

    La boîte de dialogue Éditeur de liens des champs des sous-formulaires s’affiche.

  6. 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 père ou du formulaire fils pour s’assurer que le champ de liaison s’y trouve. 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.

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

  1. Cliquez sur le sous-formulaire pour le sélectionner.

  2. 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 de sous-formulaire/sous-état affiche le sous-formulaire en conformément à la propriété Affichage par défaut du 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 configurée sur Formulaires continus ou peut-être Formulaire unique si vous voulez que le sous-formulaire s’affiche. Toutefois, si vous définissez la propriété Affichage par défaut d’un sous-formulaire sur Feuille de données, le sous-formulaire s’affiche alors sous forme de feuille de données sur le formulaire principal.

Pour configurer la propriété Affichage par défaut d’un sous-formulaire :

  1. Fermez tous les objets ouverts.

  2. Dans le volet de navigation, cliquez avec le bouton droit sur le sous-formulaire, puis cliquez sur Mode Création.

  3. Si la feuille de propriétés n’est pas affichée, appuyez sur F4 pour l’afficher.

  4. Dans la liste déroulante en haut de la feuille de propriétés, assurez-vous que Formulaire est sélectionné.

  5. 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 l’option « Autoriser... La propriété View » de l’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.

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

Il n’est pas toujours nécessaire 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é Affichage par défaut de l’objet détermine la manière dont les données sont affichées. Elle est généralement définie sur Mode Feuille de données, mais vous pouvez également définir la propriété Affichage par défaut d’une table ou d’une requête sur Formulaire unique, Formulaire double affichage ou Formulaires continus, afin de vous offrir davantage de flexibilité dans l’affichage des données associées sur les formulaires.

Remarque : La modification de la propriété Affichage par défaut pour une table ou une requête détermine la manière dont elle est affichée à chaque fois qu’elle est ouverte, que vous l’ouvriez depuis le volet de navigation ou l’affichiez 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

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.