Créer et utiliser des sous-états

Lorsque vous utilisez des données relationnelles (les données liées étant stockées dans des tables distinctes), vous avez souvent besoin de consulter les informations de plusieurs tables ou requêtes sur le même état. Par exemple, vous pouvez consulter les données d’un client et les informations relatives à ses commandes simultanément. Les sous-états sont des outils particulièrement utiles dans Access car ils vous permettent d’afficher les informations relatives aux commandes sur l’état avec les informations du client, de façon logique et lisible. Access propose plusieurs méthodes pour vous aider à créer rapidement des sous-états.

Que voulez-vous faire ?

Comprendre les sous-états

Créer un sous-état

Apporter des modifications de conception à un sous-état

Comprendre les sous-états

Un sous-état est un état inséré dans un autre état. Lorsque vous combinez les états, l’un d’eux doit servir d’état principal contenant l’autre état. Un état principal est soit lié soit indépendant. Un état lié peut afficher des données et une table, une requête ou une instruction SQL est spécifiée dans sa propriété Source d’enregistrement. Un état indépendant n’est pas basé sur une table, une requête ou une instruction SQL (autrement dit, la propriété Source d’enregistrement de l’état est vide).

Exemple d’état principal indépendant avec deux sous-états non liés    

Un état principal indépendant ne peut pas afficher des données qui lui sont propres, mais il peut toujours faire office d’état principal pour les sous-états non liés que vous voulez combiner.

État principal indépendant avec deux sous-états affichant des données non liées

1. L’état principal indépendant contient deux sous-états.

2. Un sous-état résume les ventes par employé.

3. L’autre sous-état résume les ventes par catégorie.

Exemple d’un état principal et d’un sous-état liés à la même source d’enregistrement    

Vous pouvez utiliser l’état principal pour afficher les enregistrements détails (par exemple, ventes réalisées au cours d’une année), puis un sous-état pour afficher les informations résumées (par exemple, total des ventes pour chaque trimestre).

État principal et sous-état liés à la même source d’enregistrement

1. Le sous-état résume les ventes de l’année par trimestre.

2. L’état principal répertorie les ventes quotidiennes.

Exemple d’un état principal et d’un sous-état liés à des sources d’enregistrement associées    

Un état principal peut contenir des données communes à un ou plusieurs sous-états. Dans ce cas, le sous-état contient des données liées à celles incluses dans l’état principal.

État principal avec deux sous-états affichant des données liées

1. L’état principal répertorie le nom et la ville de chaque salon.

2. Le sous-état répertorie les commerciaux qui participeront à chaque salon.

Sous-formulaires sur un état

Outre des sous-états, un état principal peut inclure des sous-formulaires. Il peut inclure autant de sous-formulaires et de sous-états que vous le souhaitez. Par ailleurs, un état principal peut contenir jusqu’à sept niveaux de sous-formulaires et sous-états. Par exemple, un état peut contenir un sous-état et ce sous-état peut contenir un sous-formulaire ou un sous-état, etc. jusqu’à sept niveaux d’imbrication.

Si vous ajoutez un sous-formulaire à un état, puis ouvrez l’état en mode État, vous pouvez utiliser le sous-formulaire pour filtrer et parcourir les enregistrements. Le code Visual Basic pour Applications (VBA) et les macros incorporées jointes au formulaire et ses contrôles sont toujours exécutés, bien que certains événements soient désactivés dans ce contexte. Vous ne pouvez pas ajouter, modifier ou supprimer des enregistrements en utilisant un sous-formulaire sur un état.

Liaison d’un état à un sous-formulaire ou un sous-état

Lorsque vous insérez un sous-formulaire ou un sous-état contenant des informations liées aux données dans l’état principal, le contrôle de sous-état doit être lié à l’état principal. La liaison garantit que les enregistrements affichés dans le sous-formulaire ou sous-état correspondent aux enregistrements imprimés dans l’état principal.

Lorsque vous créez un sous-formulaire ou sous-état à l’aide d’un Assistant ou en faisant glisser un objet du volet de navigation vers un état, Access lie automatiquement le sous-formulaire ou sous-état à l’état principal si une des conditions suivantes est remplie.

  • Vous définissez des relations pour les tables que vous sélectionnez, ou des relations pour les tables sous-jacentes aux requêtes que vous sélectionnez.

  • L’état principal est basé sur une table avec une clé primaire, et le sous-formulaire ou sous-état est basé sur une table qui contient un champ nommé comme cette clé primaire et qui présente le même type de données ou un type de données compatible. Par exemple, si la clé primaire de la table sous-jacente à l’état principal est un champ NuméroAuto et sa propriété TailleChamp est définie sur Entier long, le champ correspondant dans la table sous-jacente au sous-formulaire ou sous-état doit être un champ Numéro avec sa propriété TailleChamp définie sur Entier long. Si vous sélectionnez une ou plusieurs requêtes comme source d’enregistrement d’un sous-formulaire ou sous-état, les tables sous-jacentes dans la ou les requêtes doivent respecter les mêmes conditions.

Haut de la page

Créer un sous-état

Si le sous-état sera lié à l’état principal, vérifiez que les sources d’enregistrement sous-jacentes sont liées avant d’utiliser la procédure suivante.

Utiliser l’Assistant Sous-état pour créer un sous-état

Cette procédure part du principe que vous avez déjà un état auquel vous voulez ajouter un sous-état. Pour plus d’informations sur la création d’un état, consultez les articles Créer un état simple ou Créer un état groupé ou de synthèse.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état auquel vous voulez ajouter un sous-état, puis cliquez sur Mode Création.

  2. Dans l’onglet Créer, dans le groupe Contrôles, ouvrez la galerie Contrôles en cliquant sur la flèche vers le bas dans le coin inférieur droit :

    Image du ruban Word

  3. Dans le menu qui s’affiche, vérifiez que l’option Utiliser les Assistants Contrôle est sélectionnée.

  4. Rouvrez la galerie Contrôles, puis cliquez sur Sous-formulaire/sous-état.

  5. Cliquez sur un emplacement de l’état pour y placer le sous-état.

  6. Si un avis de sécurité s’affiche, cliquez sur Ouvrir pour démarrer l’Assistant.

  7. Sur la première page de l’Assistant Sous-état, cliquez sur Utiliser des tables et requêtes existantes pour créer un sous-formulaire ou sous-état et le baser sur une table ou une requête. Pour utiliser un état ou un formulaire comme sous-état, cliquez sur Utiliser un formulaire ou un état existant, sélectionnez l’état ou le formulaire dans la liste, puis cliquez sur Suivant.

    Choix d’une source de données dans un Assistant Sous-état

    Remarque :  Si la base de données ne comporte pas d’autres états ou formulaires, la liste sera vide et l’option Utiliser un état ou un formulaire existant ne sera pas disponible.

  8. Si vous avez choisi l’option Utiliser un état ou un formulaire existant sur la page précédente de l’Assistant, ignorez cette étape et accédez directement à l’étape 9. Sinon, dans la liste Tables/requêtes, sélectionnez la table ou la requête contenant les champs que vous voulez inclure dans le sous-état, puis double-cliquez sur les champs souhaités dans la liste Champs disponibles pour les ajouter au sous-état.

    Choix de champs dans l’Assistant Sous-état

    Si vous envisagez de lier le sous-état à l’état principal, veillez à inclure le ou les champs qui seront utilisés pour créer le lien, même si vous ne souhaitez pas les afficher. En général, un champ ID fait office de champ de liaison. Dans l’illustration précédente, la table Commandes est la source d’enregistrement du sous-état, tandis que la table Clients est celle de l’état principal. Comme la table Commandes est liée à la table Clients par le champ ID client, ce champ est ajouté à la liste Champs sélectionnés.

    Remarque : Vous pouvez inclure des champs de plusieurs tables et requêtes sur votre sous-état. Lorsque vous avez terminé d’ajouter des champs d’une table, sélectionnez la table ou la requête suivante dans la liste Tables/requêtes, puis ajoutez les champs souhaités.

    Cliquez sur Suivant pour continuer.

  9. Dans cette page de l’Assistant, vous déterminez comment lier le sous-état à l’état principal. Si Access détecte des champs appropriés pour la liaison du sous-état à l’état principal, l’Assistant affiche une liste des suggestions de liaison possibles.

    Access suggère des champs à lier dans l’Assistant Sous-état

    Vous pouvez sélectionner la suggestion de liaison qui semble la plus adaptée à votre situation ou, si vous ne souhaitez pas que le sous-état soit lié à l’état principal, sélectionner Aucune. Si vous voulez lier le sous-état à l’état principal, mais qu’aucune des suggestions ne semblent appropriée, cliquez sur Les définir moi-même.

    Remarque : Si l’Assistant ne trouve pas de champs appropriés pour la liaison, il ne fournit pas de liste de suggestions de liaison et sélectionne automatiquement l’option Les définir moi-même.

    Définition de vos propres liaisons dans L’Assistant Sous-état

    Lorsque l’option Les définir moi-même est sélectionnée, l’Assistant affiche deux ensembles de listes.

    • Sous Champs du formulaire/de l’état, sélectionnez le ou les champs dans l’état principal que vous voulez utiliser pour lier l’état principal au sous-formulaire ou sous-état. Vous pouvez sélectionner jusqu’à trois champs. Chaque champ que vous sélectionnez doit correspondre à un champ lié dans la source de données du sous-formulaire ou sous-état.

    • Sous Champs du formulaire/de l’état, sélectionnez le ou les champs correspondants dans le sous-formulaire ou sous-état liés aux champs d’état principal que vous avez sélectionnés.

    • Pour laisser le sous-formulaire ou sous-état non lié à l’état principal, vérifiez que toutes les listes sont vides.

      Cliquez sur Suivant pour continuer.

  10. Sur la dernière page de l’Assistant, tapez un nom pour le sous-formulaire ou sous-état, ou cliquez simplement sur Terminer pour accepter la valeur par défaut.

    Ajout de nom dans l’Assistant Sous-état

Access ajoute un contrôle de sous-état à votre état et lie le contrôle (il définit la propriété Objet source du contrôle) comme suit :

  • Si vous avez sélectionné Utiliser un état ou un formulaire existant sur la première page de l’Assistant, Access lie le contrôle de sous-état à l’état ou au formulaire que vous avez spécifié.

  • Si vous avez sélectionné Utiliser des tables et des requêtes existantes sur la première page de l’Assistant, Access crée un nouvel objet d’état dans le volet de navigation, puis lie le contrôle de sous-état à celui-ci. Le nom du nouvel objet d’état correspond au nom que vous avez tapé sur la dernière page de l’Assistant.

Ajouter une table, une requête, un formulaire ou un état à un état en tant que sous-état

Pour ajouter rapidement un sous-état à un état, vous pouvez ouvrir l’état principal en mode Page ou Création, puis faire glisser un objet vers celui-ci à partir du volet de navigation. Si vous souhaitez que le sous-état soit lié à l’état principal, vérifiez que les sources d’enregistrement sous-jacentes sont liées et que les sources d’enregistrement incluent les champs qui seront utilisés pour lier le sous-formulaire ou sous-état à l’état principal.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état que vous voulez utiliser comme état principal, puis cliquez sur Mode Page ou Mode Création dans le menu contextuel.

  2. Faites glisser une table, une requête, un formulaire ou un autre état du volet de navigation vers la section de l’état principal dans laquelle vous souhaitez que le sous-état apparaisse.

Access effectue l’une des opérations suivantes :

  • Si Access peut déterminer comment lier les deux objets, il ajoute un contrôle de sous-état à l’état. Si vous ajoutez un formulaire ou un état, Access lie le contrôle de sous-état à cet objet. Si vous ajoutez une table ou une requête, Access commence par créer un objet d’état, puis lie le contrôle de sous-état à ce nouvel objet.

  • Si Access ne peut pas déterminer comment lier les deux objets, l’Assistant Sous-état apparaît. Pour continuer, suivez la procédure décrite dans la section Utiliser l’Assistant Sous-état pour créer un sous-état en commençant avec l’étape 9.

    Une fois l’Assistant terminé, Access ajoute le sous-état à l’état.

Utilisez la procédure suivante pour vérifier que le sous-formulaire ou sous-état est correctement lié à l’état principal.

  1. Cliquez sur le contrôle de sous-état pour le sélectionner.

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

  3. Dans l’onglet Données de la feuille de propriétés, examinez les propriétésChamps pères et Champs fils.

    • Pour un sous-formulaire ou sous-état non lié, ces deux propriétés doivent être vides.

    • Pour un sous-formulaire ou sous-état lié, les propriétés Champs pères et Champs fils doivent afficher le ou les champs liés aux deux objets ensemble. Par exemple, si l’état principal affiche des informations de la table Employés et que le sous-formulaire ou sous-état affiche des informations de la table Commandes, la propriété Champs pères doit afficher le champ ID de la table Employés et la propriété Champs fils doit afficher le champ ID d’employé de la table Commandes.

Il est possible que vous deviez modifier ces propriétés pour que le sous-formulaire ou sous-état fonctionne correctement. Procédez comme suit.

  1. Dans l’onglet Données de la feuille de propriétés, cliquez sur la zone de propriété Champs pères, puis cliquez sur le bouton Créer Image du bouton .

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

    Boîte de dialogue Éditeur de liens des champs des sous-états

  2. Dans les listes Champs pères et Champs fils, sélectionnez les champs auxquels vous souhaitez lier les états. Si vous n’êtes pas certain des champs à utiliser, cliquez sur Suggérerpour qu’Access tente de déterminer les champs de liaison. Cliquez sur OK lorsque vous avez terminé.

    Si vous ne voyez pas le champ que vous souhaitez utiliser pour lier l’état, vous devrez peut-être modifier la source d’enregistrement de l’état principale ou du sous-formulaire ou sous-état pour vous assurer qu’il contient le champ de liaison. Par exemple, si l’état est basé sur une requête, vous devez vérifier que le champ de liaison est présent dans les résultats de la requête.

  3. Enregistrez l’état principal et basculez vers le mode État, puis vérifiez que l’état fonctionne comme prévu.

Ajouter une table ou une requête à un état en tant que feuille de données

Une feuille de données est une représentation visuelle simple de données, semblable à une feuille de calcul. Chaque colonne dans une feuille de données représente un champ dans la table ou requête source, tandis que chaque ligne représente un enregistrement. Vous pouvez utiliser le contrôle Sous-formulaire/sous-état pour afficher une feuille de données sur un état. Vous pouvez utiliser cette technique pour afficher les données sous forme compacte lorsque vous n’avez pas besoin des fonctionnalités de mise en forme d’un objet de formulaire ou d’état. Pour ajouter une feuille de données à un état :

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état que vous voulez utiliser comme état principal, puis cliquez sur Mode Création dans le menu contextuel.

  2. Dans l’onglet Créer, dans le groupe Contrôles, ouvrez la galerie Contrôles en cliquant sur la flèche vers le bas dans le coin inférieur droit :

    Image du ruban Word

  3. Dans le menu qui s’affiche, vérifiez que l’option Utiliser les Assistants Contrôle n’est pas sélectionnée.

  4. Rouvrez la galerie Contrôles, puis cliquez sur Sous-formulaire/sous-état.

  5. Cliquez sur un emplacement de l’état pour y placer le sous-état.

  6. Si l’Assistant Sous-état démarre, cliquez sur Annuler pour le fermer.

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

  8. Sur l’état, cliquez sur le nouveau contrôle de sous-état pour le sélectionner.

  9. Dans l’onglet Données de la feuille de propriétés, cliquez sur la flèche dans la zone de propriété Objet source, puis cliquez sur la table ou la requête que vous voulez afficher dans le contrôle de sous-état. Par exemple, pour afficher la table Commandes, cliquez sur Table.Commandes.

    Access tente de lier la feuille de données à l’état principal, en fonction des relations qui ont été définies dans la base de données.

  10. Dans l’onglet Données de la feuille de propriétés, examinez les propriétésChamps pères et Champs fils.

    • Pour une feuille de données non liée, vérifiez que ces deux propriétés sont vides.

    • Pour une feuille de données liée, vérifiez que les propriétés Champs pères et Champs fils affichent le ou les champs qui lient l’état principal à la feuille de données. Par exemple, si l’état principal affiche des informations de la table Employés et que la feuille de données affiche des informations de la table Commandes, la propriété Champs pères doit afficher le champ ID de la table Employés et la propriété Champs fils doit afficher le champ ID d’employé de la table Commandes.

Dans certains cas, vous devrez peut-être définir les propriétés de champ lié vous-même. Vous pouvez le faire à l’aide de la procédure suivante.

  1. Dans l’onglet Données de la feuille de propriétés, cliquez sur la zone de propriété Champs pères, puis cliquez sur le bouton Créer Image du bouton .

  2. Si un avis de sécurité s’affiche, cliquez sur Ouvrir.

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

    Boîte de dialogue Éditeur de liens des champs des sous-états

  3. Dans les listes Champs pères et Champs fils, sélectionnez les champs que vous voulez utiliser pour lier l’état principal à la feuille de données. Si vous n’êtes pas certain des champs à utiliser, cliquez sur Suggérerpour qu’Access tente de déterminer les champs de liaison. Cliquez sur OK lorsque vous avez terminé.

    Si vous ne voyez pas un champ que vous souhaitez utiliser pour la liaison, vous devrez peut-être modifier la source d’enregistrement de l’état principal ou la feuille de données pour vous assurer qu’elle contient le champ de liaison. Par exemple, si la feuille de données est basée sur une requête, vous devez vérifier que le champ de liaison est présent dans les résultats de la requête.

  4. Enregistrez l’état principal et basculez vers le mode État, puis vérifiez que l’état fonctionne comme prévu.

Haut de la page

Apporter des modifications de conception à un sous-état

Après avoir ajouté un sous-état à un état, vous pouvez apporter des modifications de conception au sous-état ou faire référence aux données du sous-état sur l’état principal. Les sections suivantes fournissent des conseils sur la façon d’effectuer ces tâches.

Ouvrir un sous-formulaire ou sous-état dans une nouvelle fenêtre en mode Création

Pour apporter des modifications à un sous-formulaire ou sous-état pendant que vous travaillez sur son état principal en mode Création, vous pouvez ouvrir le sous-formulaire ou sous-état dans sa propre fenêtre.

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

  2. Dans l’onglet Créer, dans le groupe Outils, cliquez sur Sous-état dans une nouvelle fenêtre.

Remarque : Cette commande n’est pas disponible si le contrôle de sous-formulaire/sous-état est lié à une table ou une requête.

Afficher un total à partir d’un sous-état sur l’état principal

Supposons que vous utilisiez un sous-état nommé Sous-état Commandes qui contient une zone de texte Total des frais d’expédition, et que cette zone de texte calcule la somme de la colonne Frais d’expédition. Pour afficher la somme du sous-état sur l’état principal, vous devez ajouter une zone de texte à l’état principal, puis utiliser une expression pour faire référence à la zone de texte Total des frais d’expédition sur le sous-état. Vous pouvez le faire à l’aide de la procédure suivante.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l’état principal, puis cliquez sur Mode Création dans le menu contextuel.

  2. Dans l’onglet Créer, dans le groupe Contrôles, cliquez sur Zone de texte.

  3. Cliquez sur un emplacement de l’état principal pour y placer la nouvelle zone de texte.

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

  5. Dans l’onglet Données de la feuille de propriétés, dans la zone de propriété Source contrôle, tapez l’expression suivante :

    =VraiFaux(EstErreur([Sous-état Commandes].[État]![Total des frais d’expédition]),0,[Sous-état Commandes].[État]![Total des frais d’expédition])

    Remarques : 

    • Dans la cadre de cet exemple, vous pourriez également utiliser l’expression plus simple =[Sous-état Commandes].[État]![Total des frais d’expédition] mais, si le sous-état ne contient aucune donnée, le contrôle sur l’état principal affiche #Erreur. L’utilisation de la fonction EstErreur au sein de la fonction VraiFaux (comme illustré dans la première expression), garantit que la zone de texte sur l’état principal affiche un zéro (0) si le sous-état ne renvoie aucune donnée.

    • Vous pouvez utiliser le Générateur d’expressions ou cliquer sur le bouton Créer Image du bouton de la zone de propriété Source contrôle.

  6. Dans l’onglet Format de la feuille de propriétés, définissez la propriété Format sur la valeur appropriée (dans ce cas, Monétaire).

  7. Enregistrez l’état, puis basculez vers le mode État pour vérifier que le calcul fonctionne comme prévu.

Haut de la page

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×