Comparer deux tables et rechercher uniquement les données correspondantes

Il peut arriver que vous vouliez examiner des enregistrements d’une table Access uniquement s’il existe des enregistrements correspondants dans une autre table Access qui contiennent un ou plusieurs champs avec des données correspondantes. Par exemple, vous pouvez avoir besoin de passer en revue les enregistrements des employés qui ont traité au moins une commande afin de déterminer ceux qui ont droit à une prime. Vous pouvez également avoir besoin de passer en revue les informations de contact des clients pour identifier ceux qui résident dans la même ville qu’un employé afin d’organiser des réunions en personne.

Lorsque vous voulez comparer deux tables Access pour trouver des données correspondantes, vous pouvez :

  • Créer une requête qui joint des champs de chaque table lorsque les champs contiennent des informations correspondantes, soit en utilisant une relation existante, soit en utilisant une jointure que vous créez pour les besoins de la requête. Cette méthode offre des performances optimales (au niveau de la rapidité avec laquelle la requête renvoie les résultats), mais vous ne pouvez pas joindre des champs dont les types de données sont différents.
  • Créer une requête qui compare des champs en utilisant un champ en tant que critère pour l’autre champ. L’utilisation d’un champ en tant que critère pour un autre champ est une méthode moins rapide que celle consistant à utiliser des jointures, car ces dernières suppriment des lignes des résultats d’une requête avant la lecture des tables sous-jacentes, tandis que les critères sont appliqués aux résultats d’une requête après la lecture des tables sous-jacentes. Toutefois, vous pouvez utiliser un champ en tant que critère de champ pour comparer des champs dont les types de données sont différents, ce que vous ne pouvez pas faire si vous utilisez des jointures.

Cet article vous explique comment comparer deux tables afin d’identifier des données correspondantes et vous propose également des exemples de données que vous pouvez utiliser avec les procédures décrites de cet article.

Comparer deux tables en utilisant des jointures

Pour comparer deux tables en utilisant des jointures, vous devez créer une requête Sélection qui inclut les deux tables. S’il n’existe aucune relation entre les tables au niveau des champs qui contiennent les données correspondantes, vous devez créer une jointure sur les champs pour lesquels vous recherchez des correspondances. Vous pouvez créer autant de jointures que vous le souhaitez, mais le types de données de chaque paire de champs joints doit être identique ou compatible.

Imaginons que vous êtes un chercheur au sein d’une université et que vous souhaitez déterminer dans quelle mesure les changements apportés au programme dans le département Mathématiques ont affecté les notes des étudiants. Vous êtes particulièrement intéressé par les notes des étudiants dont la matière principale est Mathématiques. Vous disposez déjà d’une table qui stocke les données concernant les étudiants dont la matière principale est Mathématiques et d’une table qui stocke les données sur les inscriptions aux cours. Les données sur les notes sont stockées dans la table Inscriptions aux cours et les données concernant les étudiants dont la matière principale est Mathématiques sont stockées dans la table Matières principales des étudiants. Pour déterminer dans quelle mesure les notes des étudiants dont la matière principale est Mathématiques ont évolué depuis les derniers changements de programme, vous devez passer en revue les enregistrements de la table des inscriptions qui possèdent des enregistrements correspondants dans la table des matières principales.

Préparer les exemples de données

Dans cet exemple, vous allez créer une requête permettant de déterminer dans quelle mesure les modifications récentes apportées au programme au sein du département Mathématiques ont affecté les notes des étudiants en mathématiques. Vous allez utiliser les deux exemples de tables suivants : Matières principales des étudiants et Inscriptions aux cours. Ajoutez ces deux exemples de tables, Matières principales des étudiants et Inscriptions aux cours, à une base de données.

Access fournit plusieurs méthodes pour ajouter ces tables d’exemple à une base de données. Vous pouvez entrer les données manuellement, vous pouvez copier chaque table dans un tableur (par exemple, Microsoft Office Excel 2007 ) et puis importer les feuilles de calcul dans Access, ou vous pouvez coller les données dans un éditeur de texte, tel que le bloc-notes et puis importer les données à partir de résultant fichiers texte.

Les étapes décrites dans cette section vous expliquent comment entrer les données manuellement dans une feuille de données vierge, comment copier les exemples de tables dans Excel et comment importer ces tables dans Access.

Matières principales des étudiants

ID étudiant Année Matière principale
123456789 2005 MATH
223334444 2005 ANGL
987654321 2005 MATH
135791357 2005 HIST
147025836 2005 BIOL
707070707 2005 MATH
123456789 2006 MATH
223334444 2006 ANGL
987654321 2006 PSYC
135791357 2006 ARTH
147025836 2006 BIOL
707070707 2006 MATH

Inscriptions aux cours

ID étudiant Année Session Programme N° de cours Note
123456789 2005 3 MATH 221 A
123456789 2005 3 ANGL 101 B
123456789 2006 1 MATH 242 C
123456789 2006 1 MATH 224 C
223334444 2005 3 ANGL 112 A
223334444 2005 3 MATH 120 C
223334444 2006 1 SCPO 110 A
223334444 2006 1 ANGL 201 B
987654321 2005 3 MATH 120 A
987654321 2005 3 PSYC 101 A
987654321 2006 1 MATH 221 B
987654321 2006 1 MATH 242 C
135791357 2005 3 HIST 102 A
135791357 2005 3 ARTH 112 A
135791357 2006 1 MATH 120 B
135791357 2006 1 MATH 141 C
147025836 2005 3 BIOL 113 B
147025836 2005 3 CHIM 113 B
147025836 2006 1 MATH 120 D
147025836 2006 1 STAT 114 B
707070707 2005 3 MATH 221 B
707070707 2005 3 STAT 114 A
707070707 2006 1 MATH 242 D
707070707 2006 1 MATH 224 C

Si vous voulez utiliser un tableur pour entrer les exemples de données, passez directement à la section suivante.

Entrer les exemples de données manuellement

  1. Ouvrez une base de données existante ou nouvelle.
  2. Dans l’onglet Créer, dans le groupe Tables, cliquez sur Table.Image du ruban Access

    Access ajoute une nouvelle table vide à votre base de données.

    Remarque : Vous n’avez pas besoin de suivre cette étape si vous ouvrez une nouvelle base de données vide, mais vous devrez la suivre dès que vous aurez besoin d’ajouter une table à la base de données.

  3. Double-cliquez sur la première cellule de la ligne d’en-tête, puis tapez le nom du champ dans l’exemple de table.Par défaut, Access signale les champs vides dans la ligne d’en-tête par le texte Ajouter un nouveau champ, comme suit :

    Nouveau champ dans une feuille de données

  4. Utilisez les touches de direction pour passer à la cellule d’en-tête vide suivante, puis tapez le nom du deuxième champ. (Vous pouvez également double-cliquer sur la nouvelle cellule.) Répétez cette étape pour chaque nom de champ.
  5. Entrez les données dans l’exemple de table.Lorsque vous entrez les données, Access déduit automatiquement un type de données pour chaque champ. Chaque champ comporte un type de données spécifique, par exemple, Numérique, Texte, ou Date/Heure. La définition de types de données garantit que les données entrées sont précises et permet de limiter les erreurs telles que l’utilisation d’un numéro de téléphone dans un calcul. Pour ces exemples de tables, autorisez Access à déduire le type des données, mais veillez à passer en revue le type des données qu’Access déduit pour chaque champ.
  6. Lorsque vous avez terminé d’entrer les données, cliquez sur Enregistrer (ou appuyez sur Ctrl+S).La boîte de dialogue Enregistrer sous s’affiche.
  7. Dans la zone Nom de la table, entrez le nom de l’exemple de table, puis cliquez sur OK.Utilisez le nom de chaque exemple de table (par exemple, Matières principales des étudiants), car les requêtes présentées dans les sections de procédure de cet article utilisent également ces noms.

Lorsque vous avez terminé d’entrer les exemples de données, vous êtes prêt à comparer les deux tables.

Ignorez la section suivante (« Créer les exemples de feuilles de calcul »), sauf si vous voulez apprendre à créer une feuille de calcul basée sur les exemples de données des tables présentées dans la section précédente.

Créer les exemples de feuilles de calcul

  1. Démarrez votre tableur, puis créez un fichier vide. Si vous utilisez Excel, un nouveau classeur est créé par défaut lorsque vous démarrez le programme.
  2. Copiez le premier exemple de table de la section précédente et collez-le dans la première feuille de calcul à partir de la première cellule. Veillez à copier la ligne d’en-tête, car elle contient les noms des champs de l’exemple de table.
  3. En utilisant la technique proposée par votre tableur, donnez à la feuille de calcul le même nom que celui de l’exemple de table. Par exemple, lorsque vous collez les exemples de données Inscriptions aux cours, attribuez le nom Inscriptions aux cours à la feuille de calcul.
  4. Répétez les étapes 2 et 3 pour copier le deuxième exemple de table dans une feuille de calcul vide et renommer la feuille de calcul.

    Remarque : Vous aurez peut-être besoin d’ajouter des feuilles de calcul dans votre fichier de feuille de calcul. Pour plus d’informations à ce sujet, consultez l’aide de votre tableur.

  5. Enregistrez le classeur dans un emplacement facilement identifiable sur votre ordinateur ou réseau, puis passez à l’ensemble d’étapes suivant.

Créer des tables de base de données à partir des feuilles de calcul

  1. Dans une base de données existante ou nouvelle :Dans l’onglet Données externes, dans le groupe Importer, cliquez sur Excel.

    Image du ruban Access

    – ou –

    Cliquez sur Plus, puis sélectionnez un tableur dans la liste.

    La boîte de dialogue Données externes – Nom du tableur s’affiche.

  2. Cliquez sur Parcourir, recherchez et ouvrez le fichier de feuille de calcul que vous avez créé au cours des étapes précédentes, puis cliquez sur OK.L’Assistant Importation de feuille de calcul démarre.

    Par défaut, l’Assistant sélectionne la première feuille de calcul du classeur (c’est-à-dire, Matières principales des étudiants si vous avez suivi les étapes de la section précédente). Les données de cette feuille de calcul s’affichent alors dans la section inférieure de la page de l’Assistant.

  3. Cliquez sur Suivant.
  4. Dans la page suivante de l’Assistant, cochez la case Première ligne contient les en-têtes de colonnes, puis cliquez sur Suivant.
  5. Dans la page suivante, vous pouvez utiliser les zones de texte et les listes situées sous Options des champs pour modifier les noms des champs et les types de données, ou pour omettre des champs de l’opération d’importation. Dans le cadre de cet exemple, vous n’avez pas besoin de modifier quoi que ce soit. Cliquez sur Suivant.
  6. Dans la page suivante, sélectionnez l’option Pas de clé primaire, puis cliquez sur Suivant.
  7. Par défaut, Access applique le nom de la feuille de calcul à votre nouvelle table. Acceptez le nom proposé dans la zone Importer vers la table, puis cliquez sur Terminer.
  8. Dans la page Enregistrer les étapes d’importation, cliquez sur Fermer pour terminer l’Assistant.
  9. Répétez les étapes 1 à 7 jusqu’à ce que vous ayez créé une table à partir de chaque feuille de calcul du fichier de feuille de calcul.

Comparer les exemples de tables et rechercher des enregistrements correspondants en utilisant des jointures

Vous êtes maintenant prêt à comparer la table Inscriptions aux cours table avec la table Matières principales des étudiants. Étant donné que vous n’avez pas défini de relations entre les deux tables, vous devez créer des jointures entre les champs appropriés dans la requête. Les tables possèdent plus d’un champ en commun et vous devez créer une jointure pour chaque paire de champs communs : ID étudiant, Année et Programme (table Inscriptions aux cours) et Matière principale (table Matières principales des étudiants). Dans cet exemple, seule la matière principale Mathématiques vous intéresse. Vous allez donc utiliser un critère de champ pour limiter les résultats de la requête.

  1. Ouvrez la base de données dans laquelle vous avez enregistré les exemples de tables.
  2. Dans l’onglet Créer, cliquez sur Création de requête.
  3. Dans la boîte de dialogue Afficher la table, double-cliquez sur la table contenant les enregistrements que vous souhaitez afficher (dans cet exemple, il s’agit de la table Inscriptions aux cours), puis double-cliquez sur la table contenant les enregistrements avec lesquels vous voulez les comparer (dans cet exemple, il s’agit de la table Matières principales des étudiants).
  4. Fermez la boîte de dialogue Afficher la table.
  5. Faites glisser le champ ID étudiant à partir de la table Inscriptions aux cours vers le champ ID étudiant de la table Matières principales des étudiants. Une ligne s’affiche entre les deux tables dans la grille de création, indiquant que vous avez créé une jointure. Double-cliquez sur la ligne pour ouvrir la boîte de dialogue Propriétés de la jointure.
  6. Passez en revue les trois options dans la boîte de dialogue Propriétés de la jointure. Par défaut, l’option 1 est sélectionnée. Dans certains cas, vous devrez ajuster les propriétés de la jointure de manière à inclure des lignes supplémentaires à partir d’une table. Étant donné que vous essayez de trouver uniquement les données qui correspondent, laissez la jointure définie sur l’option 1. Cliquez sur Annuler pour fermer la boîte de dialogue Propriétés de la jointure.
  7. Vous devez créer deux autres jointures. Créez-les en faisant glisser le champ Année à partir de la table Inscriptions aux cours vers le champ Année de la table Matières principales des étudiants, puis en faisant glisser le champ Programme à partir de la table Inscriptions aux cours vers le champ Matière principale de la table Matières principales des étudiants.
  8. Dan la table Inscriptions aux cours, double-cliquez sur l’astérisque (*) pour ajouter tous les champs de la table à la grille de création de la requête.

    Remarque : Lorsque vous utilisez l’astérisque pour ajouter tous les champs, une seule colonne s’affiche dans la grille de création. La colonne en question porte le nom de la table, suivi d’un point (.) et d’un astérisque (*). Dans cet exemple, la colonne s’intitule Inscriptions aux cours.*.

  9. Dans la table Matières principales des étudiants, double-cliquez sur le champ Matière principale pour l’ajouter à la grille.
  10. Décochez la case dans la ligne Afficher de la colonne Matière principale de la grille de création de la requête.
  11. Dans la ligne Critères de la colonne Matière principale, tapez MATH.
  12. Dans l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.La requête s’exécute, puis affiche les notes de la matière Mathématiques uniquement pour les étudiants dont la matière principale est Mathématiques.

Comparer deux tables en utilisant un champ en tant que critère

Vous pouvez être amené à comparer des tables sur la base de champs qui comportent des données correspondantes, mais dont les types de données sont différents. Par exemple, un champ dans une table peut avoir un type de données Numérique, et vous souhaitez comparer ce champ à un champ figurant dans une autre table et dont le type de données est Texte. Ce cas peut se présenter lorsque des nombres sont stockés sous forme de texte, soit par conception, soit pour d’autres raisons, par exemple, lors de l’importation de données à partir d’un autre programme. Étant donné que vous ne pouvez pas créer de jointures entre des champs dont les types de données sont différents, vous allez devoir utiliser une autre méthode pour comparer ces champs. Vous pouvez comparer deux champs dont les types de données sont différents en utilisant un champ en tant que critère pour l’autre.

Imaginons que vous êtes un chercheur au sein d’une université et que vous souhaitez déterminer dans quelle mesure les changements apportés au programme dans le département Mathématiques ont affecté les notes des étudiants. Vous êtes particulièrement intéressé par les notes des étudiants dont la matière principale est Mathématiques. Vous disposez déjà d’une table Matières principales des étudiants et d’une table Inscriptions aux cours. Les données sur les notes sont stockées dans la table Inscriptions aux cours et les données concernant les étudiants dont la matière principale est Mathématiques sont stockées dans la table Matières principales des étudiants. Pour déterminer dans quelle mesure les notes des étudiants dont la matière principale est Mathématiques ont évolué, vous devez passer en revue les enregistrements de la table des inscriptions qui possèdent des enregistrements correspondants dans la table des matières principales. Toutefois, le type de données de l’un des champs que vous voulez utiliser pour comparer les tables est différent de son homologue.

Pour comparer deux tables en utilisant un champ en tant que critère, vous devez créer une requête Sélection qui inclut les deux tables. Vous devez ensuite inclure les champs que vous souhaitez afficher, plus le champ qui correspond au champ que vous voulez utiliser en tant que critère. Pour terminer, vous devez créer un critère permettant de comparer les tables. Vous pouvez créer autant de critères de comparaison des champs que vous le souhaitez.

Pour illustrer cette méthode, vous allez utiliser les exemples de tables présentées dans la section précédente, mais vous allez modifier le type de données du champ ID étudiant de l’exemple de table Matières principales des étudiants de Numérique à Texte. Étant donné que vous ne pouvez pas créer de jointure entre deux champs dont les types de données sont différents, vous allez devoir comparer les deux champs ID étudiant en utilisant un champ en tant que critère pour l’autre champ.

Modifier le type de données du champ ID étudiant de la table Matières principales des étudiants

  1. Ouvrez la base de données dans laquelle vous avez enregistré les exemples de tables.
  2. Dans le volet de navigation, cliquez avec le bouton droit sur la table Matières principales des étudiants, puis cliquez sur Mode Création dans le menu contextuel.La table Matières principales des étudiants s’ouvre en mode Création.
  3. Dans la colonne Type de données, modifiez le paramètre associé à ID étudiant de Numérique à Texte.
  4. Fermez la table Matières principales des étudiants. Lorsque vous êtes invité à enregistrer les modifications, cliquez sur Oui.

Comparer les exemples de tables et rechercher des enregistrements correspondants en utilisant un critère de champ

La procédure suivante vous explique comment comparer les deux champs ID étudiant en utilisant le champ de la table Inscriptions aux cours en tant que critère pour le champ de la table Matières principales des étudiants. En utilisant le mot clé Like, vous pouvez comparer les champs, même si leur type de données est différent.

  1. Dans l’onglet Créer, dans le groupe Autre, cliquez sur Création de requête.
  2. Dans la boîte de dialogue Afficher la table, double-cliquez sur Inscriptions aux cours, puis double-cliquez sur Matières principales des étudiants.
  3. Fermez la boîte de dialogue Afficher la table.
  4. Faites glisser le champ Année à partir de la table Inscriptions aux cours vers le champ Année de la table Matières principales des étudiants, puis faites glisser le champ Programme à partir de la table Inscriptions aux cours vers le champ Matière principale de la table Matières principales des étudiants. Étant donné que ces champs ont les mêmes types de données, vous pouvez les comparer en utilisant des jointures. Nous vous conseillons d’utiliser les jointures pour comparer des champs dont le type de données est identique.
  5. Double-cliquez sur l’astérisque (*) dans la table Inscriptions aux cours pour ajouter tous les champs de cette table à la grille de création de la requête.

    Remarque : Lorsque vous utilisez l’astérisque pour ajouter tous les champs, une seule colonne s’affiche dans la grille de création. La colonne en question porte le nom de la table, suivi d’un point (.) et d’un astérisque (*). Dans cet exemple, la colonne s’intitule Inscriptions aux cours.*.

  6. Dans la table Matières principales des étudiants, double-cliquez sur le champ ID étudiant pour l’ajouter à la grille.
  7. Décochez la case dans la ligne Afficher de la colonne ID étudiant de la grille de création. Dans la ligne Critères de la colonne ID étudiant, tapez Like [Inscriptions aux cours].[ID étudiant].
  8. Dans la table Matières principales des étudiants, double-cliquez sur le champ Matière principale pour l’ajouter à la grille.
  9. Décochez la case dans la ligne Afficher de la colonne Matière principale de la grille de création. Dans la ligne Critères, tapez MATH.
  10. Dans l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.La requête s’exécute, puis affiche les notes de la matière Mathématiques uniquement pour les étudiants dont la matière principale est Mathématiques.