Cours ACCESS Les requêtes
Cours ACCESS Les requtes Page 1 sur 17 1 Introduction2 2 Cration dune requte 2 3 Dfinition des critres de slection5 31 Oprateurs 5 32 Les Fonctions 6 33 Plusieurs critres portant sur des champs diffrents7 34 Requte paramtre 8 4 Les requtes multitables 9 5 Les fonctions de regroupement 10 51 Les oprations 11 52 Quelques exemples 12 6 Les requtes danalyse croise 13 7 Les requtes ACTION 14 71 Les requtes Cration 14 72 Les requtes Ajout 15 73 Les requtes Mise Jour 16 74 Les requtes Suppression 17
Cours ACCESS Les requtes Page 2 sur 17 LES REQUETES 1 Introduction Les requtes vont servir afficher uniquement certaines donnes contenues dans les tables selon certains critres Elles peuvent aussi faire des calculs sur vos donnes ainsi que crer des sources de donnes pour les formulaires les tats ou mme dautres requtes on peut faire une requte sur le rsultat dune autre requte Elles servent encore modifier des tables existantes ou en crer des nouvelles Il existe diffrents types de requtes que nous allons dtailler aprs La requte slection Cest celle quon utilisera le plus souvent Elle permet de slectionner des enregistrements de faire des calculs et des regroupements Elles ressemblent beaucoup aux filtres mais permettent en plus de travailler sur plusieurs tables simultanment La requte dAnalyse croise Cette requte prsente ses rsultats sous forme de tableau de type Excel On lutilisera pour comparer des valeurs dgager des tendances La requte de Cration de table Cette requte cre une table partir des donnes quelle a extraites dans une ou plusieurs autres tables La requte Mise Jour Cette requte modifie le contenu dun ou plusieurs champs dune ou plusieurs tables Cest le moyen le plus efficace pour mettre jour un grand nombre denregistrements en une seule opration La requte Ajout Cette requte ajoute les donnes quelle a extraites la fin dune table dj existante La requte Suppression Cette requte supprime un ou plusieurs enregistrements dans une ou plusieurs tables Les trois derniers types de requtes ne seront pas tudis La requte SQL direct La requte de dfinition de donnes La requte UNION 2 Cration dune requte Dans la fentre principale dAccess cliquez sur longlet quotRequtesquot puis sur le bouton quotNouveauquot
Cours ACCESS Les requtes Page 3 sur 17 Access nous propose 5 faons de crer une requte Mode cration nous allons crer la requte de A Z par nous-mmes Assistant de Requte simple Cre une requte simple sur une ou plusieurs tables on pourra dans cette requte simple faire des calculs des regroupements Assistant de Requte danalyse croise Aide la cration dune requte danalyse croise Assistant de Requte trouver les doublons Localise les enregistrements doublons dans une table ou une requte Assistant de Requte de non-correspondance Localise les enregistrements dune table auxquels ne correspond aucun autre enregistrement dune autre table On peut par exemple utiliser un tel type de requte pour localiser les clients qui nont pas pass de commande Comme nous ne reculons pas devant leffort nous allons crer les requtes par nous mme nous cliquons donc sur Mode Cration puis sur OK Access nous affiche la liste des tables de la base Nous choisissons ici les tables sur lesquelles vont porter la requte Nous allons prendre pour exemple la requte quotliste des clients habitant la ville de Parisquot La requte va donc porter sur la table quotClientsquot on la slectionne et on clique sur quotAjouterquot comme il ny a aucune autre table ajouter on clique sur quotFermerquot Notez quon peut aussi faire porter la requte sur le rsultat dune autre requte dans ce cas on choisira la requte dans longlet quotRequtequot Dans la partie suprieure de la fentre se trouvent la ou les tables avec la listes de leur champs cest sur ces tables que vont porter les requtes Dans la partie infrieure se trouve la description de la requte
Cours ACCESS Les requtes Page 4 sur 17 Voici notre requte Nous avons un tableau compos de colonnes et de lignes dans chaque colonne on indique les champs qui vont apparatre dans le rsultat de la requte ou qui vont servir dans la requte ici on veut la liste des clients habitant Saint-Quentin on veut donc voir apparatre le champ Nom et le champ Prnom le critre de la requte va se faire sur le champ ville on ajoute donc aussi ce champ Pour ajouter un champ on peut soit le slectionner dans la table et lamener avec la souris sur une colonne soit on clique sur la ligne quotChampquot la liste de tous les champs saffiche alors et on en slectionne un dans la liste Un des champs propos sappelle ce champ signifie quottous les champs de la tablequot si on choisi ce champ tous les champs de la table apparaitront dans le rsultat de la requte en plus des autres champs que vous aurez choisis La ligne quotTablequot sert selectionner la table laquelle appartient le champ slectionn dans notre cas il ny a quune table le choix est vite fait La colonne quotTriquot indique de quelle faon vont tre tris les champs dans le rsultat de la requte il y a trois sortes de tri Croissant de A Z Dcroissant de Z A et non tri On a choisi ici de trier le rsultat de la requte par nom et par prnom de faon croissante Le tri se fait toujours de gauche droite le rsultat de la requte sera dabord tri par nom puis par prnom La colonne quotAfficherquot indique si le champ doit tre affich ou non ici on veut afficher le nom et le prnom de chaque client habitant Saint-Quentin mais on a pas besoin dafficher pour chaque client la ville dans laquelle il habite puisquil sagira toujours de Saint-Quentin on a donc dselectionn laffichage du champ quotVillequot Pour xecuter la requte on clique sur licne Access affiche le rsultat Le rsultat de la requte saffiche sous la forme dune table que lon peut modifier comme si il sagissait dune table normale on peut ajouter des enregistrements les modifier faire des filtres des tris etc
Cours ACCESS Les requtes Page 5 sur 17 Attention Les rsultats des requtes mme si ils sont prsents sous forme de tables ne sont pas de vritables tables quaurait gnr la requte Ils ne sont quune quotvuequot faite partir des tables qui ont servi faire la requte Autrement dit si vous modifiez quelque chose dans le rsultat de la requte la modification se repercutera dans la table qui a servi faire la requte si on change ici le nom du client la modification sera reporte dans la table Clients si on ajoute un client au rsultat de la requte un nouvel enregistrement va tre cre dans la table Clients et en plus cet enregistrement sera incomplt car seuls deux champs auront pu tre saisis dans le rsultat de la requte les champs nom amp prnom 3 Dfinition des critres de slection 31Oprateurs On peut utiliser dans les requtes les oprateurs suivants Oprateur Signification Egal ltgt Diffrent lt Infrieur gt Suprieur lt Infrieur ou gal gt Suprieur ou gal Access met notre disposition dautres oprateurs Oprateur Signification Exemple Entre Slectionne les enregistrements pour lesquels la valeur dun champ est comprise dans un intervalle de valeurs Entre quotAquot et quotCquot Entre 10 et 20 Entre 010199 et 311299 Dans Slectionne les enregistrements pour lesquels la valeur dun champ est comprise dans une liste Dans quotParisquotquotSaint-Quentinquot Est Slectionne les enregistrements pour lesquels un champ est vide ou non Est NULL Est pas NULL Comme Slectionne les enregistrements contenant une donne approximative Comme quotruequot Pas Slectionne les enregistrements ne correspondant pas au critre Pas Entre quotAquot et quotCquot
Cours ACCESS Les requtes Page 6 sur 17 32Les Fonctions On peut intgrer des fonctions dans les critres de slection Access met notre disposition un trs grand nombre de fonctions pour en avoir la liste complte consultez laide intgre Access Ce sont les mmes fonctions que celles qui sont utiliss dans les contrles des formulaires et dailleurs dans tous les logiciels de la gamme Microsoft Office Par exemple parmi ces fonctions on trouve la fonction Mois qui on passe une date en paramtre cette fonction renvoie le mois de cette date par exemple Mois 10298 renvoie 2 Une autre fonction Date renvoie la date du jour On peut utiliser ces deux fonctions dans des critres de slection Par exemple pour obtenir la liste des commandes du mois doctobre Notez que pour faire rfrence au champ quotDate de la commandequot dans la fonction Mois on a crit le champ entre crochets On utilise les crochets lorsquon travaille avec un champ dont le nom comporte des espaces Par extension et par mesure de prcaution on les utilisera avec tout type de champ Ou pour obtenir la liste des commandes passes il y a moins dun mois Il existe un trs grand nombre de fonctions pour en avoir la liste et la syntaxe consultez laide intgre Access
Cours ACCESS Les requtes Page 7 sur 17 33 Plusieurs critres portant sur des champs diffrents On peut avoir plusieurs critres de slection ces critres tant spars entre eux par des OU ou des ET par exemple quotliste des clients habitant Saint-Quentin OU Parisquot quotListe des clients sappelant Dupont ET vivant Parisquot 1- Liste des clients sappelant Dupont et vivant Saint-Quentin La requte ressemble la prcdente sauf que l il y a deux critres le premier Nom quotDupontquot ET le deuxime Ville quotParisquot Vous noterez au passage quil nest pas ncessaire dafficher le contenu du champ quotvillequot puisquon sait que ce sera toujours Paris Vous me direz que cest la mme chose avec quotNomquot certes mais cest mieux davoir une liste de nom prnom quune seule liste de prnom 2- Liste des clients habitant Saint-Quentin OU Paris Quelle est la diffrence Les deux critres ne sont plus sur la mme ligne Ils sont sur deux lignes spares Le premier est sur la ligne quotCritresquot le second sur la ligne quotOuquot Si on avait voulu ajouter un troisime critre Liste des clients habitant Saint-Quentin OU Paris OU Lille on aurait ajouter le critre quotLillequot sur une troisime ligne et ainsi de suite
Cours ACCESS Les requtes Page 8 sur 17 En rgle gnrale Si deux critres sont spars par des ET on les place sur la mme ligne Si deux critres sont spars par des OU on les place sur des lignes diffrentes 34 Requte paramtre Pour linstant les critres de chaque requte que nous avons fait taient indiqus explicitement dans la requte Supposons maintenant que nous voulions faire une requte du type Liste de tous les clients qui habitent dans une ville mais quon veuille entrer nous mme la ville On ne connat pas par avance la ville en question et on ne va pas prparer autant de requtes quil peut y avoir de villes on nest pas sorti de lauberge la solution la plus simple est alors de demander lutilisateur lutilisateur cest celui qui va utiliser votre requte plus tard dentrer la ville et de faire la requte en fonction de ce quil a entr Pour faire a on procde ainsi Au lieu dindiquer une ville on a mis Entrez la ville Que va-t-il se passer lorsquon va excuter la requte Habituellement pour Access tout ce qui est indiqu entre crochets est le nom dun champ si on avait mis par exemple Nom il aurait cherch les clients qui habitent une ville qui sappelle comme leur nom Or ici Entrez la ville nest pas un nom de champ Access ne sait donc pas ce que cest et il demande lutilisateur dentrer la valeur de ce champ inconnu Lutilisateur va entrer ici la ville notez que le message affich est ce qui tait indiqu entre crochets dans la requte Maintenant chaque fois que Access va rencontrer dans la requte Entrez la ville il va le remplacer par ce qu saisi lutilisateur Si lutilisateur a saisi Paris Access va remplacer dans son critre Entrez la ville par quotParisquot
Cours ACCESS Les requtes Page 9 sur 17 4 Les requtes multitables Pour linstant nos requtes ne portaient que sur une seule table il est possible de faire des requtes qui portent sur plusieurs tables simultanment Dans ce cas les requtes peuvent tre trs complexes Par exemple si nous voulons la liste des clients ayant command le produit n 1 Avec le bouton on affiche la liste des tables de la base On va choisir ici toutes les tables entrant en jeu pour pouvoir faire la requte Ici on veut la liste des clients il faut donc la table clients quotayant commandquot il faut donc la table commandes quotle produit n1quot il faut donc la table produits Il faut aussi faire intervenir la table quotLignes-commandesquot Pourquoi parce que cest elle qui fait la liaison entre la table commande et la table produits De faon gnrale lorsquon fait une requte portant sur plusieurs tables il faut respecter deux rgles Toutes les tables intervenant dans la requtes doivent tre relies entre elles il ne doit pas y avoir de tables isoles sinon Access va essayer de trouver lui-mme les relations entre ces tables isoles et parfois le rsultat peut tre folkorique Il ne doit pas y avoir de tables nayant rien faire dans la requte sinon Access va se baser sur les relations entre ces tables nayant rien voir avec la choucroute et celles ayant voir et va donner des rsultats errons En rsum toutes les tables ncessaires mais pas plus Vous pouvez noter que une fois les bonnes tables installes avec les bonnes relations entre elles la requte est fort simple il suffit dindiquer produits1 et Access grce aux relations va retrouver la liste des clients ayant command ce produit
Cours ACCESS Les requtes Page 10 sur 17 5 Les fonctions de regroupement Jusqu prsent nos requtes nous permettaient de rpondre des questions du type quotListe des clients habitant Parisquot quotListe des produits commands par le client 1quot Grce aux fonctions de regroupement nous allons pouvoir rpondre des questions du type quotCombien de clients habitent Paris quot ou quotPour combien command chaque client quot Pour cela cliquez sur le bouton Une nouvelle ligne quotOprationquot apparat dans la requte cest grce elle que nous allons faire nos oprations 1- Combien de clients habitent Paris Quy-a-t-il de diffrent Nous avons deux champs nous allons compter le nombre de clients chaque client a un numro on insre donc dans la requte le numro de client cest le nombre de ces numros que nous allons compter il faut quon compte les clients habitant Paris do le deuxime champ Ville La diffrence est sur la ligne Opration Elle indique comment va se faire lopration si nous voulons compter on va choisir lopration quotcomptequot Dans tous les champs o il y a un critre de slection ici Ville quotParisquot on choisira lopration o Le rsultat de la requte sera une table avec un unique champ non modifiable qui indiquera le nombre de clients habitant Paris
Cours ACCESS Les requtes Page 11 sur 17 2- Montant command par chaque client Ca se corse Ici on veut par client la somme de ses commandes A partir du moment o on veut un rsultat par catgorie une somme par client un nombre de clients par ville etc il y a regroupement ici on veut la somme des commandes regroupes par clients cest pour a quon a choisi comme opration pour numro de client quotRegroupementquot Pourquoi a-t-on ajout le champ quotnomquot Simplement pour ne pas avoir une liste de numros avec un montant correspondant Pourquoi dans ce cas na-t-on pas regroup les clients par leur nom au lieu de le faire par numro et nom parce que plusieurs clients peuvent avoir le mme nom et quon ne veut pas cumuler le montant des commandes par clients homonymes on regroupe donc les clients par numro et nom Enfin le troisime champ on veut la somme du montant des commandes quest-ce quune commande cest une liste de prix unitaires une quantit A la place dun champ on indique donc quon veut les prix unitaires les quantits La syntaxe est nom de la tablechamp de la table une commande cest donc une liste de produitsprix unitaire lignescommandesquantit Et on veut la somme de toutes ces commandes on choisi donc lopration quotSommequot 51Les oprations En plus de la somme et de compte il existe dautres oprations possibles Opration Signification Compte Compte le nombre de valeurs Dernier Valeur du dernier enregistrement Ecartype Ecart type Max Valeur la plus leve Min Valeur la plus faible Moyenne Moyenne Premier Valeur du permier enregistrement Somme Total Var Variance
Cours ACCESS Les requtes Page 12 sur 17 52Quelques exemples Voici quelques exemples de requtes Nombre de clients nomms quotDupontquot par ville Liste des clients ayant command plus de 1000 F du produit 1
Cours ACCESS Les requtes Page 13 sur 17 6 Les requtes danalyse croise Les requtes danalyse croise permettent de rpondre des questions du type quotqui command combien de quoi quot Elles retournent le rsultat sous forme dun tableau comportant des champs en abscisse et en ordonne avec dans chaque case la rponse notre question Exemple Qui a command combien de quoi Qui Qui Quoi Combien Combien Quoi Combien combien Len-tete quotQuiquot va contenir le nom des clients Len-tte quotQuoiquot va contenir la liste des produits Et combien va donner pour chaque client le nombre de produits quil a command Comment procde-t-on 1 Dabord on cre une requte standard pour cette requte nous avons besoin du nom dans la table 2 On transforme la requte en requte danalyse croise en allant dans le menu quotRequtequot et en choisissant quotAnalyse croisequot 3 Une nouvelle ligne apparat dans la requte la ligne quotAnalysequot 4 Dans cette ligne on va indiquer si le champ quon a choisi va tre len-tte des colonnes len-tte des lignes ou la valeur contenue dans les cases du tableau 5 LOpration pour les en-ttes est toujours quotRegroupementquot 6 LOpration pour les valeurs des cases dpend de ce quon cherche ici on cherche le nombre de produits achet lopration est donc quotSommequot
Cours ACCESS Les requtes Page 14 sur 17 7 Les requtes ACTION Les requtes faites jusqu prsent se contentent de retourner le rsultat dune slection sous forme de table cette table tant selon le type de requte modifiable Il existe cependant dautres types de requtes les requtes action ces requtes vont permettre de Crer une table partir du rsultat dune requte Ajout des enregistrements une table partir des rsultats de la requte Mettre Jour une table en fonction de certains critres Supprimer des enregistrements rpondant aux critres de la requte 71Les requtes Cration Une requte cration cre une table partir des rsultats quelle produit partir dune table existante Supposons que nous voulions crer une table quotCommandes rglesquot qui contiendrait la liste des commandes dj rgles 1 Crer la requte normalement nous voulons la liste des commandes rgles 2 On la transforme en requte Cration Menu Requte Requte Cration de table 3 Access nous demande le nom de la table crer Attention si vous slectionnez une table existante la table va tre crase par cette opration
Cours ACCESS Les requtes Page 15 sur 17 4 Excutez la requte avec licne point dexclamation la table va tre cre avec le rsultat de la requte Si vous vous voulez vrifier avant de crer la table quel sera le rsultat de la requte cliquez sur licne Une fois que le rsultat sera conforme vos attentes vous pourrez cliquer sur licne point dexclamation 72Les requtes Ajout Une requte Ajout copie tout ou partie des enregistrements dune table la table source la fin dune autre table la table cible Toujours dans notre table quotCommandes rglesquot nous voulons ajouter les commandes qui ont t rgles depuis la semaine dernire 1 Cration de la requte normale 2 On la transforme en requte Ajout Menu Requte Requte Ajout 3 Access nous demande le nom de la table laquelle il faut ajouter le rsultat de la requte 4 Comme prcdemment avec les icnes Affichage et point dexclamation vrifiez et validez votre requte
Cours ACCESS Les requtes Page 16 sur 17 Attention Les enregistrements sont COPIES de la table source vers la table cible et non pas dplacs Les deux tables doivent avoir des noms de champs identiques et les mmes types de donnes les deux structures ne doivent pas ncessairement tre identiques Si la table source comporte plus de champs que la table cible les champs supplmentaires sont ignors Si la table source comporte moins de champs que la table cible les champs dont les noms sont identiques sont copis les autres sont laisss vides Access ne copie QUE les champs que vous avez dclars dans la requte dou le champ 73 Les requtes Mise Jour Les requtes mise jour permettent de modifier rapidement tous les enregistrements dune table ou un groupe dentre eux Supposons que lon veuille augmenter de 10 le prix des produits dont le prix actuel est infrieur 1000 F 1 On cre une requte et dans le menu Requte on clique sur quotRequte Mise Jourquot 2 Un champ quotMise jourquot apparat dans la requte cest l quon va indiquer la modification qui va avoir lieu Dans la case Mise Jour on a indiqu qu la place du prix unitaire nous voulions prixunitaire11 soit une augmentation de 10 ceci pour les produits dont le prix est infrieur 1000 critre
Cours ACCESS Les requtes Page 17 sur 17 74 Les requtes Suppression Les requtes suppression vous permettent de supprimer un groupe denregistrements qui rpondent un critre donn Supposons que lon veuille supprimer de la table commande toutes les commandes rgles 1 On cre une requte standard puis dans le menu Requte on clique sur Requte Suppression 2 On excute la requte ou on vrifie avant que le rsultat est conforme ce que lon attend Attention Vrifiez bien le rsultat avant dexcuter la requte il nest pas possible de revenir en arrire aprs avoir effac des enregistrements
Tarik Hcine
Cours ACCESS Les requêtes
أرسلت .
- الملفات : الملفات.
- المستوى : تقني متخصص.
- الشعبة : Techniques de Développement Informatique.
- الوحدة : Production de documents.
كلمات مفتاحية :
cours access les reque tes
cours access les reque tes