Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :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,
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,
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,
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,
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,
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.
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,
- Enfin, cliquer sur le bouton Terminer pour afficher les résultats,
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,
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.
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,
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,
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,
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,
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.