Académique Documents
Professionnel Documents
Culture Documents
Les requtes
1.
Introduction.................................................................................................2
2.
3.
4.
5.
6.
7.
Les
7.1
7.2
7.3
7.4
requtes ACTION................................................................................... 14
Les requtes Cration............................................................................. 14
Les requtes Ajout ................................................................................. 15
Les requtes Mise Jour......................................................................... 16
Les requtes Suppression........................................................................ 17
Page 1 sur 17
Cours ACCESS
Les requtes
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 d'autres requtes (on peut faire une requte sur le rsultat d'une 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 :
?? L a r e q u t e s l e c t i o n : C'est celle qu'on 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.
?? L a r e q u t e d ' A n a l y s e c r o i s e : Cette requte prsente ses rsultats sous forme de tableau (de type
Excel). On l'utilisera pour comparer des valeurs, dgager des tendances.
?? L a r e q u t e d e C r a t i o n d e t a b l e : Cette requte cre une table partir des donnes qu'elle a extraites
dans une ou plusieurs autres tables.
?? L a r e q u t e M i s e J o u r : Cette requte modifie le contenu d'un ou plusieurs champs d'une ou
plusieurs tables. C'est le moyen le plus efficace pour mettre jour un grand nombre d'enregistrements
en une seule opration.
?? L a r e q u t e A j o u t : Cette requte ajoute les donnes qu'elle a extraites la fin d'une table dj
existante.
?? L a r e q u t e S u p p r e s s i o n : 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
Page 2 sur 17
Cours ACCESS
Les requtes
Comme nous ne reculons pas devant l'effort, 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 "liste des clients habitant la ville
de Paris". La requte va donc porter sur la table "Clients", on la slectionne, et on clique sur "Ajouter",
comme il n'y a aucune autre table ajouter, on clique sur "Fermer".
Notez qu'on peut aussi faire porter la requte sur le rsultat d'une autre requte, dans ce cas, on choisira la
requte dans l'onglet "Requte".
Dans la partie suprieure de la fentre se trouvent la ou les tables avec la listes de leur champs, c'est sur ces
tables que vont porter les requtes. Dans la partie infrieure, se trouve la description de la requte.
Page 3 sur 17
Cours ACCESS
Les requtes
Le rsultat de la requte s'affiche sous la forme d'une table que l'on peut modifier comme si il s'agissait
d'une table normale, on peut ajouter des enregistrements, les modifier, faire des filtres, des tris, etc...
Page 4 sur 17
Cours ACCESS
Les requtes
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 qu'une "vue" 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 & prnom).
Signification
Egal
Diffrent
Infrieur
Suprieur
Infrieur ou gal
Suprieur ou gal
Dans
Est
Comme
Pas
Signification
Slectionne les enregistrements pour
lesquels la valeur d'un champ est
comprise dans un intervalle de
valeurs.
Slectionne les enregistrements pour
lesquels la valeur d'un champ est
comprise dans une liste.
Slectionne les enregistrements pour
lesquels un champ est vide ou non
Slectionne
les
enregistrements
contenant une donne approximative.
Slectionne les enregistrements ne
correspondant pas au critre
Exemple
Entre "A" et "C"
Entre 10 et 20
Entre #01/01/99# et #31/12/99#
Dans ("Paris";"Saint-Quentin")
Est NULL
Est pas NULL
Comme "rue*"
Pas Entre "A" et "C"
Page 5 sur 17
Cours ACCESS
Les requtes
Notez que pour faire rfrence au champ "Date de la commande" 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.
Il existe un trs grand nombre de fonctions, pour en avoir la liste et la syntaxe, consultez l'aide intgre
Access.
Page 6 sur 17
Cours ACCESS
Les requtes
La requte ressemble la prcdente, sauf que l, il y a deux critres : le premier Nom = "Dupont" ET le
deuxime Ville = "Paris". Vous noterez au passage qu'il n'est pas ncessaire d'afficher le contenu du champ
"ville" puisqu'on sait que ce sera toujours Paris. Vous me direz que c'est la mme chose avec "Nom", certes,
mais c'est mieux d'avoir une liste de nom + prnom qu'une seule liste de prnom.
2-
Page 7 sur 17
Cours ACCESS
Les requtes
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.
3.4 Requte paramtre
Pour l'instant, 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 qu'il peut y
avoir de villes (on n'est pas sorti de l'auberge), la solution la plus simple est alors de demander l'utilisateur
(l'utilisateur, c'est celui qui va utiliser votre requte plus tard) d'entrer la ville, et de faire la requte en
fonction de ce qu'il a entr.
Pour faire a, on procde ainsi :
Au lieu d'indiquer une ville, on a mis =[Entrez la ville]. Que va-t-il se passer lorsqu'on va excuter la
requte?
Habituellement, pour Access, tout ce qui est indiqu entre crochets est le nom d'un champ, si on avait mis
par exemple = [Nom], il aurait cherch les clients qui habitent une ville qui s'appelle comme leur nom. Or
ici, [Entrez la ville] n'est pas un nom de champ, Access ne sait donc pas ce que c'est, et il demande
l'utilisateur d'entrer la valeur de ce champ inconnu :
L'utilisateur 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 l'utilisateur. Si l'utilisateur a saisi Paris, Access va remplacer dans son critre
=[Entrez la ville] par = "Paris".
Page 8 sur 17
Cours ACCESS
Les requtes
Avec le bouton :
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. "ayant command", il faut donc la table commandes, "le produit n1", il faut
donc la table produits. Il faut aussi faire intervenir la table "Lignes-commandes".
Pourquoi ? parce que c'est elle qui fait la liaison entre la table commande et la table produits. De faon
gnrale, lorsqu'on 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 n'ayant rien faire dans la requte, sinon, Access va se baser sur les
relations entre ces tables n'ayant 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 d'indiquer produits=1, et Access, grce aux relations, va retrouver la liste des clients
ayant command ce produit.
Page 9 sur 17
Cours ACCESS
Les requtes
Une nouvelle ligne "Opration" apparat dans la requte, c'est grce elle que nous allons faire nos
oprations.
1-
Qu'y-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, c'est le nombre de ces numros que nous allons compter, il faut
qu'on compte les clients habitant Paris, d'o le deuxime champ Ville.
La diffrence est sur la ligne Opration :
Elle indique comment va se faire l'opration, si nous voulons compter, on va choisir l'opration "compte".
Dans tous les champs o il y a un critre de slection (ici Ville = "Paris"), on choisira l'opration o. Le
rsultat de la requte sera une table avec un unique champ, non modifiable, qui indiquera le nombre de
clients habitant Paris.
Page 10 sur 17
Cours ACCESS
2-
Les requtes
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, c'est pour a qu'on a choisi comme opration pour numro de
client "Regroupement".
Pourquoi a-t-on ajout le champ "nom" ? Simplement pour ne pas avoir une liste de numros avec un
montant correspondant. Pourquoi dans ce cas, n'a-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 qu'on 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 : qu'est-ce qu'une commande ?
c'est une liste de prix unitaires * une quantit. A la place d'un champ, on indique donc qu'on veut les prix
unitaires * les quantits. La syntaxe est [nom de la table]![champ de la table], une commande, c'est donc
une liste de [produits]![prix unitaire] * [lignes_commandes]![quantit]. Et on veut la somme de toutes ces
commandes, on choisi donc l'opration "Somme".
5.1 Les oprations
En plus de la somme et de compte, il existe d'autres oprations possibles :
Oprat ion
Compte
Dernier
Ecartype
Max
Min
Moyenne
Premier
Somme
Var
Signification
Compte le nombre de valeurs
Valeur du dernier enregistrement
Ecart type
Valeur la plus leve
Valeur la plus faible
Moyenne
Valeur du permier enregistrement
Total
Variance
Page 11 sur 17
Cours ACCESS
Les requtes
Page 12 sur 17
Cours ACCESS
Les requtes
Quoi
Quoi
Qui
Combien
Combien
Qui
Combien
combien
2.
3.
4.
5.
6.
D'abord on cre une requte standard : pour cette requte nous avons besoin du nom dans la table
clients, du libell du produit dans la table produit et de la quantit command dans la table lignescommandes.
On transforme la requte en requte d'analyse croise en allant dans le menu "Requte" et en choisissant
"Analyse croise".
Une nouvelle ligne apparat dans la requte : la ligne "Analyse"
Dans cette ligne, on va indiquer si le champ qu'on a choisi va tre l'en-tte des colonnes, l'en-tte des
lignes ou la valeur contenue dans les cases du tableau.
L'Opration pour les en-ttes est toujours "Regroupement"
L'Opration pour les valeurs des cases dpend de ce qu'on cherche, ici on cherche le nombre de produits
achet, l'opration est donc "Somme"
Page 13 sur 17
Cours ACCESS
Les requtes
2.
3.
Attention, si vous slectionnez une table existante, la table va tre crase par cette opration
Page 14 sur 17
Cours ACCESS
Les requtes
4. Excutez la requte avec l'icne point d'exclamation : 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 l'icne:
Une fois que le rsultat sera conforme vos attentes, vous pourrez cliquer sur l'icne point
d'exclamation.
7.2 Les requtes Ajout
Une requte Ajout copie tout ou partie des enregistrements d'une table (la table source) la fin d'une autre
table (la table cible).
Toujours dans notre table "Commandes rgles", nous voulons ajouter les commandes qui ont t rgles
depuis la semaine dernire :
1.
2.
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 d'exclamation, vrifiez et validez votre
requte.
Page 15 sur 17
Cours ACCESS
Les requtes
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 (d'ou le champ *)
7.3 Les requtes Mise Jour
Les requtes mise jour permettent de modifier rapidement tous les enregistrements d'une table ou un
groupe d'entre eux :
Supposons que l'on 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 "Requte Mise Jour"
2.
Un champ "Mise jour" apparat dans la requte, c'est l qu'on va indiquer la modification qui va avoir
lieu :
Dans la case Mise Jour, on a indiqu, qu' la place du prix unitaire, nous voulions [prix_unitaire]*1.1
(soit une augmentation de 10%), ceci pour les produits dont le prix est infrieur 1000 (critre).
Page 16 sur 17
Cours ACCESS
Les requtes
Les requtes suppression vous permettent de supprimer un groupe d'enregistrements qui rpondent un
critre donn. Supposons que l'on 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 l'on attend.
Attention :
Vrifiez bien le rsultat avant d'excuter la requte, il n'est pas possible de revenir en arrire aprs
avoir effac des enregistrements.
Page 17 sur 17