Créer une requête basée sur plusieurs tables

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

Parfois, le processus de création et l'utilisation de requêtes est très simple de sélectionner des champs d'un tableau, appliquer éventuellement certains critères, puis affichez les résultats. Mais que se passe-t-il si, c'est souvent le cas, les données souhaitées sont trouvent dans plusieurs tables ? Peut être effectué en, vous pouvez créer une requête qui combine les informations provenant de plusieurs sources. Cette rubrique décrit certains scénarios à l'endroit où vous extrayez des données de plusieurs tables et indique comment procéder.

Que voulez-vous faire ?

Utiliser des données d'une table liée pour améliorer les informations dans votre requête

Connecter les données dans deux tables à l'aide de leurs relations avec une troisième table

Afficher tous les enregistrements de deux tables similaires

Utiliser des données d'une table liée pour améliorer les informations dans votre requête

Dans certains cas dans lequel une requête basée sur une table vous fournit les informations que nécessaires, mais extraire des données d'une autre table contribue à rendre les résultats encore plus claires et plus utiles. Par exemple, supposons que vous disposez d'une liste d'employés ID qui s'affichent dans les résultats d'une requête. Vous réalisez qu'il serait plus utile afficher le nom de l'employé dans les résultats, mais les noms des employés qui se trouvent dans une autre table. Pour obtenir le nom des employés apparaisse dans les résultats d'une requête, vous devez inclure les deux tables dans votre requête.

Utilisez l'Assistant Requête pour créer une requête à partir d'une table principale et une table liée

  1. Vérifier que les tables ont un relation défini dans la fenêtre Relations.

    Comment ?

    1. Sous l'onglet Outils de base de données, dans le groupe Afficher/masquer, cliquez sur relations.

    2. Sous l’onglet Création du groupe Relations, cliquez sur Toutes les relations.

    3. Identifiez les tables qui sont autorisés à une relation définie.

      • Si les tables sont visibles dans la fenêtre Relations, vérifiez qu'une relation a déjà été définie.

        Une relation apparaît sous la forme d'une ligne reliant les deux tables sur un champ commun. Vous pouvez double-cliquer sur une ligne de relation pour afficher les champs dans les tableaux sont connectés par la relation.

      • Si les tables ne sont pas visibles dans la fenêtre Relations, vous devez les ajouter.

        Sous l'onglet Création, dans le groupe Afficher/masquer, cliquez sur Les noms de tables.

        Double-cliquez sur chacune des tables que vous voulez afficher, puis cliquez sur Fermer.

    4. Si vous ne trouvez pas une relation entre les deux tables, créez-le en faisant glisser un champ à partir d'une des tables à un champ dans l'autre table. Les champs sur lequel vous créez la relation entre les tables doivent avoir des types de données identiques.

      Remarque : Vous pouvez créer une relation entre un champ de la type de données NuméroAuto et un champ qui est de la type de données Numérique, si ce champ a une taille de champ entier long. Il s'agit souvent la casse lorsque vous créez un relation un-à-plusieurs.

      La boîte de dialogue Modifier des relations s’affiche.

    5. Cliquez sur créer pour créer la relation.

      Pour plus d'informations sur les options que vous avez lorsque vous créez une relation, voir l'article créer, modifier ou supprimer une relation.

    6. Fermez la fenêtre Relations.

  2. Sous l'onglet créer, dans le groupe autres, cliquez sur Assistant Requête.

  3. Dans la boîte de dialogue Nouvelle requête, cliquez sur Assistant Requête Simple, puis cliquez sur OK.

  4. Dans la zone de liste déroulante Tables/requêtes, cliquez sur la table contenant les informations essentielles que vous voulez incluses dans votre requête.

  5. Dans la liste Champs disponibles, cliquez sur le premier champ que vous voulez inclure dans votre requête, puis cliquez sur la flèche vers la droite pour déplacer ce champ dans la liste Champs sélectionnés. Faites la même manière pour chaque champ de cette table que vous voulez inclure dans votre requête. Il peut s'agir de champs que vous souhaitez renvoyés dans le résultat de la requête ou les champs que vous souhaitez utiliser pour limiter les lignes dans les résultats en appliquant des critères.

  6. Dans la zone de liste déroulante Tables/requêtes, cliquez sur la table qui contient les données connexes que vous souhaitez utiliser pour affiner les résultats de requête.

  7. Ajoutez les champs que vous voulez utiliser pour affiner les résultats de requête à la liste de Champs sélectionnés, puis cliquez sur suivant.

  8. Sous souhaitez-vous une requête détaillée ou une synthèse?, cliquez sur Détails ou Résumé.

    Si vous ne souhaitez pas votre requête pour effectuer des fonctions d'agrégation (somme, Moy, Min, Max, Nb, ECARTYPEou Var), choisissez une requête détaillée. Si vous ne voulez pas que votre requête exécute une fonction d'agrégation, choisissez une requête de synthèse. Après avoir effectué votre choix, cliquez sur suivant.

  9. Cliquez sur Terminer pour afficher les résultats.

Un exemple qui utilise la base de données exemple Northwind

Dans l'exemple suivant, vous utilisez l'Assistant Requête pour créer une requête qui affiche une liste de commandes, les frais d'expédition pour chaque commande et le nom de l'employé qui a traité chaque commande.

Remarque : Cet exemple entraîne la modification de la base de données exemple Northwind. Vous souhaiterez peut-être créer une copie de sauvegarde de la base de données exemple Northwind, puis suivez cet exemple à l'aide de cette copie de sauvegarde.

Utiliser l'Assistant Requête pour créer la requête

  1. Ouvrez la base de données exemple Northwind. Fermez le formulaire de connexion.

  2. Sous l'onglet créer, dans le groupe autres, cliquez sur Assistant Requête.

  3. Dans la boîte de dialogue Nouvelle requête, cliquez sur Assistant Requête Simple, puis cliquez sur OK.

  4. Dans la zone de liste déroulante Tables/requêtes, cliquez sur Table : commandes.

  5. Dans la liste Champs disponibles, double-cliquez sur n° commande pour déplacer ce champ dans la liste Champs sélectionnés. Double-cliquez sur le Coût de transport pour déplacer ce champ dans la liste Champs sélectionnés.

  6. Dans la zone de liste déroulante Tables/requêtes, cliquez sur Table : employés.

  7. Dans la liste Champs disponibles, double-cliquez sur prénom pour déplacer ce champ dans la liste Champs sélectionnés. Double-cliquez sur le nom pour déplacer ce champ dans la liste Champs sélectionnés. Cliquez sur suivant.

  8. Étant donné que vous créez une liste de toutes les commandes, que vous souhaitez utiliser une requête détaillée. Si vous additionnez frais d'expédition par employé ou effectuer une autre fonction d'agrégation, vous utilisez une requête de synthèse. Cliquez sur détaillée (affiche chaque champ de chaque enregistrement), puis cliquez sur suivant.

  9. Cliquez sur Terminer pour afficher les résultats.

La requête renvoie une liste de commandes, chacune avec les frais d'expédition et le prénom et le nom de l'employé qui l'a traitée.

Haut de la page

Connecter les données dans deux tables à l'aide de leurs relations avec une troisième table

Souvent, les données dans deux tables sont table liée à l'autre via un tiers. Il s'agit généralement la casse, car les données entre les deux premières tables sont liées dans un relation plusieurs à plusieurs. Souvent, il est pratique de conception de base de données appropriée pour fractionner une relation plusieurs-à-plusieurs entre deux tables en deux relations un-à-plusieurs impliquant trois tables. Pour cela, en créant une troisième table, appelée table de jonction ou table de relation qui comporte une clé primaire et un clé étrangère pour chacune des autres tables. Une relation un-à-plusieurs est créée puis entre chaque clé étrangère dans la table de jonction et la clé primaire de l'une des autres tables. Dans ce cas, vous devez inclure les trois tables dans votre requête, même si vous voulez extraire les données que deux.

Créer une requête sélection à l'aide de tables ayant une relation plusieurs-à-plusieurs

  1. Sous l’onglet Créer, dans le groupe Autre, cliquez sur Création de requête.

    La boîte de dialogue Afficher la Table s'ouvre.

  2. Dans la boîte de dialogue Afficher la Table, double-cliquez sur les deux tables qui contiennent les données que vous voulez inclure dans votre requête, ainsi que la table de jonction qui les relie, puis cliquez sur Fermer.

    Les trois tables apparaissent dans l'espace de travail Création de requête, jointes sur les champs appropriés.

  3. Double-cliquez sur chacun des champs que vous souhaitez utiliser dans les résultats d'une requête. Chaque champ apparaît dans la requête grille de création.

  4. Dans la grille de création de requête, utilisez la ligne critères pour entrer des critères de champs. Pour utiliser un critère de champ sans afficher le champ dans les résultats de la requête, désactivez la case à cocher dans la ligne Afficher pour ce champ.

  5. Pour trier les résultats en fonction des valeurs dans un champ, dans la grille de création de requête, cliquez sur croissant ou décroissant (selon la façon dont vous voulez trier les enregistrements) dans la ligne Trier de ce champ.

  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

    Access affiche le résultat de la requête en mode Feuille de données.

Un exemple qui utilise la base de données exemple Northwind

Remarque : Cet exemple entraîne la modification de la base de données exemple Northwind. Vous voudrez peut-être créer une copie de sauvegarde de la base de données exemple Northwind et suivez cet exemple à l'aide de la copie de sauvegarde.

Supposons que vous avez une nouvelle opportunité : un fournisseur à Rio de Janeiro a trouvé votre site Web et utiles d'entreprise avec vous. Toutefois, ils fonctionnent uniquement à Rio et près Sao Paulo. Il fournit chaque catégorie de produits alimentaires qui vous intéresse. Ils sont une assez grande entreprise et souhaitez votre garanties que vous pouvez lui donner accès à suffisamment ventes potentielles pour rendre utile : au moins 20 000,00 R$ par an des ventes (environ $ 9 300,00). Pouvez vous fournir les le marché que dont ils ont besoin ?

Les données que vous avez besoin pour répondre à cette question sont trouve à deux endroits : une table clients et une table Détails commande. Ces tables sont liées à l'autre par une table de commandes. Relations entre les tables ont déjà été définies. Dans la table commandes, chaque commande peut avoir qu'un seul client, associé à la table Customers dans le champ CustomerID. Chaque enregistrement dans la table Détails commande est lié à une commande dans la table commandes, dans le champ OrderID. Par conséquent, un client donné peut avoir plusieurs commandes, chacun d'eux ayant indiquant autant de détails commande.

Dans cet exemple, vous allez créer une requête analyse croisée qui affiche les ventes totales par année, dans les villes Rio de Janeiro et Sao Paulo.

Créer la requête en mode Création

  1. Ouvrez la base de données Northwind. Fermez le formulaire de connexion.

  2. Sous l’onglet Créer, dans le groupe Autre, cliquez sur Création de requête.

    La boîte de dialogue Afficher la Table s'affiche.

  3. Dans la boîte de dialogue Afficher la Table, double-cliquez sur clientsoudesen-têteset des Détails de la commande, puis sur Fermer.

    Les trois tables apparaissent dans l'espace de travail de création de requête.

  4. Dans la table clients, double-cliquez sur le champ Ville pour l'ajouter à la grille de création de requête.

  5. Dans la grille de création de requête, dans la colonne Ville , dans la ligne critères, tapez à (« Rio de Janeiro », « São Paulo »). Alors que les enregistrements à l'endroit où le client est dans un de ces deux villes à inclure dans la requête.

  6. Dans la table Détails commande, double-cliquez sur la date d'envoi et les champs PrixUnitaire.

    Les champs sont ajoutés à la grille de création de requête.

  7. Dans la colonne DateExpédition dans la grille de création de requête, sélectionnez la ligne champ. Remplacez [DateExpédition] avec année : format. Cela crée un champ alias, année, qui vous permet d'utiliser uniquement la partie de l'année de la valeur du champ DateExpédition.

  8. Dans la colonne UnitPrice dans la grille de création de requête, sélectionnez la ligne champ. Remplacez [PrixUnitaire]ventes: [Détails commande]. [ Prix unitaire] * [Quantité]-[Détails commande]. [PrixUnitaire] * [Quantité] * [remise]. Cela crée un alias de champ, ventes, qui calcule les ventes pour chaque enregistrement.

  9. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur Analyse croisée.

    Deux nouvelles lignes, Total et analyse croisée, apparaissent dans la grille de création de requête.

  10. Dans la colonne Ville dans la grille de création de requête, cliquez sur la ligne analyse croisée, puis cliquez sur En-tête de ligne.

    Cela, les valeurs de ville apparaissent comme en-têtes de ligne (autrement dit, la requête retourne une seule ligne pour chaque ville).

  11. Dans la colonne Year , cliquez sur la ligne analyse croisée, puis cliquez sur En-tête de colonne.

    Ainsi, année valeurs apparaissent comme en-têtes de colonnes (autrement dit, la requête renvoie une colonne pour chaque année).

  12. Dans la colonne ventes , cliquez sur la ligne analyse croisée, puis cliquez sur valeur.

    Ainsi, valeurs des ventes s'affichent à l'intersection de lignes et de colonnes (autrement dit, la requête renvoie une valeur de vente pour chaque combinaison de ville et d'année).

  13. Dans la colonne ventes , cliquez sur la ligne de totaux, puis cliquez sur somme.

    Ainsi, la requête additionner les valeurs de cette colonne.

    Vous pouvez laisser la ligne totaux pour les deux colonnes à la valeur par défaut de Group By, parce que vous voulez voir chaque valeur pour ces colonnes, pas des valeurs agrégées.

  14. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Vous avez maintenant une requête qui retourne les ventes totales par année dans Rio de Janeiro et Sao Paulo.

Haut de la page

Afficher tous les enregistrements de deux tables similaires

Parfois, vous souhaiterez combiner les données de deux tables sont identiques dans la structure, mais un d'eux se trouve dans une autre base de données. Considérez le scénario suivant.

Supposons que vous êtes un analyste d'utilisation des données d'étudiant. Vous êtes lancer dans une initiative entre votre école et une autre, de partage de données afin que les deux établissements puissent améliorer leurs programmes. Pour certaines des questions à Explorer, il est préférable d'examiner tous les enregistrements des deux écoles ensemble, plutôt que de chaque établissement enregistrements séparément.

Vous pouvez importer des données de l'autre école dans de nouvelles tables dans votre base de données, mais puis les modifications apportées aux données de l'autre école ne soient pas répercutées dans votre base de données. Une meilleure solution serait à lier aux tables autre école, puis créer des requêtes qui combinées les données lorsque vous les exécutez. Vous ne pourrez pas analyser les données comme un seul définir, au lieu d'exécuter des deux analyses et essayez d'interpréter les comme s'il s'agissait d'une.

Pour afficher tous les enregistrements de deux tables avec une structure identique, vous utilisez un requête Union.

Les requêtes Union ne peut pas être affichés en mode Création. Les créer à l'aide de commandes SQL que vous entrez dans un onglet d'objet mode SQL.

Créer une requête union à l'aide de deux tables

  1. Sous l’onglet Créer, dans le groupe Autre, cliquez sur Création de requête.

    Une nouvelle grille de création de requête s'ouvre et la boîte de dialogue Afficher la Table s'affiche.

  2. Dans la boîte de dialogue Afficher la Table, cliquez sur Fermer.

  3. Sous l'onglet Création, dans le groupe Type de requête, cliquez sur Union.

    La requête bascule en mode Création en mode SQL. À ce stade, l'onglet d'objet SQL vue est vide.

  4. En mode SQL, tapez Sélectionnez, suivi d'une liste des champs de la première de la table à inclure dans la requête. Noms de champs doivent être placée entre des crochets et séparés par des virgules. Lorsque vous avez terminé de taper les noms de champ, appuyez sur ENTRÉE. Le curseur se déplace vers le bas d'une ligne en mode SQL.

  5. Tapez FROM, suivi du nom de la première de la table à inclure dans la requête. Appuyez sur ENTRÉE.

  6. Si vous souhaitez spécifier un critère pour un champ de la première table, tapez l'emplacement, suivi par le nom du champ, un opérateur de comparaison (généralement, un signe égal (=)) et le critère. Vous pouvez ajouter des critères supplémentaires à la fin de la clause WHERE à l'aide du mot-clé AND et la même syntaxe utilisée pour le premier critère ; par exemple, où [ClassLevel] = « 100 » et [CreditHours] > 2. Lorsque vous avez terminé la spécification des critères, appuyez sur ENTRÉE.

  7. Tapez UNION, puis appuyez sur ENTRÉE.

  8. Tapez Sélectionner, suivi d'une liste des champs à partir de la deuxième table à qu'inclure dans la requête. Vous devez inclure les mêmes champs de cette table que vous avez inclus dans la première table et, dans le même ordre. Noms de champs doivent être placée entre des crochets et séparés par des virgules. Lorsque vous avez terminé de taper les noms de champ, appuyez sur ENTRÉE.

  9. Type FROM, suivi du nom de la deuxième table que vous voulez inclure dans la requête. Appuyez sur ENTRÉE.

  10. Si vous le souhaitez, ajoutez une clause WHERE, comme indiqué à l'étape 6 de cette procédure.

  11. Tapez un point-virgule (;) pour indiquer la fin de votre requête.

  12. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

    Les résultats s'affichent en mode feuille de données.

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.

×