Créer et utiliser des sous-états

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Lorsque vous travaillez avec des données relationnelles (où les données associées sont stockées dans des tables distinctes), vous devez souvent afficher les informations de plusieurs tables ou requêtes dans le rapport même. Par exemple, vous souhaitez afficher des données client, mais vous souhaitez également afficher des informations sur les commandes du client en même temps. Un sous-état est un outil utile pour ce faire, car il vous permet d’afficher les informations de commande de l’état avec les informations relatives aux clients, de manière logique et lisible. Microsoft Office Access 2007 offre de nombreux moyens pour vous aider à créer rapidement des sous-états.

Que voulez-vous faire ?

Comprendre des sous-États

Créer un sous-état

Apporter des modifications à un sous-état

Comprendre les sous-états

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

Conseil : Dans Access 2010, rapports ont les dispositions de contrôle, qui vous permettent de garantir éléments alignés et plaisent !

Exemple d’état principal indépendant avec deux sous-États   

Un état principal indépendant ne peut pas afficher des données lui-même, mais il peut toujours servir d'état principal pour les sous-états non associés que vous souhaitez 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 les autres résume les ventes par catégorie.

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

Vous pouvez utiliser l'état principal pour afficher des enregistrements de détail, tels que chaque vente d'une année, puis utiliser un sous-état pour afficher des informations de synthèse, telles que le total des ventes de chaque trimestre.

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

1. le sous-état résume les ventes annuelles par trimestre.

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

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

Un état principal peut contenir des données communes à un ou plusieurs sous-états. Dans ce cas, le sous-état contient les données associées aux données dans l'état principal.

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

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

2. le sous-état répertorie les représentants qui seront présent chaque salon.

Sous-formulaires sur un état

Un état principal peut inclure des sous-formulaires en plus des sous-états et 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 de sous-états. Par exemple, un état peut contenir un sous-état, et ce sous-état peut contenir un sous-formulaire ou un sous-état et ainsi de suite jusqu'à sept niveaux.

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

Liaison entre un état et un sous-formulaire ou un sous-état

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

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

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

    Pour plus d'informations sur la création de relations, voir la section Voir aussi.

  • L’état principal est basé sur une table avec une clé primaire, et le sous-formulaire ou le sous-état est basé sur une table qui contient un champ avec le même nom que cette clé primaire et la même ou une compatible type de données. Par exemple, si la clé primaire de la table sous-jacente de 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 du sous-formulaire ou du sous-état doit être un champ numérique dont la propriété TailleChamp valeur entier Long. Si vous sélectionnez une ou plusieurs requêtes comme source d’enregistrement d’un sous-formulaire ou sous-état, la table sous-jacente dans l’ou les requêtes doit remplir les mêmes conditions.

Haut de la Page

Créer un sous-état

Si le sous-état doit être lié à l’état principal, vérifiez que les sources d’enregistrement sous-jacentes sont associées avant d’utiliser la procédure suivante. Pour plus d’informations sur la création de relations, consultez les liens dans la section Voir aussi.

Utilisez l'Assistant Sous-état pour créer un sous-état

  1. Ouvrez l’état que vous souhaitez utiliser en tant que l’état principal dans mode Création.

  2. Sous l’onglet Création, dans le groupe contrôles, vérifiez que Utiliser les Assistants contrôle Image du bouton est sélectionné. Image du bouton

  3. Sous l’onglet Création, dans le groupe contrôles, cliquez sur Sous-formulaire/sous-état Image du bouton .

  4. Dans l'état, cliquez où vous souhaitez placer le sous-état.

  5. Dans la première page de l’Assistant sous-état, si vous voulez créer un nouveau sous-formulaire ou sous-état et baser sur une table ou requête, cliquez sur utiliser les Tables et requêtes existantes. S’il existe un rapport existant ou un formulaire que vous souhaitez utiliser comme sous-état, cliquez sur utiliser un formulaire ou un rapport existant, sélectionnez le rapport ou le formulaire dans la liste, puis sur suivant.

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

  6. Si vous choisissez Utiliser un état ou un formulaire existant sur la page précédente de l'Assistant, ignorez cette étape et passez directement à l'étape 7. Dans le cas contraire, dans la liste Tables/Requêtes, sélectionnez la table ou la requête qui contient les champs à inclure dans le sous-état, puis double-cliquez sur les champs de votre choix dans la liste Champs disponibles pour les ajouter au sous-état.

    Choix de champs dans l'Assistant Sous-état

    Si vous prévoyez de lier le sous-état à l'état principal, veillez à inclure le(s) champ(s) devant servir à créer le lien, même si vous ne voulez pas qu'il(s) s'affiche(nt). En règle générale, le champ de liaison est un champ identifiant. Dans l'illustration précédente, la table Commandes est la source d'enregistrement pour le sous-état, tandis que la table Clients constitue la source d'enregistrement de l'état principal. Puisque la table Commandes est liée à la table Clients par le champ Code client, ce champ est ajouté à la liste Champs sélectionnés.

    Remarque : Vous pouvez inclure des champs provenant de plusieurs tables ou requêtes à 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 de votre choix.

    Cliquez sur Suivant pour continuer.

  7. Sur cette page de l'Assistant, vous déterminez la liaison du sous-état à l'état principal. Si Access détecte des champs qui semblent convenir à la liaison du sous-état à l'état principal, l'Assistant affiche une liste de 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 appropriée à votre situation ou, si vous ne souhaitez pas que le sous-état soit lié à l'état principal, sélectionnez Aucun champ. Pour lier le sous-état à l'état principal, mais qu'aucune des suggestions ne semble appropriée, cliquez sur Les définir moi-même.

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

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

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

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

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

    • Pour conserver le sous-formulaire ou le sous-état indépendant par rapport à l'état principal, vérifiez que toutes les listes sont vides.

      Cliquez sur Suivant pour continuer.

  8. Dans la dernière page de l'Assistant, tapez un nom pour le sous-formulaire ou le sous-état, ou cliquez simplement sur Terminer pour accepter les valeurs par défaut.

    Ajout de nom dans l'Assistant Sous-état

Access ajoute un contrôle de sous-état à votre rapport et lie le contrôle (autrement dit, il définit la propriété du contrôle Objet Source ) 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 du sous-état à l'état ou formulaire que vous avez spécifié.

  • Si vous avez sélectionné Utiliser les tables et les 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 du sous-état à celui-ci. Le nom du nouvel objet d'état est le même que celui 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

Une méthode rapide pour ajouter un sous-état à un rapport consiste à ouvrir l’état principal en mode Création puis faites glisser un objet à partir du volet de Navigation à celui-ci. Si vous souhaitez que le sous-formulaire ou sous-état liés à 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. Pour plus d’informations sur la création de relations, consultez les liens dans la section Voir aussi.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l'état à utiliser en tant qu'état principal, puis cliquez sur Mode Création dans le menu contextuel.

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

Access effectue l'une des opérations suivantes :

  • Si Access peuvent déterminer comment lier les deux objets, Access ajoute un contrôle de sous-état à l’état. Si vous ajoutez un formulaire ou un état, Access lie le contrôle sous-état à cet objet. Si vous ajoutez une table ou requête, Access crée un objet de rapport d’abord et avant de lier 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 s’affiche. Pour continuer, suivez la procédure décrite dans la section créer un sous-état, en commençant à l’étape 7.

    Une fois l'exécution de l'Assistant terminée, Access ajoute le sous-état à l'état.

Utilisez la procédure suivante pour revérifier que le sous-formulaire ou le 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.

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

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

    • Pour un sous-formulaire ou un sous-état lié, les propriétés Champs pères et Champs fils doivent afficher le ou les champs qui associent les deux objets entre eux. Si, par exemple, l'état principal affiche des informations depuis la table Employés et que le sous-formulaire ou le sous-état affiche des informations à partir de la table Commandes, la propriété Champs pères doit afficher le champ identifiant de la table Employés et la propriété Champs fils doit afficher le champ identifiant Employé à partir de la table Commandes.

Vous pouvez découvrir que ces propriétés doivent être modifiées pour que le sous-formulaire ou le sous-état fonctionne correctement. Utilisez la procédure suivante.

  1. Sous l’onglet données de la feuille de propriétés, cliquez sur la zone de propriété Champs pères, puis cliquez sur Bouton Générateur .

    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 Champs pères et listes de Champs fils, sélectionnez les champs que vous souhaitez lier les rapports. Si vous ne savez pas les champs à utiliser, cliquez sur Suggérer pour faciliter l’accès essayez de déterminer les champs à lier. Lorsque vous avez terminé, cliquez sur OK.

    Si vous ne voyez pas le champ que vous voulez utiliser pour lier le rapport, vous devez modifier la source d’enregistrement de l’état principal ou du sous-formulaire ou sous-état pour vous assurer qu’elle contient le champ de liaison. Par exemple, si le rapport 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.

  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 d'une feuille de données représente un champ dans la table ou la requête source et chaque ligne représente un enregistrement. Vous pouvez utiliser le sous-formulaire/sous-état pour afficher une feuille de données sur un état. Il s'agit d'une technique adéquate à utiliser dans des situations où vous souhaitez un affichage compact des données, mais où vous n'avez pas besoin de fonctionnalités de mise en forme d'un objet formulaire ou état. Pour ajouter une feuille de données à un état :

  1. Dans le volet de navigation, cliquez avec le bouton droit sur l'état à utiliser en tant qu'état principal, puis cliquez sur Mode Création dans le menu contextuel.

  2. Sous l’onglet Création, dans le groupe contrôles, vérifiez que Utiliser les Assistants contrôle n’est pas activée. Image du bouton

  3. Sous l’onglet Création, dans le groupe contrôles, cliquez sur l' outil de Sous-formulaire/sous-état Image du bouton .

  4. Dans l'état, cliquez où vous souhaitez placer le sous-état.

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

  6. Si la feuille de propriétés n'est pas déjà affichée, appuyez sur F4.

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

  8. Sous 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 requête que vous souhaitez 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.

  9. Sous l’onglet données de la feuille de propriétés, examinez les propriétés de Champs 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 associent l'état principal à la feuille de données. Si, par exemple, l'état principal affiche des informations depuis la table Employés et que la feuille de données affiche des informations à partir de la table Commandes, la propriété Champs pères doit afficher le champ identifiant de la table Employés et la propriété Champs fils doit afficher le champ identifiant Employé à partir de la table Commandes.

Dans certains cas, vous devez éventuellement définir les propriétés du champ de lien vous-même. Pour cela, procédez comme suit.

  1. Sous l’onglet données de la feuille de propriétés, cliquez sur la zone de propriété Champs pères, puis cliquez sur Bouton Générateur .

    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 Champs pères et listes de Champs fils, sélectionnez les champs que vous souhaitez utiliser pour lier l’état principal à la feuille de données. Si vous n’êtes pas sûr des champs à utiliser, cliquez sur Suggérer pour faciliter l’accès essayez de déterminer les champs à lier. Lorsque vous avez terminé, cliquez sur OK.

    Si vous ne voyez pas un champ que vous voulez utiliser pour la liaison, vous devez modifier la source d'enregistrement de l'état maître ou de 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 vous assurer 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.

Haut de la Page

Modifier la conception d'un sous-état

Une fois que vous avez ajouté un sous-état à un état, vous pouvez apporter des modifications à la conception du sous-état, ou faire référence à des 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 un sous-état dans une nouvelle fenêtre en mode Création

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

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

  2. Sous l’onglet Création, dans le groupe Outils, cliquez sur sous-état dans une nouvelle fenêtre Image du bouton .

Remarque : Cette commande n'est pas disponible si le 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 utilisez un sous-état nommé Orders sous-état qui contient une zone de texte nommée Total des frais de livraison et cette zone de texte calcule la somme de la colonne coût de transport. Pour afficher la somme de la sous-état dans l’état principal, vous devez ajouter une zone de texte à l’état principal et ensuite utiliser une expression pour faire référence à la zone de texte Total des frais de livraison dans le sous-état. Vous pouvez le faire à l’aide de la procédure suivante.

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

  2. Sous l’onglet Création, dans le groupe contrôles, cliquez sur Zone de texte. Image du bouton

  3. Sur l'état principal, cliquez où vous voulez placer la nouvelle zone de texte.

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

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

    =IIf(IsError([Sous-état Commandes].[État]![Total frais d'expédition]),0,[Sous-état Commandes].[tat]![Total frais d'expédition])

    Remarques : 

    • Dans cet exemple, vous pouvez utiliser l’expression plus simple = [commandes sous-état]. [ Rapport] ! [Total des frais de livraison] mais, si le sous-état ne contient aucune donnée, le contrôle sur l’état principal affiche ensuite #Error. Utilisation de la fonction IsError au sein de la fonction IIf , comme indiqué dans la première expression, garantit que la zone de texte dans l’état principal affiche un zéro (0) si le sous-état ne retourne pas de données.

    • Vous pouvez utiliser le Générateur d’Expression pour créer l’expression en cliquant sur Bouton Générateur dans la zone de propriété Source contrôle.

  6. Sous l'onglet Format de la feuille de propriétés, affectez la valeur appropriée à la propriété Format (dans ce cas, Devise).

  7. Enregistrez l'état et basculez en mode État pour vérifier que le calcul fonctionne comme prévu.

Haut de la Page

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
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.

×