Vous êtes sur la page 1sur 23

Ms Access 2007

Prsent par : Ben Nasr


Salem

Octobre
2011

Les requtes

L'un des lments les plus puissants d'une base de


donnes est la capacit de faire une recherche sur
une masse de donnes entrepose dans la base de
donnes.
Il est ensuite possible de faire des analyses et d'en
sortir des tendances.
Par exemple, vous navez pas besoin de voir toute la
liste des clients si vous avez seulement besoin du
numro de tlphone de lun deux.
Access nous offre plusieurs genres de requtes.
Chacune est spcialise pour un certain genre de
recherche ou d'opration.

Requte slection

Affiche les enregistrements qui rpondent aux


critres demands. C'est le type quon utilise le
plus souvent.
Il affiche seulement les enregistrements qui
rpondent aux critres slectionns.
La cration et l'excution d'une requte Slection
constituent un moyen d'extraire des informations
d'une base de donnes sans modifier les donnes
stockes dans les tables de la base de donnes.
Une requte Slection ne stocke pas de donnes
elle extrait les donnes stockes dans des tables.

Requte slection
La slection simple
Crons, dans l'interface graphique, la requte qui
extrait de la table "Personnes" (contenant une
liste de personnes) les deux champs "Nom" et
"Prnom". Cliquons sur la petite flche situe au
dessous de l'outil "Affichage"
, et dans
la liste droulante, choisissons "Mode SQL".
La commande (ou instruction) suivante s'affiche :

SELECT Personnes.Nom,
Personnes.Prnom
FROM Personnes;

Requte slection
La requte avec cration de table
Rcuprons la requte prcdente dans
l'interface graphique, faisons en sorte
qu'elle cre une table appele "Essai",
puis basculons en mode SQL.
Nous obtenons :
SELECT Personnes.Nom,
Personnes.Prnom INTO Essai
FROM Personnes;

Requte slection
Tri simple ou multiple
Nous pouvons demander que le rsultat
de la requte soit tri sur un ou plusieurs
champs. Rcuprons la requte
prcdente dans l'interface graphique,
faisons en sorte que le rsultat soit tri
sur les noms d'abord, sur les prnoms
ensuite, SELECT
et basculons
en mode SQL. Nous
Personnes.Nom,
obtenons : Personnes.Prnom
FROM Personnes
ORDER BY Personnes.Nom,
Personnes.Prnom;

Requte slection

Nous voyons que le tri (dans l'ordre


croissant) s'obtient grce la clause
ORDER BY, suivi des noms des champs.
Le tri multiple est effectu dans l'ordre
d'numration des champs.
Le tri d'un champ dans l'ordre dcroissant
s'obtient en faisant suivre le nom de ce
champ par l'oprateur DESC. L'exemple
SELECT un
Personnes.Nom,
suivant effectue
tri croissant sur les
Personnes.Prnom
noms, suivi d'un tri dcroissant sur les
prnoms : FROM Personnes
ORDER BY Personnes.Nom,
Personnes.Prnom DESC;

Requte slection
requte avec cration de champ
Reprenons la table Personne, on se propose de
concatner le nom avec le prnom, en les
sparant par un espace. Appelons "Nom_complet"
le nouveau champ. En mode SQL, nous obtenons :

SELECT Nom & " " & Prenom


AS Nom_complet
FROM Personnes;

Requte slection
Requte multi-fonctionnelle
Nous pouvons regrouper toutes les
oprations prcdentes (requte simple,
cration de table, cration de champ, tri)
en une seule requte, dont voici le code
SQL :
SELECT [Nom] & " " & [Prenom] AS
Nom_complet INTO Liste_de_noms
FROM Personnes
ORDER BY [Nom] & " " & [Prenom];

requte Ajout

Une requte Ajout ajoute un ensemble


d'enregistrements (de lignes) partir d'une ou
plusieurs tables source (ou requtes) vers une ou
plusieurs tables de destination.
En rgle gnrale, les tables source et de
destination peuvent tre dans la mme base de
donnes.

INSERT INTO Personnes


( Nom, Prenom )
Values (Salem,ben
INSERT INTO
Personnes ( Nom,
nasr);
Prenom )
SELECT toto.nom, toto.prenom
FROM toto;

Requte suppression
DELETE personnes.[nom]
FROM personnes
WHERE [nom]="aaaa";

Requte mise a jour


UPDATE personnes
SET Nom = zzzz"
where Prenom=fff"

requte d'analyse croise

Pour crer une analyse croise, vous avez


besoin d'au moins trois champs.
Le premier est l'En-tte de colonne. Ce
sont les valeurs qui seront affiches au
haut de chaque colonne du tableau
d'analyse crois.
Le second lment ncessaire une
analyse croise est d'avoir au moins un
En-tte de ligne.
C'est le champ qui va dtailler les valeurs
des colonnes.
Le dernier lment ncessaire la

Access peut refuser de crer une


relation avec intgrit rfrentiel
pour ces raisons :

La table qui contient l'enregistrement unique


n'a pas l'option d'index sans doublons ou cl
primaire.
La table qui contient l'enregistrement unique a
des doublons. Ex. : plusieurs produits ont le
mme numro de produit.
L'un des enregistrements de l'une des tables
relies un des champs communs vide.
Il faut toujours que les champs en commun
des deux tables aient de l'information dans
l'autre table.

La valeur crite dans la table qui peut


contenir plusieurs fois la mme valeur
dans le champ en commun n'a pas
d'quivalent dans l'autre table. Ex. : L'un
des enregistrements contient le numro
de produit numro 5 bien qu'il y ait
seulement quatre produits, de 1 4, de
disponible.
Une autre raison est que l'une des tables
est "ouverte" ouExercic
affiche.
Il faut fermer
Exercic
e
e
toutes tables, requtes,
tats et
formulaires avant de crer les relations
entre les tables.