formateur informatique

Trouver les incohérences de données avec les requêtes

Accueil  >  Bureautique  >  Access  >  Access Avancé  >  Trouver les incohérences de données avec les requêtes
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :

Abonnez-vous gratuitement à la chaîne Youtube Rossetti Stéphane .
Sujets et formations similaires :


Requêtes détection

Dans ce cinquième exercice Access sur les requêtes, nous abordons des outils très spécifiques mais précieux. Il s'agit des requêtes détection. On les utilise afin de déceler la présence d'anomalies dans les données de la base.



Base de données source
A chaque nouvel exercice, nous reprenons les travaux acheminés dans le volet précédent, afin de poursuivre l'apprentissage et la construction de notre base de données. Le volet des objets Access, sur la gauche de l'écran, liste les tables que nous avons configurées et les requêtes que nous avons construites. La catégorie des tables est repliée car les objets commencent à être nombreux.

Dans les exercices précédents, nous avons appris à domestiquer les requêtes sélection, les requêtes paramétrées et les requêtes de synthèse. Nous avons de même découvert la puissance et la souplesse du langage Sql pour extraire les données de tables.

Désormais, nous souhaitons aborder les requêtes capables d'isoler les enregistrements présentant des incohérences.
  • Dans le volet des objets Access, cliquer sur la catégorie Tables pour déployer sa vue,
  • Puis, double cliquer sur la table Communes pour afficher son contenu,
Présence de doublons à éliminer dans table Access des villes

Nous l'avons évoqué à plusieurs reprises dans les exercices précédents, cette table présente de nombreuses redondances. A l'avenir, lorsque nous maîtriserons les requêtes action, nous devrons purger cette table de ces villes en doublons.
  • Fermer la table Communes en cliquant sur la croix de son onglet,
  • Puis, dans le volet des objets Access, double cliquer sur la table Produits,
Choix du code promotionnel par liste déroulante dans la table des produits Access

Cette table recense naturellement tous les articles en vente de l'entreprise. Ils sont identifiés par le champ produit_ref de la clé primaire. A son extrémité, vous notez la présence du champ produit_code. Par le biais d'une liste déroulante que nous avions paramétrée, ce champ permet d'attribuer des codes promotionnels aux articles. Ces codes sont issus de la table Remises. Ils correspondent à des taux de réduction en pourcentage.
  • Avec la liste déroulante, ajouter des codes promotionnels aux trois premiers enregistrements,
Ces codes devraient être renseignés pour chaque enregistrement. En effet, ces deux tables sont reliées par les relations que nous avions établies à l'occasion d'un exercice. D'ailleurs, le tout premier code promotionnel correspond à une remise nulle. La majorité des enregistrements de cette table ne trouve donc pas de correspondance avec la table Remises.



Trouver les doublons
Access offre une requête tout à fait spécifique et précieuse afin d'identifier facilement toutes les redondances d'une table. De plus, un assistant permet de simplifier sa construction.
  • Fermer la table Produits en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Assistant Requête,
  • Dans la boîte de dialogue qui suit, choisir Assistant Requête trouver les doublons,
Assistant requête Access pour extraire les doublons et redondances dans table

Vous notez de même la présence d'un assistant pour construire une requête de non correspondance. C'est exactement l'outil dont nous aurons besoin pour isoler tous les enregistrements de la table Produits n'étant pas affectés à un code promotionnel.
  • Cliquer sur le bouton Ok pour démarrer l'assistant,
  • Dans la première étape qui s'affiche, sélectionner la table Communes,
Choisir table Access dans laquelle identifier les doublons

Ce sont en effet les villes redondantes que nous souhaitons isoler.
  • Cliquer sur le bouton Suivant pour progresser dans les étapes de l'assistant,
  • Dans la liste de gauche de l'étape qui suit, sélectionner le champ Commune_nom,
  • Puis, cliquer sur le bouton de la flèche orientée à droite,
Ajouter champ dans assistant de requête Access pour identifier les redondances

En effet, ce sont les répétitions sur les noms de communes que nous souhaitons déceler.
  • Cliquer de nouveau sur le bouton Suivant pour poursuivre la construction de la requête,
  • Dans cette nouvelle étape, sélectionner le champ Commune_dep,
  • Puis, cliquer sur le bouton de la flèche orientée à droite,
De cette manière, nous indiquons à Access que nous souhaitons enrichir le résultat de l'extraction sur les doublons de villes, avec l'information associée sur le code postal.

Informations de champ à extraire avec les doublons de table par requête Access

Souvenez-vous, ce champ ne porte pas forcément bien son nom. Mais il renferme bien les codes postaux, codés sur 5 chiffres donc.
  • Cliquer une fois encore sur le bouton Suivant,
  • Dans cette dernière étape, nommer la requête : R_doublons_villes,
Enregistrer et nommer la requête Access pour trouver les doublons
  • Enfin, cliquer sur le bouton Terminer pour afficher les résultats,
Extraire et afficher les redondances et doublons de table par assistant requête Access

Les résultats de la requête apparaissent aussitôt en mode feuille de données. Et comme vous le constatez, seules les villes redondantes sont extraites. Il en résulte 318 enregistrements sur les 1003 de départ. La proportion semble donc très importante. Mais un problème, que nous avions d'ailleurs évoqué lors des exercices précédents surgit.

La ville d'Aix En Provence est répétée 6 fois par exemple. Mais comme vous le constatez, chaque répétition est associée à un code postal différent. Il ne s'agit donc pas d'un vrai doublon. La ville d'Allauch juste en dessous est en revanche un vrai doublon. La paire Ville/Code postal est strictement identique.

Pour une extraction utile et pertinente, nous devons donc bâtir une requête identifiant les doublons sur la paire, matérialisée par ces deux champs. Dans l'assistant de la requête, tout se joue dans la première étape.
  • Fermer la requête R_doublons_villes en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Assistant Requête,
  • Dans la boîte de dialogue qui suit, choisir Assistant Requête trouver les doublons,
  • Puis, cliquer sur le bouton Ok pour démarrer la construction de la requête,
  • Dans l'étape qui suit, choisir la table Communes et cliquer sur le bouton Suivant,
  • Dans l'étape suivante, sélectionner le champ Commune_nom,
  • Puis, cliquer sur le bouton de la flèche orientée à droite,
  • Sélectionner alors le champ Commune_dep et cliquer sur le même bouton de la flèche,
Ajouter deux champs dans assistant requête Access pour extraire paires de doublons de table

C'est ainsi que nous stipulons à Access de trouver les doublons stricts sur la paire de champs.
  • Cliquer sur le bouton Suivant pour poursuivre l'assistant requête,
  • Sélectionner le champ Commune_id et cliquer sur le bouton de la flèche orientée à droite,
Nous afficherons ainsi le détail sur l'identifiant de chaque commune réellement en double.
  • Cliquer une dernière fois sur le bouton Suivant,
  • Nommer la requête : R_doublons_villes_cp,
  • Puis, cliquer sur le bouton Terminer pour afficher le résultat de l'extraction,
Comme vous le remarquez, cette extraction produit un nombre de résultats moins important que la précédente. Il ne reste plus que 262 redondances identifiées par rapport aux 318 précédentes. Toutes les répétitions sur les villes associées à des codes postaux différents ont été exclues. La recherche de doublons a bien été effectuée sur la paire des deux champs : Nom et code postal de la commune.

La ville d'Allauch est toujours repérée comme un véritable doublon. La ville d'Aix en Provence était affichée à six reprises avec la précédente requête. Elle n'apparaît plus que deux fois. Et son code postal est bien identique.

A l'avenir, nous devrons exploiter les résultats de cette requête pour purger la table Communes de ses redondances.

Extraire les doublons sur paires de champs de table Access par assistant requête

Malgré cette double vérification, croisée sur les deux champs, la proposition des villes en double reste conséquente.



Requête de non correspondance
A l'origine, cette requête doit permettre d'identifier les enregistrements orphelins. Dans le cas d'une base de données mal conçue en amont, nous pourrions par exemple déceler la présence de commandes attachées à des clients non référencés dans la table parente. Donc, sa vocation est de nettoyer la base de données, pour ne pas l'alourdir et repartir sur des bases saines.

Quant à nous, comme nous avons pris soin de rigoureusement relier les tables entre elles, au cours des exercices précédents, c'est une mésaventure que nous ne vivrons pas. Mais pour comprendre l'intérêt et le mécanisme d'une telle requête, nous proposons donc de l'appliquer sur les tables Produits et Remises. L'objectif est d'isoler rapidement tous les articles qui ne sont pas en promotion. En d'autres termes, non allons extraire tous les enregistrements pour lesquels le champ produit_code n'offre aucune correspondance avec le champ Remise_id de la table Remises. Le résultat sera l'inverse de celui livré par une requête équijointure, que nous avons démontrée au cours d'un exercice.
  • Fermer la requête R_doublons_villes_cp en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Assistant Requête,
  • Dans la boîte de dialogue qui suit, choisir Assistant requête de non-correspondance,
  • Puis, cliquer sur le bouton Ok pour démarrer l'assistant requête,
Assistant Access de requête de non correspondance

Les indications fournies par Access sont explicites. Dans l'étape qui suit, nous devons désigner la table qui ne trouve pas de correspondance avec une autre table.
  • Sélectionner la table Produits et cliquer sur le bouton Suivant,
Dans cette nouvelle étape, nous devons spécifier la table contenant les enregistrements en relation.
  • Sélectionner la table Remises et cliquer sur le bouton Suivant,
Cette nouvelle étape est cruciale. Elle consiste à identifier la relation entre les deux tables précédemment désignées. Ce lien existe entre le champ produit_code et le champ Remise_id. Et grâce à nos travaux précédents, vous constatez qu'Access les repère automatiquement.
  • Cliquer néanmoins sur le bouton de la double flèche au centre de l'interface,
Désigner lien de champs de tables Access pour assistant requête non correspondance

A titre de simulation en effet, dans le cas où il s'agira à l'avenir de trouver les non-correspondances entre deux tables non liées, il s'agira de bien établir cette relation par ce bouton, pour l'extraction souhaitée.
  • Cliquer sur le bouton Suivant pour poursuivre la création de la requête,
  • Cliquer sur la double flèche orientée à droite, au centre de l'interface,
Ajouter détail de tous les champs pour extraction de requête Access de non correspondance

Nous souhaitons en effet produire une extraction des non correspondances avec le niveau de détail complet. Nous sélectionnons donc tous les champs de la table Produits.
  • Cliquer une fois encore sur le bouton Suivant,
  • Nommer la requête : R_NC_prod_remises,
  • Puis, cliquer sur le bouton Terminer pour afficher les résultats de l'extraction,
Extraction des enregistrements qui ne correspondent pas à la relation entre les tables par requête Access

L'extraction offre 240 résultats sur les 245 produits référencés. Seuls 5 articles sont actuellement associés à un code promotionnel, issu de la table Remises. Cette requête de non-correspondance livre instantanément une preuve de l'étendue des dégâts.

Nous sommes avertis. Il est temps de maîtriser les requêtes action afin de corriger les anomalies que nous avons pu déceler dans certaines tables de la base de données, au cours des différents exercices.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn