MS Access - Assistant de requête sans correspondance

Dans Access, il existe un autre assistant très utile et c'est Find Unmatched Query Wizard. L'Assistant Rechercher des requêtes sans correspondance crée une requête qui recherche des enregistrements ou des lignes dans une table qui n'ont aucun enregistrement associé dans une autre table.

Comme nous l'avons déjà expliqué, comment les données se rejoignent dans les requêtes et comment la plupart des requêtes recherchent les correspondances entre deux ou plusieurs tables.

  • Il s'agit de la jointure par défaut dans Access, par exemple, si nous concevons une requête avec deux tables, tblCustomers et tblOrderset joindre ces deux tables par les CustomerIDs, cette requête ne renverra que les résultats qui correspondent. En d'autres termes, les clients qui ont passé des commandes.

  • Il y a des moments où nous ne voulons pas voir les correspondances, par exemple, nous pouvons ne vouloir voir aucun client dans notre base de données - les clients qui n'ont pas encore passé de commande.

  • C'est exactement ce que fait la requête de recherche sans correspondance.

Il existe également de nombreuses autres utilisations possibles de ce type de requête.

Dans notre base de données, nous pouvons l'utiliser pour voir quels auteurs n'ont pas encore écrit de projet ou vous pouvez l'utiliser pour voir quels employés n'ont pas encore choisi de prestations de santé. Ouvrons maintenant votre base de données qui contientCustomers et Orderstable; allez dans l'onglet Créer et cliquez sur le bouton de l'assistant de requête.

Sélectionnez le Find Unmatched Query Wizard et cliquez Ok.

Dans ce scénario, nous rechercherons les clients qui n'ont pas passé de commande. Dans le premier écran, il demande quelle table ou requête contient les enregistrements souhaités dans les résultats de la requête.

Nous voulons maintenant une liste de clients de tblCustomers. Sélectionnez cette option et cliquez surNext.

Dans l'écran suivant, vous devez spécifier which table or query contains the related records. En d'autres termes, quel tableau utilisez-vous pour comparer avec le premier. Pour cela, nous devons trouver ceux qui n'ont pas passé de commande. Nous devons sélectionner le tableau qui contient des informations sur toutes les commandes -tblOrders. Maintenant, cliquezNext.

Dans l'écran suivant, vous devez spécifier quelle information se trouve dans les deux tableaux.

  • Il s'agit généralement d'une sorte de clé primaire, de clé étrangère, de champ ou de relation.
  • Si vous avez une relation existante dans votre base de données, Access sélectionnera et fera correspondre ces champs pour vous.
  • Mais, si vous avez d'autres champs que vous pouvez joindre, contenant des informations similaires, vous pouvez également le choisir ici.

Ici, nous avons CustID sélectionné par défaut dans les deux champs dans «tblCustomers» et les champs dans «tblOrders». Maintenant, cliquezNext.

Dans l'écran suivant, vous pouvez sélectionner et choisir les champs que vous souhaitez voir affichés dans les résultats de la requête.

Choisissons maintenant tous les champs disponibles et cliquons sur la double flèche. Cela déplace tous lesavailable fields à la selected fieldssurface. Maintenant, cliquezNext.

Le dernier écran vous permettra de choisir un nom pour votre requête et de cliquer Finish.

Ici, nous avons un client répertorié comme ce client qui n'a pas encore passé de commande chez nous.

Vous pouvez également voir comment cette requête a été créée. Pour cela, vous devez revenir à laDesign View.

Cet assistant a créé un Outer Join entre tblCustomer et tblOrders et le Is Nullcritères est ajouté au CustID à partir de tblORders. Ceci afin d'exclure certains enregistrements. Dans ce cas, ce sont les clients qui ont passé des commandes, ou qui ont des informations associées dans tblOrders.