Comparer deux tables et rechercher des enregistrements sans correspondance

Vous pouvez parfois comparer deux tables et identifier les enregistrements d’une table qui n’ont aucun enregistrement correspondant dans l’autre table. Pour identifier ces enregistrements, le plus simple consiste à utiliser l’Assistant Requête de non-correspondance. Une fois que l’Assistant a créé votre requête, vous pouvez modifier la conception de la requête pour ajouter ou supprimer des champs, ou pour ajouter des jointures entre les deux tables (afin d’indiquer les champs dont les valeurs doivent correspondre). Vous pouvez également créer votre propre requête pour rechercher les enregistrements sans correspondance, sans passer par l’Assistant.

Cet article vous explique comment démarrer et exécuter l’Assistant Requête de non-correspondance, comment modifier la sortie de l’Assistant et comment créer votre propre requête pour rechercher des enregistrements sans correspondance.

Remarque : L’Assistant Requête de non-correspondance n’est pas pris en charge dans les applications web Access ni les bases de données web.

Contenu de cet article

Quand rechercher des enregistrements sans correspondance ?

Utiliser l’Assistant Requête de non-correspondance pour comparer deux tables

Créer et modifier une requête de non-correspondance pour comparer selon plusieurs champs

Créer votre propre requête pour rechercher des enregistrements sans correspondance

Quand rechercher des enregistrements sans correspondance ?

Voici deux scénarios courants où vous pouvez comparer deux tables et rechercher des enregistrements sans correspondance. Selon votre scénario, la recherche d’enregistrements sans correspondance peut être la première de plusieurs étapes. Cet article traite uniquement de la recherche d’enregistrements sans correspondance.

  • Vous utilisez une table pour stocker des données concernant un élément (telles qu’un produit) et une autre table pour stocker des données sur des actions associées à cet élément (telles que des commandes).   

    Par exemple, dans le modèle de base de données Les Comptoirs, les données relatives aux produits sont stockées dans la table Produits et les données relatives aux produits inclus dans chaque commande sont stockées dans la table Détails de la commande. Par défaut, la table Produits ne contenant aucune donnée concernant les commandes, il est impossible, en examinant uniquement cette table, de déterminer quels produits n’ont jamais été vendus. Ces informations ne peuvent pas non plus être déterminées en examinant uniquement la table Détails de la commande, car cette dernière inclut des données uniquement concernant les produits qui ont été vendus. Pour déterminer quels produits n’ont jamais été vendus, vous devez comparer les deux tables.

    Si vous souhaitez passer en revue la liste des éléments de la première table pour lesquels il n’existe aucune action correspondante dans la deuxième table, vous pouvez utiliser une requête de non-correspondance.

  • Deux de vos tables possèdent des informations conflictuelles, redondantes ou qui se chevauchent, et vous souhaitez les consolider dans une table unique.    

    Par exemple, supposons que vous avez une table nommée Clients et une autre nommée Clientèle. Ces deux tables sont presque identiques, mais chacune contient des enregistrements manquants dans l’autre. Pour consolider les tables, vous devez tout d’abord identifier les enregistrements qui sont uniques à une table ou à l’autre.

    Si vous êtes dans ce cas de figure, les méthodes décrites dans cet article peuvent vous aider, mais il est probable que vous devrez effectuer des étapes supplémentaires. Vous pouvez exécuter l’Assistant Requête de non-correspondance pour identifier les enregistrements sans correspondance, mais si vous souhaitez extraire le jeu combiné d’enregistrements, vous devez utiliser les résultats pour créer une requête Union. Si vous avez les connaissances nécessaires pour écrire des instructions SQL (Structured Query Language), vous pouvez même vous passer de l’Assistant Requête de non-correspondance et écrire la requête Union manuellement.

    Le problème que posent les informations conflictuelles, redondantes ou qui se chevauchent peut souvent être traité en recherchant les doublons dans plusieurs tables.

Pour plus d’informations sur les requêtes Union ou sur la façon de rechercher, masquer ou éliminer des doublons, cliquez sur les liens figurant dans la section Voir aussi.

Remarque : Les exemples présentés dans cet article s’appuient sur une base de données créée à partir du modèle de base de données Northwind.

Procédure pour configurer Les Comptoirs

  1. Sous l’onglet Fichier, cliquez sur Nouveau. Si vous utilisez Access 2007, cliquez sur le bouton Microsoft Office Image du bouton Office , puis sur Nouveau.

  2. Selon votre version d’Access, vous pouvez rechercher Les Comptoirs dans la zone de recherche, ou dans le volet gauche, sous Catégories de modèles, cliquez sur Modèles locaux.

  3. Sous Modèles locaux, cliquez sur Exemple Les comptoirs 2007, puis sur Créer.

  4. Suivez les instructions fournies dans la page Les Comptoirs (sous l’onglet objet Écran Démarrage) pour ouvrir la base de données, puis fermez la fenêtre Boîte de dialogue de connexion.

Haut de la page

Utiliser l’Assistant Requête de non-correspondance pour comparer deux tables

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Assistant Requête. Remarque : si vous utilisez Access 2007, sous l’onglet Créer, dans le groupe Autres, cliquez sur Assistant Requête.

    Deux options sont disponibles dans le groupe Requêtes du ruban Access : Assistant Requête et Création de requête
  2. Dans la boîte de dialogue Nouvelle requête, double-cliquez sur Assistant Requête de non-correspondance.

  3. Dans la première page de l’Assistant, sélectionnez la table qui contient des enregistrements sans correspondance, puis cliquez sur Suivant. Par exemple, si vous souhaitez afficher une liste de produits Northwind qui n’ont jamais été vendus, sélectionnez la table Produits.

    Sélectionnez une table ou requête dans la boîte de dialogue Assistant Requête de non-correspondance.
  4. Dans la deuxième page, sélectionnez la table apparentée, puis cliquez sur Suivant. Pour poursuivre l’exemple, sélectionnez la table Détails commande.

    Sélectionnez une table ou requête contenant les enregistrements connexes dans la boîte de dialogue Assistant Requête de non-correspondance.
  5. Dans la troisième page, sélectionnez les champs qui relient les tables, cliquez sur < = >, puis sur Suivant. Vous ne pouvez choisir qu’un seul champ par table. Pour poursuivre l’exemple, sélectionnez ID dans la table Produits et Réf produit dans la table Détails commande. Vérifiez que les champs corrects correspondent en examinant le texte contenu dans la zone Champs correspondants.

    Sélectionnez les champs correspondants à partir des tables de la boîte de dialogue Assistant Requête de non-correspondance.

    Notez qu’il se peut que les champs ID et Réf produit soient présélectionnés, en raison de relations existantes intégrées au modèle.

  6. Dans la quatrième page, double-cliquez sur les champs de la première table que vous souhaitez visualiser, puis cliquez sur Suivant. Pour poursuivre l’exemple, sélectionnez les champs ID et Réf produit.

    Sélectionnez les champs que vous voulez afficher dans le résultat de la requête dans la boîte de dialogue Assistant Requête de non-correspondance.
  7. Dans la cinquième page, vous pouvez choisir d’afficher les résultats ou de modifier la conception de votre requête. Dans cet exemple, cliquez sur Afficher les résultats. Acceptez le nom par défaut pour la requête, puis cliquez sur Terminer.

    Entrez le nom d’une requête de non-correspondance dans la boîte de dialogue Assistant Requête de non-correspondance.

    Vous pouvez modifier la conception de votre requête afin d’ajouter d’autres critères, de modifier l’ordre de tri ou d’ajouter ou supprimer des champs. Pour plus d’informations sur la modification d’une requête de non-correspondance, consultez la section suivante. Pour obtenir des informations d’ordre général sur la création et la modification de requêtes, reportez-vous aux liens figurant dans la section Voir aussi.

Haut de la page

Créer et modifier une requête de non-correspondance pour comparer selon plusieurs champs

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Assistant Requête. Remarque : si vous utilisez Access 2007, sous l’onglet Créer, dans le groupe Autres, cliquez sur Assistant Requête.

  2. Dans la boîte de dialogue Nouvelle requête, double-cliquez sur Assistant Requête de non-correspondance.

  3. Dans la première page de l’Assistant, sélectionnez la table qui contient des enregistrements sans correspondance, puis cliquez sur Suivant. Par exemple, si vous souhaitez afficher une liste de produits Northwind qui n’ont jamais été vendus, sélectionnez la table Produits.

  4. Dans la deuxième page, sélectionnez la table apparentée, puis cliquez sur Suivant. Pour poursuivre l’exemple, sélectionnez la table Détails commande.

  5. Dans la troisième page, sélectionnez les champs qui relient les tables, cliquez sur < = >, puis sur Suivant. Vous ne pouvez choisir qu’un seul champ par table. Pour poursuivre l’exemple, sélectionnez ID dans la table Produits et Réf produit dans la table Détails de la commande. Vérifiez que les champs corrects correspondent en examinant le texte contenu dans la zone Champs correspondants. Vous pouvez joindre les champs restants une fois que vous avez terminé les différentes étapes de l’Assistant.

    Notez qu’il se peut que les champs ID et Réf produit soient présélectionnés, en raison de relations existantes intégrées au modèle.

  6. Dans la quatrième page, double-cliquez sur les champs de la première table que vous souhaitez visualiser, puis cliquez sur Suivant. Pour poursuivre l’exemple, sélectionnez les champs ID et Réf produit.

  7. Dans la cinquième page, cliquez sur Modifier la structure, puis sur Terminer.

    La requête s’ouvre en mode Création.

  8. Dans la grille de création de la requête, notez que les deux tables sont jointes au niveau des champs (dans l’exemple en question, ID et Réf produit) que vous avez spécifiés dans la troisième page de l’Assistant. Créez une jointure pour chaque paire de champs apparentés restante en les faisant glisser de la première table (celle qui contient des enregistrements sans correspondance) vers la deuxième. Pour cet exemple, faites glisser le champ Afficher la liste des prix de la table Produits vers le champ Prix unitaire de la table Détails de la commande.

  9. Double-cliquez sur une jointure (le trait qui relie les champs) pour afficher la boîte de dialogue Propriétés de la jointure. Pour chaque jointure, choisissez l’option qui inclut tous les enregistrements de la table Produits, puis cliquez sur OK.

    Dans la grille de création de la requête, notez que chaque jointure se termine maintenant par une flèche.

    Le type de jointure est indiqué par le style du trait.

    1. Lorsque vous créez la jointure entre les champs Afficher la liste des prix et Prix unitaire, celle-ci restreint la sortie des deux tables. Seuls les enregistrements ayant des données correspondantes dans les champs des deux tables sont inclus dans les résultats de la requête.

    2. Une fois que vous avez modifié les propriétés de la jointure, celle-ci restreint uniquement la table vers laquelle pointe la flèche. Tous les enregistrements de la table depuis laquelle pointe la flèche sont inclus dans les résultats de la requête.

    Remarque : Assurez-vous que toutes les flèches des jointures pointent dans la même direction.

  10. Pour la table qui contient des enregistrements apparentés (dans cet exemple, la table Détails), double-cliquez sur chaque champ joint à la première table, à l’exception du champ que vous avez choisi dans la troisième page de l’Assistant (dans notre cas, le champ Réf produit). Pour chacun de ces champs, désactivez la case à cocher sur la ligne Afficher et tapez Is Null sur la ligne Critère.

  11. Si vous le souhaitez, ajoutez des critères aux autres champs de la requête ou créez des champs calculés basés sur des valeurs de la première table.

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

    La requête renvoie les noms des produits qui ne font partie d’aucune commande existante.

Haut de la page

Créer votre propre requête pour rechercher les enregistrements sans correspondance

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête. Remarque : si vous utilisez Access 2007, sous l’onglet Créer, dans le groupe Autres, cliquez sur Création de requête.

  2. Dans la boîte de dialogue Afficher la table, double-cliquez sur la table qui contient des enregistrements sans correspondance, puis sur celle qui contient des enregistrements apparentés.

  3. Fermez la boîte de dialogue Afficher la table.

  4. Dans la grille de création de la requête, les deux tables doivent être reliées par des traits (appelés jointures) entre les champs apparentés. Si les jointures sont absentes, créez-les en faisant glisser chaque champ apparenté de la première table (celle qui contient des enregistrements sans correspondance) vers la deuxième table (celle qui contient des enregistrements apparentés).

  5. Double-cliquez sur une jointure pour ouvrir la boîte de dialogue Propriétés de la jointure. Pour chaque jointure, choisissez l’option n°2, puis cliquez sur OK.

    Dans la grille de création de requête, les jointures changent et ont des flèches à l’une des extrémités.

    Remarque : Vérifiez que toutes les jointures pointent dans la même direction. La requête ne s’exécute pas si les jointures pointent dans des directions différentes et risquent de ne pas s’exécuter si une jointure n’est pas une flèche. Les jointures doivent pointer dans la direction opposée à la table qui contient des enregistrements sans correspondance.

  6. Dans la table qui contient les enregistrements sans correspondance, double-cliquez sur les champs que vous souhaitez que la requête retourne.

    Vous pouvez également entrer des critères pour l’un de ces champs ou créer des champs calculés.

  7. Pour la table qui contient des enregistrements apparentés, double-cliquez sur chaque champ joint à la première table. Pour chacun de ces champs, désactivez la case à cocher sur la ligne Afficher et tapez Is Null sur la ligne Critère.

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

Haut de la page

Voir aussi

Créer une requête Sélection simple

Trouver des enregistrements en double à l’aide d’une requête

Utiliser une requête Union pour combiner plusieurs requêtes dans un seul résultat

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.

×