Académique Documents
Professionnel Documents
Culture Documents
NumAuteur
auteurs
NumAuteur
Nom
Prnom
Anne de naissance
Anne du dcs
livres
1 ISBN
Editeurs
IdEditeur
Nom
Villes
CodePostal
Ville
Titre
Lieu Pub
IdEditeur
Date Pub
PrixHT
Pages
Quantit en stock
Dtails commande
NumCommande
ISBN
QuantitCommande
Clients
IdClient
Nom
Prnom
Rue
Code Postal
- 1 / 29 -
commandes
NumCommande
Mode de paiement
Date commande
NumClient
Semestre 1
Formulaire
menu
Formulaire 1
tat 1
Formulaire 2
tat 2
Requte
slection 4
Requte
slection 1
Requte
slection 2
Requte
slection 3
Requte
action
Table A
Cl primaire A
Champ 1
Champ 2
.
Table B
Cl primaire B
Champ 1
Champ 2
Table C
Cl primaire C
Champ 1
Champ 2
.
Table D
Cl primaire D
Champ 1
Champ 2
.
Un exemple de base de donnes livr avec Access va nous permettre de mieux comprendre le
rle de ces diffrents lments. Lancez Access et appelez la commande Exemples de bases de donnes Exemple de base de donnes les comptoirs dans le menu ? (Aide).
Aprs un formulaire dintroduction (qui peut tre dsactiv), vous arrivez au menu suivant (un
menu est un type de formulaire particulier) :
- 2 / 29 -
Semestre 1
outils de navigation
Parcourez la liste des catgories et, pour chacune, visualisez la liste des produits correspondants.
3) Revenez au menu et cliquez sur le bouton Fournisseurs. Ce bouton permet daccder au formulaire Fournisseurs. Utilisez ce formulaire pour parcourir la liste des fournisseurs. En bas du
formulaire, le bouton Visualisation produits permet dafficher la liste des produits du fournisseur ; le bouton Ajouter produits sert afficher le formulaire Produits de faon ajouter un
nouveau produit li ce fournisseur.
- 3 / 29 -
Semestre 1
Utilisez ce formulaire pour ajouter un nouveau produit (Jeanlain catgorie : Boissons) vendu
par la socit Aux joyeux ecclsiastiques. Compltez la fiche votre gr.
Vrifier dans Fournisseurs et Catgories que le nouveau produit a t pris en compte
4) Revenez au menu et cliquez sur le bouton Commandes :
sous-formulaire commandes
- 4 / 29 -
Semestre 1
Pour afficher la liste des tables, cliquez sur le bouton correspondant gauche de cette fentre. Vous
pouvez afficher le contenu dune table en double-cliquant sur son nom dans la liste.
La commande Outils Relations (ou le bouton
de la barre doutils Base de donnes) vous
permet de visualiser le modle logique de donnes de lapplication :
6) Examinez les tables Produits, Commandes et Dtails commandes et vrifiez que les ajouts que
vous avez introduits avec les diffrents formulaires sont prsents dans les tables.
Avant de passer la deuxime partie, fermez lapplication les comptoirs
- 5 / 29 -
Semestre 1
Il est possible dimporter une feuille (Afficher les feuilles de donnes) ou une plage de
cellules nomme (Afficher les plages nommes). Choisissez la premire option et slectionnez la feuille Clients puis cliquez sur Suivant.
Activez loption Premire ligne contient les en-ttes de colonnes puis cliquez sur Suivant.
Choisissez loption Dans une nouvelle table puis cliquez sur Suivant :
- 6 / 29 -
Semestre 1
Vous pouvez modifier certaines proprits des champs de la table (nom, type de donnes),
prciser ceux qui doivent tre indexs et ventuellement en exclure certains. Cliquez sur
Suivant.
Les index
Un index permet Microsoft Access de rechercher et de trier plus rapidement des enregistrements. On peut crer des index bass sur un seul ou sur plusieurs champs (jusqu 10). Il est
conseill dindexer les champs vrifiant les conditions suivantes :
les donnes sont de type Texte, Numrique, Montaire ou Date/Heure ;
vous avez lintention de rechercher des valeurs stockes dans le champ ;
vous souhaitez trier les valeurs du champ ;
le champ est destin prendre de nombreuses valeurs diffrentes.
La cl primaire dune table est indexe automatiquement.
Prciserez que la cl primaire est le champ IdClient puis cliquez sur Suivant.
la dernire tape de lassistant, donnez un nom la table (vous accepterez le nom propos : Clients).
8) Importez de faon identique la liste des villes qui se trouve dans le fichier Base Clients.xls.
- 7 / 29 -
Semestre 1
9) Vous disposez maintenant de deux tables dont vous pouvez examiner la structure avec le bouton
(affichage en mode Cration) et dont vous pouvez visualiser, modifier et / ou
complter les donnes avec le bouton
(affichage en mode Feuille de donnes) :
10) Crez la relation entre les deux tables : dans le menu Outils, choisissez la commande Relations
(ou cliquez sur le bouton
de la barre doutils Base de donnes) :
Slectionnez les deux tables Clients et Villes (touche Ctrl ou Maj) et cliquez sur Ajouter. Pour
crer la relation entre les tables cliquez sur le champ Code Postal de la table Villes et faites
glisser jusqu CodePostal de la table Clients :
- 8 / 29 -
Semestre 1
- 9 / 29 -
Semestre 1
13) Importez les feuilles livres, auteurs, ISBN Nauteur (pas de cl primaire) et editeurs qui se
trouvent dans le fichier Base Livres.xls.
14) Modifiez la table ISBN Nauteur en dfinissant les deux champs comme cl primaire.
15) Dans la table livres, changez le type de donnes du champ PrixHT de numrique montaire,
format Euro, avec 2 dcimales : slectionnez la table et cliquez sur le bouton
:
Cliquez dans la colonne Types de donnes droite du nom du champ et slectionnez le type
voulu dans la liste droulante. En bas de la fentre, longlet Gnral, slectionnez le format et
le nombre de dcimales.
16) Crez les relations entre les tables (en appliquant lintgrit rfrentielle).
2. Cration de tables ex-nihilo
Nous allons maintenant voir comment crer ex-nihilo une table dans Access, en nous appuyant
sur lexemple de la table commandes.
17) Cliquez sur le bouton
, slectionnez Mode cration et crez la structure de la table
commandes qui comprend les quatre champs suivants :
NumCommande : type de donnes NumroAuto. Dclarez ce champ comme cl primaire
(cliquez avec le bouton droit de la souris gauche du nom du champ et choisissez Cl primaire dans le menu contextuel la valeur de lattribut Index devient Oui sans doublons).
Mode de paiement : choisissez comme type de donnes Assistant liste de choix. la premire tape de lassistant, activez loption Je taperai les valeurs souhaites et cliquez sur
Suivant. ltape suivante, choisissez 2 colonnes et saisissez les 3 lignes suivantes :
- 10 / 29 -
Semestre 1
Cliquez sur Suivant et choisissez Col1 comme champ stocker. la dernire tape,
conservez Mode de paiement comme tiquette et validez en cliquant sur Terminer.
Observez le rsultat dans longlet Liste de choix.
Date commande : type de donnes Date/Heure, format Date, abrg, valeur par dfaut :
Date() (cest la fonction qui renvoie la date systme).
NumClient : type de donnes Numrique, taille Entier long.
Date commande
date actuelle
date actuelle
22/10/2005
NumClient
11
23
53
NumClient
190
Il existe une autre faon de procder, qui permet dviter de saisir une commande correspondant un client inexistant :
21) Supprimez tous les enregistrements de la table commandes (ouvrez-la en mode Feuille de donnes, slectionnez tous les enregistrements Ctrl+A et appuyez sur Suppr) et la relation entre
les tables Clients et commandes (affichez la fentre Relations, cliquez avec le bouton droit sur
la relation entre les deux tables et choisissez Supprimer dans le menu contextuel).
22) Ouvrez la table commandes en mode Cration et recrez le champ NumClient en utilisant lassistant liste de choix : la premire tape, choisissez loption Je veux que la liste de choix recherche les valeurs dans une table ou requte. ltape suivante, choisissez la table Clients et
cliquez sur Suivant :
- 11 / 29 -
Semestre 1
Slectionnez les trois premiers champs (pour ajouter un champ cliquez sur son nom dans la colonne Champs disponibles puis sur le bouton > pour supprimer un champ, cliquez sur son nom
dans la colonne Champs slectionns puis sur <) et cliquez sur Suivant.
ltape suivante, dcochez loption Colonne cl cache et cliquez sur Suivant. La valeur
stocker est IdClient. Conservez NumClient comme tiquette et cliquez sur Terminer.
23) Passez dans la fentre Relations, ajoutez la table commandes et modifiez les proprits de la relation.
24) Saisissez des commandes (une dizaine dont certaines par le mme client).
Pour que les clients apparaissent dans lordre alphabtique, affichez la table commandes en
mode Cration (
). Slectionnez le champ Numclient et, dans longlet Liste de choix, cliquez sur la proprit Contenu. Un bouton apparat droite de celle-ci ; cliquez dessus :
Sur la ligne Tri, en dessous du champ Nom, ajoutez Croissant. Fermez cette fentre en enregistrant les modifications. Enregistrez la table puis passez en mode Feuille de donnes (
).
25) Crez la table Dtails commandes avec les champs suivants :
NumCommande : utilisez lassistant liste de choix, en indiquant que les donnes doivent
provenir de la table commandes, et en affichant les trois champs NumCommande, DateCommande et NumClient. Dcochez loption Colonne cl cache.
ISBN : assistant liste de choix. Les donnes sont issues de la table livres dont on affichera
les champs ISBN, Titre et PrixHT. Dcochez loption Colonne cl cache. Vous afficherez
les livres dans lordre alphabtique.
QuantitCommande : type Numrique, taille Entier (pas long), valeur par dfaut : 1.
- 12 / 29 -
Semestre 1
Pour limiter les risques derreur de saisie, saisissez >= 1 (sans les guillemets) dans la
proprit Valide si ; comme Message si erreur, entrez La quantit commande doit tre
positive ! .
26) Dfinissez comme cl primaire la concatnation des deux premiers champs (slectionnez-les en
faisant glisser le pointeur de la souris, bouton gauche enfonc, dans la marge gauche des deux
noms de champs puis cliquez avec le bouton droit et choisissez Cl primaire).
27) Passez dans la fentre Relations, ajoutez la table Dtail commandes, et modifiez les proprits
des relations avec les tables commandes et livres.
28) Entrez des enregistrements (commande avec plusieurs livres, livre faisant lobjet de plusieurs
commandes diffrentes).
3. Les types de champs
Les types de champ disponibles dans Microsoft Access sont les suivants :
Texte : chanes quelconques. On peut aussi utiliser ce type de champ pour des nombres qui ne
ncessitent aucun calcul (numros de tlphone, numros INSEE, codes postaux).
Taille du champ : indiquez la longueur maximale autorise (de1 255 caractres).
Mmo : utilisez ce type de champ pour de longues suites de caractres alphanumriques (jusqu 65536), telles que des notes ou des descriptions.
Numrique : donnes numriques pouvant faire lobjet de calculs mathmatiques.
La proprit Taille du champ peut prendre les valeurs suivantes :
- Octet : nombres entiers compris entre 0 et 256.
- Dcimal : nombres compris entre (10281) et 10281 avec jusqu 28 dcimales.
- Entier : nombres entiers compris entre 32 768 et 32 767.
- Entier long : nombres entiers compris entre 2 147 483 648 et +2 147 483 647.
- Rel simple : nombres compris entre3,402823.1038 et 1,401298.1045 pour les valeurs ngatives et 1,401298.1045 et 3,402823.1038 pour les valeurs positives.
- Rel double : nombres allant de -1,79769313486231.10308 -4,94065645841247.10324
pour les valeurs ngatives et de +4,94065645841247.10324 +1,79769313486231.10308
pour les valeurs positives.
- N rplication : identifiant unique (GUID : squence de 32 chiffres hexadcimaux).
Date/Heure : donnes de type dates et/ou heures.
Montaire : stocke des valeurs de type montaire. Ce type de champ empche larrondi au
chiffre suprieur lors des calculs.
NumroAuto : numro squentiel (augmentant dune unit choisissez Incrment dans la proprit Nouvelles valeurs) ou alatoire (choisissez Alatoire) gnr automatiquement lors de
lajout dun enregistrement.
Oui/Non : pour les donnes qui ne peuvent prendre que deux valeurs, comme Oui/Non,
Vrai/Faux ou Actif/Inactif ( choisir dans la liste Format). Les valeurs Null ne sont pas autorises.
Objet OLE : ce type de champ permet de stocker des objets OLE (documents Word, classeurs
Excel, images, sons).
Lien hypertexte : utilisez ce type de champ pour les liens hypertexte (liens locaux ou Internet).
Assistant Liste de choix : cet assistant sert crer un champ qui permet de choisir dans une
liste droulante une valeur provenant dune autre table ou dune liste.
Les proprits suivantes sont communes (presque) tous les types de champs :
Null interdit : si cette proprit est fixe Oui, lutilisateur devra imprativement renseigner ce
champ.
Chane vide autorise (champs de type Texte et Mmo uniquement) : si cette proprit a la valeur Oui, lutilisateur peut saisir une chane vide (""), mme si les valeurs Null sont interdites.
- 13 / 29 -
Semestre 1
Quelle est la diffrence entre Null et une chane vide ? Une chane vide reprsente une information inexistante (par exemple le champ Adresse2 pour les clients qui ne sont pas concerns),
Null une information qui existe peut-tre mais qui est inconnue. En rsum :
Null interdit
Non
Non
Non
Oui
Oui
Non
Oui
Oui
Action de l'utilisateur
Touche Entre
Touche Espace
Chane vide ("")
Touche Entre
Touche Espace
Chane vide ("")
Touche Entre
Touche Espace
Chane vide ("")
Touche Entre
Touche Espace
Chane vide ("")
Valeur enregistre
Null
Null
(interdit)
Null
Null
Chane vide
(interdit)
(interdit)
(interdit)
(interdit)
Chane vide
Chane vide
Lgende : texte qui remplace le nom du champ dans les colonnes des feuilles de donnes, les
tiquettes des formulaires et des tats et pages d'accs aux donnes.
Remarques :
1. Choisissez une Taille de champ la plus petite possible car les donnes de petite taille prennent
moins de place en mmoire et sont traites plus rapidement.
2. On peut modifier la taille par dfaut des champs de type Texte et Numrique : Options Outils, onglet Tables/Requtes.
3. Si vous rduisez la taille dun champ qui contient dj des informations, vous risquez de perdre
des donnes. Il devient impossible dannuler les changements apports aux donnes la suite
dune modification de la proprit Taille du champ ds que celle-ci a enregistre.
- 14 / 29 -
Semestre 1
- 15 / 29 -
Semestre 1
La partie suprieure de cette fentre sert afficher la table ou les tables qui serviront de base la requte, avec leurs champs. Dans la partie infrieure, on trouve la grille QBE (Query By Example) qui
va nous servir crer la requte.
a.
Critres et tri
Notre objectif est de crer une requte (nomme cliNPdC) qui affiche les clients du Nord-Pasde-Calais tris par code postal, puis par nom.
29) Slectionnez la table Clients et cliquez sur Ajouter puis sur Fermer.
30) Slectionnez les champs qui devront intervenir dans la requte (pour nous, IdClient, Nom, Prnom et CodePostal).
Pour ajouter un champ, il existe plusieurs mthodes :
double-cliquez sur son nom ;
faites-le glisser de la table vers lune des colonnes de la grille QBE.
Le champ * reprsente lensemble des champs de la table.
Pour supprimer un champ, slectionnez la colonne (un clic sur len-tte) et appuyez sur Suppr.
Pour remplacer un champ dj insr dans la grille par un autre, cliquez sur son nom et slectionnez le nom du champ de remplacement dans la liste droulante.
Loption afficher (active par dfaut), indique les champs qui seront affichs dans le rsultat
de la requte. Pour masquer un champ, il suffit donc de dsactiver cette option.
31) Pour trier les enregistrements en fonction de la valeur dun champ, cliquez dans la ligne Tri en
face de celui-ci et choisissez lordre (Croissant ou Dcroissant). Il est possible de trier en fonction de plusieurs champs. Dans ce cas, lordre des cls de tri est de gauche droite ; pour dplacer un champ, slectionnez la colonne (un clic sur son en-tte pointeur ) puis saisissez lentte de la colonne et faites-le glisser vers lemplacement qui vous convient.
32) Pour slectionner les clients du Nord-Pas-de-Calais (codes postaux commenant par 59 ou 62),
cliquez dans la ligne Critres en dessous de CodePostal et saisissez 59* (sans les guillemets) puis 62* sur la ligne den dessous.
Vous pouvez aussi saisir directement sur une seule ligne lexpression Comme "59*" Ou
Comme "62*" .
La requte termine devrait ressembler ceci :
- 16 / 29 -
Semestre 1
pour visualiser
34) Crez une requte (que lon appellera liv50a100) qui extrait les livres dont le prix HT est compris entre 50 et 100 euros et les trie par prix dcroissant
Dans la ligne Critres, entrez lexpression Entre 50 Et 100 ou >=50 Et <=100 (sans les
guillemets).
Oprateurs de comparaison
Les oprateurs de comparaison utilisables dans un critre sont <, =, <>, > , <=, >= et Entre
Et
Oprateurs logiques
Les principaux oprateurs logiques sont Et, Ou, Ou_X (Ou exclusif) et Pas (ngation par
exemple le critre Pas Comme "59*" appliqu au champ CodePostal permet de trouver
tous les clients qui nhabitent pas le Nord).
Jokers
Lastrisque (*) reprsente une chane de caractres quelconque, le point dinterrogation (?) un
caractre quelconque et le dise (#) un chiffre quelconque.
Critres portant sur des champs de type texte
Pour rechercher une valeur particulire, saisissez-la (entre guillemets) ; ainsi le critre "Nord"
appliqu au champ Dpartement permet de rechercher les clients du Nord.
Appliqus un champ de type Texte, les oprateurs de comparaison portent sur lordre alphabtique ( > signifie vient aprs dans lordre alphabtique ). Ainsi le critre
<"Dupont" appliqu au champ Nom de la table Clients permet de slectionner les clients
dont le nom vient avant Dupont dans lordre alphabtique.
Le mot-cl Comme permet de rechercher les valeurs dun champ qui correspondent au modle
indiqu. Ainsi le critre Comme "S*" appliqu au champ Nom de la table Clients permet
de slectionner les clients dont le nom commence par la lettre S tandis que Comme "[AD]*" permet de slectionner les clients dont le nom a pour premire lettre A, B, C ou D.
Les fonctions Gauche(), Droite() et NbCar() fonctionnent comme sous Excel.
Les listes
La fonction In() permet de rechercher les valeurs dun champ qui appartiennent une srie
donne. Ainsi le critre In("Nord";"Pas-de-Calais") appliqu au champ Dpartement
permet de rechercher les clients du Nord-Pas-de-Calais.
Les dates
Dans un critre, les dates doivent tre encadres par des signes dise. Ainsi, le critre
#02/11/2005# appliqu au champ DateCommande permet de rechercher les commandes
passes le 2 novembre 2005.
La fonction Date() renvoie la date systme (la date actuelle, avec mise jour). Les fonctions
Anne(), Mois(), Jour(), Joursem() fonctionnent comme dans Excel.
Valeur de champ vide (Null)
Null dsigne un champ vide. Ainsi, le critre Est Null permettra de slectionner les enregistrements pour lesquels le champ slectionn na pas t renseign tandis que Est Pas
Null permet de rechercher ceux pour lesquels le champ a t complt.
ET ou OU ?
Comme dans les filtres labors dExcel, des critres se trouvant sur la mme ligne sont relis
par loprateur Et, tandis que des lignes diffrentes de la grille QBE, sont relies par Ou.
b.
Champ calcul
Dans une requte, il est possible dajouter des champs calculs partir des champs existants.
On peut saisir directement la formule mais le plus simple est dutiliser le gnrateur dexpression.
- 17 / 29 -
Semestre 1
35) Crez une requte que vous enregistrerez sous le nom livresTTC qui comprend les champs calculs TVA (la TVA sur les livres est 5,5 %), que lon mettra au format montaire, et Prix
TTC.
- Dans la fentre de base de donnes, cliquez sur Crer une requte en mode cration.
- Ajoutez la table livres puis tous ses champs (champ *)
- Dans la premire ligne de la colonne suivante, saisissez lexpression suivante :
TVA: [PrixHT]*0,055 (le nom du champ calcul suivi de : et de la formule de calcul)
Les noms de champs intervenant dans le calcul doivent tre mis entre crochets. Si vous ne
faites pas appel au gnrateur dexpression, attention aux fautes de frappe !
- Dans la premire ligne de la colonne suivante, saisissez lexpression suivante :
PrixTTC: [PrixHT]+[TVA]
(un champ calcul peut faire appel un autre champ calcul sil est affich)
- Pour modifier le format de ces deux champs, cliquez sur ceux-ci avec le bouton droit et
choisissez Proprits dans le menu contextuel :
36) Crez une requte appele clients par zone qui comprend le champ calcul Zone qui rpartit
les clients en trois zones : le Nord-Pas-de-Calais, la Rgion parisienne et le Reste de la France.
On utilisera la fonction VraiFaux (quivalente de la fonction SI de Excel), la fonction Gauche
et loprateur Ou. Vous trierez les clients par ordre alphabtique.
- 18 / 29 -
Semestre 1
Requtes oprations
Ces requtes, qui permettent deffectuer des oprations comme des comptages ou des calculs de
somme ou de moyenne, sont appeles aussi requtes de synthse ou requtes de regroupement.
37) Crez une requte appele StatsLivParAnne qui pour chaque anne ddition des livres,
permet de connatre le nombre de livre dits, le prix minimum, le prix maximum, le prix
moyen.
- Dans la fentre de base de donnes, cliquez sur Crer une requte laide de lassistant.
Choisissez la table livres, puis ajoutez les champs Datepub et PrixHT et cliquez sur
Suivant.
Cochez la case Synthse et cliquez sur le bouton Options de synthse pour cocher les
cases correspondant ce que vous dsirez obtenir :
- 19 / 29 -
Semestre 1
Remarque : on peut modifier lintitul des champs. Par exemple, cliquez avec le bouton droit
sur le champ Moyenne De PrixHT et choisissez Proprits dans le menu contextuel. Dans la
case Lgende, entrez Prix moyen HT :
39) Nous allons refaire cette requte sans laide de lassistant (vous lenregistrerez sous le nom
StatsLivParAnne2) :
- Crez une nouvelle requte en mode cration.
- Ajoutez la table livres.
- Ajoutez le champ Date Pub et quatre fois le champ PrixTTC.
- Cliquez sur le bouton
(regroupement) de la barre doutils Base de donnes.
- Dans la ligne Opration, laissez Regroupement en dessous du champ Date Pub, et choisissez Min, Max, Moyenne et Compte en dessous des quatre autres champs.
- Visualisez la requte et enregistrez-la.
- Rajoutez un champ calcul Ecart: [MaxDePrixHT]-[MinDePrixHT] et choisissez Expression dans la liste sur la ligne Oprations.
- Visualisez la requte et enregistrez-la.
- Nous souhaitons maintenant nous limiter aux livres publis aprs 1995. Pour cela, ajoutez
un champ Date Pub ; entrez >1995 dans la ligne Critres et choisissez O dans la
liste Opration. Il est inutile dafficher ce champ.
La requte termine doit ressembler ceci :
- 20 / 29 -
Semestre 1
40) Crez une requte nomme NbLivresParTranche permettant de connatre le nombre de livres
par tranches de prix HT de 25 (tranche 1 : de 0 moins de 25 , tranche 2 : de 25 moins de
50)
d.
Requtes en cascade
Au lieu de rechercher directement des donnes dans une table, une requte peut tre base sur
une autre requte. Par exemple, nous souhaitons connatre le nombre de clients par zone :
41) Crez une nouvelle requte en mode Cration et affichez la requte clients par zone. Ajoutez
les champs Zone et IdClient. Effectuez un regroupement sur le champ Zone et un comptage sur
le champ IdClient. Noubliez pas de changer la lgende du champ IdClient en Nombre de
clients. La requte complte doit ressembler ceci :
42) Enregistrez cette requte sous le nom NbCliParZone, et affichez les donnes.
e.
- 21 / 29 -
Semestre 1
Requtes paramtres
Une requte paramtre permet de saisir une (ou plusieurs) valeur(s) intervenant dans un ou
plusieurs critres au moment de lexcution de la requte (et non lors de sa conception).
46) Nous souhaitons crer une requte (nomme LivresPrixMaxi) permettant dafficher la liste des
livres dont le prix est infrieur une valeur X saisie par lutilisateur.
En regard du champ PrixHT dans la ligne Critres, saisissez <[Prix maximum :] (sans les
guillemets) :
Lors de lexcution de la requte, le texte plac entre crochets (attention ne pas utiliser un
nom de champ existant dans la requte) saffiche dans une bote de dialogue qui invite lutilisateur saisir la valeur qui le remplacera lors de lexcution :
- 22 / 29 -
Semestre 1
47) Crez une requte nomme LivresAnneX qui permet dextraire les livres dune anne spcifie par lutilisateur lors de lexcution de la requte.
48) Crez une requte nomme NbLivresParAnneDepuisX qui permet de connatre le nombre de
livres par an, depuis une anne spcifie par lutilisateur lors de lexcution de la requte.
2. Slectionner des donnes depuis plusieurs tables
Il est souvent ncessaire dextraire des donnes qui concernent plusieurs tables. On prendra
soin de vrifier que les relations qui les unissent sont pertinentes par rapport la requte (il est possible dans la requte de supprimer certaines relations et den rajouter dautres).
a.
49) Crez une nouvelle requte en mode cration et ajoutez les tables auteurs, isbn n auteur et
livre. Insrez les champs Nom (avec tri croissant) et Prnom de la table auteurs ainsi que ISBN
et Titre de la table livres.
50) Comme la liste est trs longue, nous allons permettre lutilisateur de saisir linitiale des auteurs afficher dans un champ calcul :
Remarque : on pouvait se passer du champ calcul en faisant porter comme critre sur le
champ Nom : Comme [Premire lettre de l'auteur :] & "*" .
- 23 / 29 -
Semestre 1
b.
52) A partir de cette requte, nous allons crer une nouvelle requte MontantCommandes qui calcule le montant total de chaque commande.
Crez une nouvelle requte en mode Cration et ajoutez la requte MontantDtailCommandes.
Affichez les champs NumCommande et MontantDtail.
Cliquez sur le bouton
(regroupement) de la barre doutils Base de donnes et, dans la ligne
Opration, choisissez Regroupement pour le champ NumCommande et Somme pour MontantDtail. Noubliez pas de mettre ce dernier champ au format Euro.
La requte termine doit ressembler ceci :
Remarque : nous verrons au second semestre des solutions plus rapides pour obtenir ce rsultat
dans les formulaires et les tats.
- 24 / 29 -
Semestre 1
c.
Requte de non-correspondance
Le but dune requte de non correspondance est de rechercher les enregistrements dune table
de donnes source qui ne sont lis aucun enregistrement de la table de donnes cible.
Par exemple, nous allons crer une requte nomme AuteursSansLivres qui permettra dafficher
les auteurs nayant pas crit de livre.
53) Pour pouvoir tester cette requte, ajoutez les auteurs suivants dans la table auteurs :
NumAuteur
111
112
113
Nom
Camus
Pascal
Sartre
Prnom
Albert
Blaise
Jean-Paul
Anne de naissance
1913
1623
1905
Anne du dcs
1960
1662
1980
54) Nous allons crer cette requte laide de lAssistant Requte de non correspondance (cliquez
sur le bouton
de la fentre de base de donnes. Les tapes de lassistant sont les
suivantes :
(1) Slectionnez la table auteurs.
(2) La table en relation est la table isbn - nauteur.
(3) Les champs en relation sont les champs NumAuteur des deux tables. Slectionnez donc
NumAuteur dans la table auteurs et NumAuteur dans isbn - nauteur puis cliquez sur le
bouton <=>.
(4) Indiquez que vous souhaitez afficher les champs NumAuteur, Nom et Prnom.
(5) Nommez la requte AuteursSansLivres et cliquez sur Terminer pour afficher les rsultats.
55) Passez en mode Cration pour examiner la conception de la requte et notamment la proprit
de la jointure (cliquez avec le bouton droit sur celle-ci et choisissez Proprits de la jointure
dans le menu contextuel) :
56) Construisons maintenant sans lassistant une requte de mme nature qui sera nomme ClientsSansCommande pour connatre les clients qui nont jamais pass de commandes :
- Crez une nouvelle requte en mode cration.
- Ajoutez les deux tables Clients et Commandes.
- 25 / 29 -
Semestre 1
Insrez les champs IdClient, Nom, Prnom (de la table Clients) et NumClient (de la table
Commandes).
- Modifiez les proprits de la jointure (Inclure tous les enregistrements de la table 'Clients'
et seulement ceux de la table 'Commandes' pour lesquels les champs joints sont gaux).
- Ajoutez Est Null comme critre pour le champ NumClient (il est donc inutile dafficher
ce champ !).
La requte termine devra ressembler ceci :
- 26 / 29 -
Semestre 1
Pour pouvoir distinguer si le critre [Anne d'dition] a t saisi ou pas, on ajoute un champ
calcul qui se borne reprendre la valeur de ce paramtre : Expr1: [Anne d'dition :] .
Il reste traiter les deux cas :
- le critre a t saisi (nest pas Null) et alors la Date Pub des livres doit tre gale ce paramtre.
- le critre na pas t saisi (il est Null) et alors aucun critre ne doit tre appliqu.
Attention ! Il est recommand de faire des copier/coller pour respecter la syntaxe exacte du
paramtre (en cas de faute de frappe, Access reconnatrait deux paramtres diffrents).
58) Crons maintenant une requte nomme LivresSelonPriode qui affiche les livres entre une
anne X et une anne Y saisies par lutilisateur. Si celui-ci ne saisit pas lanne de dpart, on
affichera tous les livres dits avant lanne Y ; sil ne saisit pas danne de fin, on affichera
tous les livres publis aprs lanne X ; sil ne saisit aucun paramtre, on affichera tous les
livres :
Avec deux paramtres facultatifs, le problme est un peu plus complexe puisquil faut distinguer entre quatre ventualits :
- les deux paramtres ont t saisis : le critre est Entre [Aprs lanne :] Et [Avant lanne :] ;
- seul [Aprs lanne :] a t saisi : le critre est >=[Aprs lanne :] ;
- seul [Avant lanne :] a t saisi : le critre est <=[Avant lanne :] ;
- aucun paramtre na t saisi : pas de restriction.
b.
Semestre 1
60) Crez une nouvelle requte en mode cration et ajoutez la table Clients et la requte CodePostalClientX.
Insrez les champs IdClient, Nom, Prnom et Code Postal de la table Clients.
La relation propose ne nous intresse pas. Supprimez-la et ajoutez une relation entre les deux
champs Code Postal.
Enregistrez la requte sous le nom AutresClientsDeLaVilleDeX. Vous pouvez la tester avec
Sansonner (02000) ou avec Deulisse (59000)
Remarque : si vous ne voulez pas que le client dont vous avez saisi le nom figure dans le rsultat de votre requte, ajoutez le critre <>[CodePostalClientX]![IdClient] pour le champ IdClient (utilisez le gnrateur dexpression pour viter les fautes de frappe)
Dans cette requte, le champ IdClient intervient deux fois : dans la table Clients et dans la requte CodePostalClientX. Pour lever lambigut, il faut indiquer auquel des deux on fait rfrence. Ainsi [CodePostalClientX]![IdClient] ([nom de la table/requte]![nom du champ])
renvoie au champ IdClient de la requte CodePostalClientX.
Si vous le souhaitez, vous pouvez aussi trier les clients par ordre alphabtique. La requte
termine devrait ressembler ceci :
- 28 / 29 -
Semestre 1
61) Autre exemple : nous souhaitons afficher les autres livres crits par le(s) auteur(s) dun livre
dont le n ISBN est X (on pourra tester avec le livre dont le n ISBN est 2853944603) :
- 29 / 29 -