Vous êtes sur la page 1sur 17

Cours ACCESS

Les requtes

1.

Introduction.................................................................................................2

2.

Cration d'une requte ..................................................................................2

3.

Dfinition des critres de slection...................................................................5


3.1 Oprateurs .............................................................................................5
3.2 Les Fonctions ..........................................................................................6
3.3 Plusieurs critres portant sur des champs diffrents.......................................7
3.4 Requte paramtre ................................................................................8

4.

Les requtes multitables ................................................................................9

5.

Les fonctions de regroupement...................................................................... 10


5.1 Les oprations....................................................................................... 11
5.2 Quelques exemples ................................................................................ 12

6.

Les requtes d'analyse croise ...................................................................... 13

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

2. Cration d'une requte


Dans la fentre principale d'Access, cliquez sur l'onglet "Requtes", puis sur le bouton "Nouveau".

Page 2 sur 17

Cours ACCESS

Les requtes

Access nous propose 5 faons de crer une requte :


?? M o d e c r a t i o n : nous allons crer la requte de A Z par nous-mmes
?? A s s i s t a n t d e R e q u t e s i m p l e : Cre une requte simple sur une ou plusieurs tables, on pourra, dans
cette requte simple, faire des calculs, des regroupements.
?? A s s i s t a n t d e R e q u t e d ' a n a l y s e c r o i s e : Aide la cration d'une requte d'analyse croise
?? A s s i s t a n t d e R e q u t e t r o u v e r l e s d o u b l o n s : Localise les enregistrements doublons dans une table
ou une requte.
?? As s i s t a n t d e R e q u t e d e n o n -c o r r e s p o n d a n c e : Localise les enregistrements d'une table auxquels
ne correspond aucun autre enregistrement d'une autre table. On peut, par exemple, utiliser un tel type de
requte pour localiser les clients qui n'ont pas pass de commande.

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

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 l'amener avec la souris sur une colonne,
soit on clique sur la ligne "Champ", la liste de tous les champs s'affiche alors et on en slectionne un dans la
liste. Un des champs propos sappelle '*', ce champ signifie "tous les champs de la table", 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 "Table" sert selectionner la table laquelle appartient le champ slectionn, dans notre cas, il n'y
a qu'une table, le choix est vite fait.
La colonne "Tri" 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 d'abord tri par nom, puis par prnom.
La colonne "Afficher" 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 d'afficher, pour chaque client, la ville dans
laquelle il habite, puisqu'il s'agira toujours de Saint-Quentin, on a donc dselectionn l'affichage du champ
"Ville".
Enfin la colonne "Critres" va indiquer le critre de la requte, on veut la liste des clients habitant SainQuentin, le critre est donc : le champ ville doit tre gal Saint-Quentin, d'o le critre = "Saint-Quentin".
Pour xecuter la requte, on clique sur l'icne :

Access affiche le rsultat :

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).

3. Dfinition des critres de slection


3.1 Oprateurs

On peut utiliser dans les requtes les oprateurs suivants :


Oprateur
=
<>
<
>
<=
>=

Signification
Egal
Diffrent
Infrieur
Suprieur
Infrieur ou gal
Suprieur ou gal

Access met notre disposition d'autres oprateurs :


Oprat eur
Entre

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

3.2 Les 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 l'aide 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 (#10/2/98#) 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 d'octobre :

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.

Ou pour obtenir la liste des commandes passes il y a moins d'un mois :

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

3.3 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 : "liste des clients habitant Saint-Quentin OU Paris", "Liste des
clients s'appelant Dupont ET vivant Paris".
1-

Liste des clients s'appelant Dupont et vivant Saint-Quentin

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-

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 "Critres", le second sur la ligne "Ou". Si on avait voulu ajouter un troisime critre (Liste des clients
habitant Saint-Quentin OU Paris OU Lille), on aurait ajouter le critre = "Lille" sur une troisime ligne et
ainsi de suite.

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

4. Les requtes multitables


Pour l'instant, 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. "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

5. Les fonctions de regroupement


Jusqu' prsent, nos requtes nous permettaient de rpondre des questions du type : "Liste des clients
habitant Paris", "Liste des produits commands par le client 1". Grce aux fonctions de regroupement, nous
allons pouvoir rpondre des questions du type : "Combien de clients habitent Paris ?" ou
"Pour combien command chaque client ?".
Pour cela, cliquez sur le bouton :

Une nouvelle ligne "Opration" apparat dans la requte, c'est grce elle que nous allons faire nos
oprations.
1-

Combien de clients habitent Paris

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

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, 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

5.2 Quelques exemples

Voici quelques exemples de requtes :


Nombre de clients nomms "Dupont" par ville

Liste des clients ayant command plus de 1000 F du produit 1

Page 12 sur 17

Cours ACCESS

Les requtes

6. Les requtes d'analyse croise


Les requtes d'analyse croise permettent de rpondre des questions du type "qui command combien de
quoi ?". Elles retournent le rsultat sous forme d'un tableau comportant des champs en abscisse et en
ordonne, avec, dans chaque case la rponse notre question.
Exemple : Qui a command combien de quoi ?

Quoi
Quoi

Qui
Combien
Combien

Qui
Combien
combien

L'en-tete "Qui" va contenir le nom des clients


L'en-tte "Quoi" va contenir la liste des produits
Et combien va donner, pour chaque client, le nombre de produits qu'il a command.
Comment procde-t-on ?
1.

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

7. Les requtes ACTION


Les requtes faites jusqu' prsent se contentent de retourner le rsultat d'une slection sous forme de table,
cette table, tant, selon le type de requte, modifiable. Il existe cependant d'autres types de requtes, les
requtes action, ces requtes vont permettre de :
??
??
??
??

Crer une table partir du rsultat d'une 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

7.1 Les requtes Cration


Une requte cration cre une table partir des rsultats qu'elle produit partir d'une table existante.
Supposons que nous voulions crer une table "Commandes rgles" 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

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.

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 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

7.4 Les requtes Suppression

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