Académique Documents
Professionnel Documents
Culture Documents
MS Access 2013 et +
Niveau 1
marcellin.brou@inphb.ci
2021-2022
Sommaire
Introduction
Généralités sur le BD
SGBD Access
Les tables
Les requêtes
Les formulaires
Les états
Bibliographie
K. M. BROU MS Access 2
2
I. Introduction
Objectifs
Apprendre les concepts de base
d’Access ;
Savoir utiliser des macros ;
Savoir programmer avec VBA ;
Savoir créer des états.
K. M. BROU MS Access 3
K. M. BROU MS Access 4
4
II. Généralités sur les BD
Exemples de BD : Quand utiliser une BD
Gestion des personnels, des Les données à gérer sont de
étudiants, des cours et des nature diverses :
inscriptions d’une université ou Exemples BD d’une Grande Ecole
d’une école ; : étudiants, cours, enseignants,
Système de réservation des salle…
places d’avion des compagnies Les données possèdent de
aériennes ; nombreux liens entres elles
Gestion des comptes des clients Exemple : un étudiant suit un
d’une société bancaire. cours, un cours est assuré par un
enseignant….
K. M. BROU MS Access 5
K. M. BROU MS Access 6
6
II. Généralités sur les BD
2.3. Cycle de vie d’une BD Implantation d’une BD
Définition Phase qui consiste à transmettre
au SGBD les caractéristiques des
Suite des phase de conception,
informations (structure des
d’implantation et d’utilisation
tables…) qu’il faut garder pour
d’une BD.
assurer la gestion de l’entreprise.
Conception d’une BD On utilise un Langage de
Le premier problème à résoudre Description de Données (LDD).
dans la conception d’une BD est Après la description des données,
de déterminer les informations suit a la saisie des données.
qu’il conviendra de mettre dans la
BD.
Phase d’analyse qui aboutit à
déterminer le futur contenu de la
base.
K. M. BROU MS Access 7
K. M. BROU MS Access 8
8
II. Généralités sur les BD
La manipulation du modèle Démarche de création du MLDR
relationnel nécessite un langage
Schéma conceptuel
de manipulation exprimant les Niveaux Conceptuel
K. M. BROU MS Access 9
10
III. SGBD Access
Donner un nom à la nouvelle)
BD (ex BDGSF2016.accdb et
choisir son répertoire de
destination.
1 Cliquer sur le bouton Créer.
K. M. BROU MS Access 11
11
Etats Modules
K. M. BROU MS Access 12
12
III. SGBD Access
Table : Etats :
Les données d'une BD structurées Ils servent à analyser et à
en enregistrements sont imprimer les données stockées
réparties entre plusieurs dans les tables ou les requêtes.
contenants appelés tables ; Macros :
chaque relation est représentée Commandes permettant
par une table (extension d'une d'automatiser certaines tâches
relation). (ex. création et impression de
Formulaire : bons de livraison et de factures).
Interface de visualisation ou de Modules :
saisie de données dans les tables. Procédures permettant
Requête : d'automatiser certaines tâches
Elles permettent de rechercher et plus complexes non réalisables
de récupérer les données avec les macros.
stockées sans les tables
répondant à certains critères.
K. M. BROU MS Access 13
13
14
IV. Les tables
4.2. Modèle Logique de Règle 2 : Association de type 1:n
Données Relationnelle (relation de type père-fils)
Le père est du côté de la
MLDR cardinalité max n et le fils du côté
Règles de passage de la cardinalité max 1.
Tableau de conversion L’identifiant du père et les
Entité Relation propriétés de l’association
Propriété de l’entité attribut de la relation migrent chez le fils.
Identifiant de l’entité Clé primaire de la relation
Entité1 : père Entité2 : fils
Règle1 : chaque entité devient E1 E2
une relation. a1e1 x, n A x, 1 a1e2
a2e1 a1a a2e2
L’identifiant de l’entité est la clé
de la relation. x = 0 ou 1
Entité
Relation E1(a1e1, a2e1)
E1 Relations
E1(a1e1, a2e1) E2(a1e2, a2e2, #a1e1, a1a)
a1e1
a2e1
K. M. BROU MS Access 15
15
16
IV. Les tables
Règle 5 : Association de type
Relations
1:1
E1(a1e1, a2e1, #a1e2, a1a)
E2(a1e2, a2e2)
Entité1 Entité2 ou
E1(a1e1, a2e1)
E1 E2 E2(a1e2, a2e2, #a1e1, a1a)
1, 1 A 1, 1
a1e1 a1e2 ou
a1a
a2e1 a2e2 E1(a1e1, a2e1, #a1e2, a2e2, a1a)
ou
E2(a1e2, a2e2, #a1e1, a2e1, a1a)
Entité1 Entité2
Relations
E1 E2
1, 1 A 0, 1 E1(a1e1, a2e1, #a1e2, a1a)
a1e1 a1e2
a1a E2(a1e2, a2e2)
a2e1 a2e2
Relations
Entité1 Entité2
E1 0, 1 E2 E1(a1e1, a2e1)
A 0, 1
a1e1 a1e2 E2(a1e2, a2e2)
a1a
a2e1 a2e2 A(#a1e1,#a1e2, a1a)
K. M. BROU MS Access 17
17
K. M. BROU MS Access 18
18
IV. Les tables
Exercice : La bibliothèque Faire un schéma
entité/association en
On considère la gestion d’une bibliothèque universitaire
contenant des renseignements sur : considérant
Des ouvrages : possédant les attributs numéro d’ouvrage, titre, 1. Le cas où il n’y a qu’un seul
date de parution, nom d’éditeur ;
Des auteurs (d’ouvrages) : reconnus par leur nom, leur(s) exemplaire par ouvrage ;
prénom(s), leur nationalité ; 2. Le cas où il existe plusieurs
Des étudiants empruntant ces ouvrages : numéro d’étudiant,
exemplaires par ouvrage ;
nom, prénom(s), adresse, diplôme préparé ;
Des prêts consentis (aux étudiants) : date d’emprunt, de 3. Le cas où la bibliothèque
retour, numéro d’étudiant emprunteur et numéro d’ouvrage s’intéresse aux éditeurs aussi.
emprunté.
La bibliothèque impose à chaque étudiant de ne pas pouvoir
emprunter plus de 3 livres à la fois. Cela signifie que s’il a déjà
des livres en prêt (non rendus) il ne peut emprunter que le
complément à 3, et s’il n’a pas de livre en prêt, il ne peut
emprunter en même temps que 3 au maximum.
La bibliothèque signale qu’un livre peut être écrit par plusieurs
auteurs.
K. M. BROU MS Access 19
19
20
IV. Les tables
4.2. Création de la table client Onglet CREER
Fermer la fenêtre affichée Renferme toutes les commandes
de création des objets d’Access.
Cliquer sur l’icône Fermeture
Cliquer sur l’onglet CREER
21
1
Liste des
propriétés
du champ
sélectionné 2
22
IV. Les tables
Chaque champ est spécifié sur 3. Taper dans la colonne
une ligne du tableau. « Description » un commentaire
explicatif sur le champ
Pour chaque champ, répéter les
(facultatif).
opérations suivantes :
4. Préciser les différentes
1. Taper le nom du champ dans la
propriétés du champ (partie
première colonne (Nom du inférieure de la fenêtre).
champ)
1. Les propriétés sont :
2. Cliquer dans la zone « Type de
données » et choisir un des
types proposés dans la liste
déroulante
Texte, Mémo, Numérique,
Date/Heure, Monétaire,
NuméroAuto, Oui/Non, Objet
OLE, Lien hypertexte, Assistant
liste de choix.
K. M. BROU MS Access 23
23
24
IV. Les tables
NB :
Eviter les espace et lettres
accentuées dans le nom des
tables et des attributs.
Sauvegarder la table
Cliquer sur l’icône Enregistrer
25
K. M. BROU MS Access 26
26
IV. Les tables
Remarque
Pour la table DetailCom,
sélectionner les deux lignes
numCom et numProd avant de
cliquer sur l’icône « Clé
primaire »
K. M. BROU MS Access 27
27
K. M. BROU MS Access 28
28
IV. Les tables
Ouvrir la table client en mode
création
Dérouler la liste « Indexé » et
sélectionner « Oui-Sans
doublon »
Enregistrer et fermer les tables
ouvertes
K. M. BROU MS Access 29
29
30
IV. Les tables
Création des relations
Cliquer sur l’onglet « OUTIL DE
BASE DE DONNEES »
1
2
Icône
relation
K. M. BROU MS Access 31
31
K. M. BROU MS Access 32
32
IV. Les tables
K. M. BROU MS Access 33
33
De même Enregistrer
Glisser le champ numCom de la
table Commande sur numCom de
la table DetailCom.
Glisser le champ numProd de la
table Produit sur numProd de la
table DetailCom.
K. M. BROU MS Access 34
34
IV. Les tables
Modification d’une relation
Cliquer sur la relation
Cliquer sur l’onglet « CRÉER » ,
puis sur l’icône « Modifier des
relations »
Ou clic droit sur la
relation/Modifier la relation
2
3 Cocher les options désirées
K. M. BROU MS Access 35
35
K. M. BROU MS Access 36
36
IV. Les tables
4.4. Saisie des données dans
les tables
Double cliquer sur la table Client
ou faire un clic droit sur la table
Client et sélectionner Ouvrir
Saisir les enregistrements
suivants :
Client
numCl nom adresse tel fax email numCId
1 Toto Yakro 30642020 30642020 toto@yahoo.fr C001
2 Frotomougou Abidjan 22343434 22343434 C002
3 Koffi Adjoua Bouaké 30636565 30636565 C003
4 Seri Daloa 34343434 34343434 seri@gmail.com C004
5 Koffi Yakro 0 0 C005
K. M. BROU MS Access 37
37
K. M. BROU MS Access 38
38
IV. Les tables
Double cliquer sur la table
CarteIdentie
Saisir les enregistrements
suivants :
CarteIdentite
numCId nom dateNais lieuNais Taille dateDebut dateFin
C001 Toto 21/04/1962 Paris 188 30/04/2016 29/04/2026
C002 Frotomougou 25/04/1962 Yakro 159 30/04/2016 29/04/2026
C003 Koffi Adjoua 31/01/1965 Yakro 178 03/07/2014 02/07/2024
C004 Seri 14/06/1998 Tipatipa 120 30/04/2016 29/04/2026
C005 Koffi 22/05/1996 Man 165 10/03/2015 09/03/2025
K. M. BROU MS Access 39
39
K. M. BROU MS Access 40
40
IV. Les tables
De même, saisir dans les tables DetailCom
Commande et DetailCom les numCom numProd qteCom
enregistrements suivants : 1 1 10
1 2 4
Commande
2 2 3
numCom dateCom numCl
3 1 2
1 13/11/2014 1
3 2 6
2 12/05/2014 1
3 3 3
3 13/11/2014 1
4 2 7
4 15/05/2015 2
5 18/05/2015 2 5 2 3
6 18/11/2015 3 5 3 6
7 05/04/2015 3 6 2 1
8 06/05/2016 3 7 3 5
9 06/05/2016 4 8 2 8
10 12/05/2016 4 9 1 3
10 2 4
K. M. BROU MS Access 41
41
V. Les requêtes
5.1. Présentation Deux façons de créer les
Une requête permet de requêtes :
rechercher des enregistrements mode graphique : Access fournit
répondant à certains critères et une interface de type QBE (Query
By Example) permettant de créer
d'en établir la liste.
des requêtes de façon visuelle ;
Une requête peut contenir une mode SQL : saisie directe des
ou plusieurs tables. commandes SQL.
Toute modification dans une de
ces tables est automatiquement
répercutée sur la requête.
C'est la raison pour laquelle les
requêtes sont appelées feuille de
réponse dynamique (Dynaset).
K. M. BROU MS Access 42
42
V. Les requêtes
Interface de requêtes
Cliquer sur l’onglet Créer
Création
de
requêtes
K. M. BROU MS Access 43
43
V. Les requêtes
Langage SQL : Structured Query Intègres plusieurs niveaux de
Language langage :
Langage ensembliste non Langage de Définition des
procédurale pour la manipulation Données (LDD) : ALTER,
d’une BD relationnelle. CREATE, DROP
Basé sur l'algèbre relationnelle. Langage d’Interrogation de
Inventé par IBM en 1982. Données (LID) : SELECT
Il a fait l’objet de plusieurs Langage de Modification de
normes ANSI/ISO depuis 1987. Données (LMD) : UPDATE,
INSERT, DELETE
La norme la plus répandue est
SQL2 définie en 1992. Langage de Contrôle des Données
et des utilisateurs (LCD) :
GRANT, REVOKE
K. M. BROU MS Access 44
44
V. Les requêtes
Le Langage d’Interrogation de
Données (LID) Consiste à
rechercher des données
contenues dans des tables.
Syntaxe :
K. M. BROU MS Access 45
45
V. Les requêtes
5.2. Requêtes sélection Exemple 1 : Extension d’une table
(toutes les colonnes)
Consultation simple
Requête 1 : Liste de tous les
Syntaxe clients
SELECT ListeDeSélection
FROM ListeDeTable; SELECT *
FROM Client;
ListeDeSélection : permet de
spécifier les colonnes à visualiser.
Les noms de colonnes seront
séparées par une virgule.
ListeDeTable : permet de
spécifier le nom de la table qui
contient les données à
sélectionner.
K. M. BROU MS Access 46
46
V. Les requêtes
Cliquer sur l’icône « Création de Cliquer la table Client et cliquer
requêtes » sur le bouton Ajouter
Cliquer su le bouton Fermer
K. M. BROU MS Access 47
47
V. Les requêtes
Exécuter
Représente
tous les
champs
48
V. Les requêtes
On a toutes les données de la
table Client
Enregistr
er Enregistrer la requête sous le
nom : RListeClient1
Cliquer l’icône Enregistrer et
saisir RListeClient
K. M. BROU MS Access 49
49
V. Les requêtes
Visualiser le code SQL généré de
RListeClient1
Dérouler la liste « Affichage »
Icône Affichage
50
V. Les requêtes
Remarque : une requête peut
être :
Renommer
Modifier
Réexécuter
Supprimer
SELECT Client.*
FROM Client;
K. M. BROU MS Access 51
51
V. Les requêtes
Exemple 2 : limiter le nombre de Créer une nouvelle requête basée
colonnes sur la table Client
Dans la pratique, il est rare que Double cliquer sur les champs
l'on souhaite avoir toutes les numCl, nom et adresse
colonnes d'une table, on se limite
le plus souvent à des colonnes.
Syntaxe
SELECT attribut1, attribut2, …
FROM nomTable;
K. M. BROU MS Access 52
52
V. Les requêtes
Exécuter la requête
Fermer la requête
K. M. BROU MS Access 53
53
V. Les requêtes
Exemple 3 : Projection Créer une nouvelle requête
Suppression de certaines basée sur la table Client
colonnes avec élimination des Double cliquer sur les champs
enregistrements en double.
adresse
On utilise la clause DISTINCT
Exécuter la requête (1)
Syntaxe
Passer en mode SQL et
SELECT DISTINCT attribut1, attribut2, …
FROM nomTable; ajouter DISTINCT après le
SELECT (2)
Requête 3 : Liste de toutes les
villes Exécuter la requête (3)
Sélection avec des doublons
SELECT adresse
FROM Client;
Sélection sans doublons
SELECT DISTINCT adresse
FROM Client;
K. M. BROU MS Access 54
54
V. Les requêtes
doublon
3
2
1
K. M. BROU MS Access 55
55
V. Les requêtes
Consultation avec restriction Opérateurs de comparaison
En général, les requêtes ne Opérateur Signification
portent pas sur la totalité d'une = égalité
table, seules quelques lignes sont <> différence
<, <=, >, >= infériorité et supériorité
sélectionnées selon une certaine IS NULL teste si le contenu d'une
condition (restriction). cellule est nulle
IN(liste_de_valeur) égalité à un élément d'une
Cette condition s'exprime dans la
liste
clause WHERE. BETWEEN x AND y comparaison par rapport à un
Syntaxe intervalle de valeurs
EXIST existence d'une ligne de
SELECT col1, col2, coln Syntaxe de la condition résultats
FROM table attribut opérateur valeur NOT, OR, AND : opérateurs logiques
WHERE conditions; LIKE chaîne générique égalité à une sous-chaîne
dans la valeur d'un champ
K. M. BROU MS Access 56
56
V. Les requêtes
Remarque exp désigne une expression qui
On peut avoir également la peut être :
négation de ces opérateurs : un nom de colonne
IS NOT NULL, NOT IN, NOT une constante numérique ou
BETWEEN, NOT LIKE caractère
Condition une pseudo colonne
exp opérateurRelationnel exp
une valeur nulle
exp (NOT] BETWEEN exp AND exp ou une combinaison de ces
exp [NOT] IN (listeDeValeurs) éléments par des opérateurs
colonne [NOT] LIKE "chaîne"
colonne IS [NOT] NULL logiques.
K. M. BROU MS Access 57
57
V. Les requêtes
Exemple 1 : Restriction simple
Requête 4 : Liste des clients
de Yakro.
Tous les clients ont été
sélectionnés dans la requête
2. Colonne
Ici, on souhaiterait avoir
uniquement les clients de
Yakro.
Ligne
SELECT numCl, nom, adresse
FROM Client
WHERE adresse = 'Yakro';
58
V. Les requêtes
Requête 5 : Liste des produits
dont la quantité en stock est
inférieure à 15.
SELECT numProd, designation, qteStock
FROM Produit
WHERE qteStock <= 15;
K. M. BROU MS Access 59
59
V. Les requêtes
60
V. Les requêtes
Exemple 2 : Requête paramétrée
La valeur de la condition est une
variable
Requête 6 : Liste des clients
d’adresse x
Utilisation d’une variable comme
adresse du client
Créer une nouvelle requête basée
sur la table Client
Ajouter les champs numCl, nom
et adresse
Taper dans la zone Critère du Exécuter la requête
champ adresse Saisir l’adresse désirée et cliquer
su Ok
=[Entrez l’adresse du client]
K. M. BROU MS Access 61
61
V. Les requêtes
Enregistrer la requête sous le
nom RListeClient4
Visualiser le code SQL généré
Fermer la requête
K. M. BROU MS Access 62
62
V. Les requêtes
Le prédicat LIKE ESCAPE :
Permet de réaliser une Permet d'identifier un caractère
comparaison entre la valeur de la comme une séquence escape.
colonne et celle d’une chaîne en Ceci est surtout utilisé pour
utilisant des caractères permettre l'utilisation des
génériques de substitution. caractères génériques comme des
Syntaxe caractères littéraux.
colonne [NOT] LIKE "chaine" Si la séquence d'escape est
[ESCAPE 'c'] définie par la caractère "\" alors
"\_" signifie que le souligné est
une donnée et non pas un
caractère générique.
NB : Dans Access version
française LIKE = Comme
K. M. BROU MS Access 63
63
V. Les requêtes
Les caractères génériques Remarque
Utilisés dans des requêtes et des Les caractères génériques
expressions pour inclure tous les peuvent être considérés comme
enregistrements, dont l'intitulé des caractères ordinaires dans
commence par certains une expression uniquement s'ils
caractères ou correspond à une sont entourés de crochets.
séquence particulière.
Symbole Utilisation Exemple
* un nombre quelconque de Wh* trouve what, white et why,
caractères et peut être *at trouve cat, bat et what
placé en tout point de la
chaîne de caractères.
? un seul caractère. B?ll trouve ball, bell et bill
# un seul chiffre. 1#3 trouve 103, 113, 123
[] un seul caractère parmi b[ae]ll trouve ball et bell mais
ceux indiqués entre pas bill
crochets.
! tout caractère ne figurant b[!ae]ll trouve bill et bull mais
pas entre crochets. pas bell ni ball
- l'un des caractères de la b[a-c]d trouve bad, bbd et bcd
plage indiquée.
K. M. BROU MS Access 64
64
V. Les requêtes
Exemple 1 : Clients (numCl, nom Exemple 3 : Clients (numCl, nom
et adresse) dont le nom se et adresse) dont le 2ème caractère
termine par "to". du nom est r.
SELECT numCl, nom, adresse
FROM Client SELECT numCl, nom, adresse
WHERE nom LIKE '*to'; FROM Client
WHERE nom LIKE '?r*';
K. M. BROU MS Access 65
65
V. Les requêtes
5.3. Requêtes jointures
Une jointure permet de
récupérer dans une requête des
données disséminées dans deux
tables
C’est un lien entre deux tables
disposant d'au moins une colonne
commune (clé étrangère).
L'opération de jointure consiste
à créer une table temporaire
composée de lignes satisfaisant
la condition de jointure.
C’est en fait un produit cartésien
avec une restriction.
K. M. BROU MS Access 66
66
V. Les requêtes
Syntaxe listeDeTables : composée des
noms de tables à partir
SELECT listeDeSélection
FROM listeDeTables
desquelles les données sont
WHERE condition; extraites.
les noms de tables sont séparées
listeDeSélection : composée des par une virgule.
colonnes que l'on veut voir
La condition de recherche peut
apparaître dans la jointure.
être une liste de comparaisons
Les noms des colonnes peuvent simples conduisant à un produit
être précédées des noms des cartésien ou à une liste de
tables ou d’alias lorsqu'il y a comparaison entre les colonnes
ambiguïté. de différentes tables produisant
une jointure.
K. M. BROU MS Access 67
67
V. Les requêtes
Exemple 1 :
Requête 5 : Liste des clients
(numCl, nom, adresse) avec leur
commande (numCom, dateCom).
Requête impliquant deux tables :
Client et Commande
SELECT cl.numCl, nom, adresse, numCom, dateCom
FROM Client cl, Commande cd
WHERE cl.numCl = cd.numCl;
68
V. Les requêtes
SELECT Client.numCl, Client.nom, Client.adresse,
Commande.numCom, Commande.dateCom
FROM Client INNER JOIN Commande ON
Client.numCl = Commande.numCl;
Fermer la requête
K. M. BROU MS Access 69
69
V. Les requêtes
Requête 6 : Liste des clients Créer une nouvelle requête
(numCl, nom, adresse), numCom, Ajouter les tables : Client,
dateCom, qteCom, désignation et Commande, DetailCom et Produit
prixUnit des produits qu’ils ont
Ajouter les champs : numCl,
commandés.
nom, adresse, numCom,
Requête impliquant toutes les dateCom, numProd, designation,
tables prixUnit, qteCom
K. M. BROU MS Access 70
70
V. Les requêtes
71
V. Les requêtes
Visualiser le code SQL généré
Fermer la requête
K. M. BROU MS Access 72
72
V. Les requêtes
5.4. Tri des résultats A l’intersection de la ligne « Tri »
et la colonne « nom »
Par ordre croissant (ASC) ou sélectionner « Croissant »
décroissant (DESC).
Syntaxe :
ORDER BY expression [ASC |
DESC]
Exemples
Colonne
Exemple 1 : Donner la liste des
noms de clients par ordre
alphabétique croissant.
Ligne
SELECT numCl, nom ou SELECT numCl, nom
FROM Client FROM Client
ORDER BY nom ; ORDER BY nom ASC;
73
V. Les requêtes
Visualiser le code SQL généré.
Enregistrer la requête :
RListeClientTri1
Fermer la requête
K. M. BROU MS Access 74
74
V. Les requêtes
Exemple 2 : Donner la liste des Exécuter la requête
noms de clients par ordre
alphabétique décroissant.
SELECT numCl, nom
FROM Client
ORDER BY nom DESC ;
Enregistrer la requête :
RListeClientTri2
Fermer la requête
K. M. BROU MS Access 75
75
V. Les requêtes
5.5. Requêtes action Requête 1 : On veut ajouter +8 à
Permette de mettre à jours des la quantité en stock 10 du
données ou de créer de nouvelles produit sardine.
colonnes résultant d'opération UPDATE Produit
de calculs sur les autres SET qteStock = qteStock + 8
WHERE designation = 'Sardine'
colonnes.
Syntaxe
UPDATE table
SET colonne = exp, ...
[ WHERE condition ]
K. M. BROU MS Access 76
76
V. Les requêtes
Créer une nouvelle requête basée Exécuter la requête pour voir les
sur la table Produit quantité en stock avant la mise à
Ajouter les champs : numProd, jour
designation, qteStock
K. M. BROU MS Access 77
77
V. Les requêtes
Saisir [qteStock]+8 à
l’intersection de la ligne « Mise à
jour" et de la colonne qteStock
Saisir "Sardine" dans la zone
Icône Mise
à jour
Critère du champ designation
Exécuter la requête
78
V. Les requêtes
Vérifier le résultat dans la table Visualiser le code SQL généré
Produit
UPDATE Produit SET Produit.qteStock = [qteStock]+8
WHERE (((Produit.designation)="sardine"));
Remarque : l’exécution de la
requête ne marche pas
79
V. Les requêtes
Remarque : l’exécution de la
requête ne marche pas
Cliquer sur Option
Activer le contenu
K. M. BROU MS Access 80
80
V. Les requêtes
Requête 2 : Calculs des montants
hors taxe.
Ouvrir la requête
RCommandeClient en mode
création
Enregistrer la sous le nom
RMontantHT
K. M. BROU MS Access 81
81
V. Les requêtes
Cliquer dans le champ vide après
PrixUnit et taper l'expression
suivante :
montant : qteCom * prixUnit
K.Exécuter
M. BROU
la requête MS Access 82
82
V. Les requêtes
Visualiser le code SQL généré
SELECT Client.numCl, Client.nom, Client.adresse,
Commande.numCom, Commande.dateCom, Produit.numProd,
Produit.designation, Produit.prixUnit, DetailCom.qteCom,
[prixUnit]*[qteCom] AS montant
FROM Produit INNER JOIN ((Client INNER JOIN Commande ON
Client.numCl = Commande.numCl) INNER JOIN DetailCom ON
Commande.numCom = DetailCom.numCom) ON Produit.numProd
= DetailCom.numProd;
Fermer la requête
K. M. BROU MS Access 83
83
V. Les requêtes
5.4. Requêtes SQL spécifiques Requête SQL direct
Requête Union Envoie des commandes
directement à des BD ODBC telles
Combine des champs (colonnes)
que Microsoft SQL Server, en
issus d'une ou plusieurs tables ou
utilisant des commandes
requêtes en un champ ou une
reconnues par le serveur.
colonne dans les résultats de la
requête. Exemple : utiliser une requête
directe pour récupérer des
Exemple : union de la table
enregistrements ou modifier des
AncienProduit et nouveauProduit
données.
pour créer la table Produit.
Requête Définition des données
Crée ou modifie des objets BD,
tels que des tables
Microsoft Access ou Microsoft SQL
Server.
K. M. BROU MS Access 84
84
V. Les requêtes
Sous-requête Utiliser les sous-requêtes pour :
Constituée d'une instruction SQL Tester l'existence de certains
SELECT contenue dans une autre résultats à partir de la sous-
requête de sélection ou dans une requête (en utilisant les mots
requête action. réservés EXISTS ou NOT
Instructions a mettre dans la EXISTS).
ligne Champ de la grille de Rechercher les valeurs contenues
création de la requête afin de dans la requête principale, qui
définir un nouveau champ ou sont égales, supérieures ou
dans la ligne Critères afin de inférieures aux valeurs renvoyées
définir les critères d'un champ. par la sous-requête (en utilisant
les mots réservés ANY, IN ou
ALL).
Créer des sous-requêtes dans les
sous-requêtes (sous-requêtes
imbriquées).
K. M. BROU MS Access 85
85
V. Les requêtes
Exemple : Commandes du client
de nom Toto
Créer une nouvelle requête basée
sur la table commande
Ajouter tous les champs
Saisir la sous-requête suivante
dans la zone Critère du champ
numCl :
K. M. BROU MS Access 86
86
V. Les requêtes
Exécuter la requête Visualiser la requête
SELECT Commande.numCom, Commande.dateCom,
Commande.numCl
FROM Commande
WHERE (((Commande.numCl)=(select numCl from
Client where nom='Toto')));
Enregistrer (RSousRequete) et
fermer la requête
K. M. BROU MS Access 87
87
V. Les requêtes
5.5. Création de requêtes en
mode SQL
Créer une requête en utilisant
directement les ordres SQL
Exemple : liste des clients de
Yakro
Créer une nouvelle requête
Fermer la fenêtre "Ajout de
tables" sans ajouter une table
K. M. BROU MS Access 88
88
V. Les requêtes
Dérouler le menu Affichage et Visualiser la requête graphique
sélectionner "SQL Mode SQL" générée
Saisir la requête suivante Icône Affichage/Mode Création
SELECT numCl, nom, adresse
FROM Client
WHERE adresse=‘Yakro’;
Enregistrer (RListeClient5) et
Exécuter la requête fermer la requête
K. M. BROU MS Access 89
89
V. Les requêtes
Schéma relationnel avec le LDD Requête Nom de la requête
CREATE TABLE Client2 RTClient2
d'ACCESS (numCl LONG NOT NULL, nom
Chaque requête doit être TEXT(20), adresse TEXT(30), tel
LONG, fax LONG, email TEXT(20) );
exécutée et enregistrée dans un CREATE TABLE Produit2 RTProduit2
fichier différent. (numProd LONG NOT NULL,
Créer une nouvelle BD appelée designation TEXT(15), prixUnit
REAL, qteSock SHORT );
GSF20112.accdb CREATE TABLE Commande2 RCommande2
Créer les requêtes suivantes : (numCom LONG NOT NULL,
dateCom DATE, numCl LONG );
Création de tables CREATE TABLE DetailCom2 RDetailCom2
(numCom LONG NOT NULL,
numProd LONG NOT NULL, qteCom
SHORT);
K. M. BROU MS Access 90
90
V. Les requêtes
Contraintes d’intégrités : clés
primaires et clés étrangères
Requête Nom de la requête
ALTER TABLE Client2 ADD CONSTRAINT Clients2_PK RCIClient2PK
PRIMARY KEY (numCl);
ALTER TABLE Produit2 ADD CONSTRAINT Produit2_PK RCIProduit2PK
PRIMARY KEY (numProd);
ALTER TABLE Commande2 ADD CONSTRAINT RCICommande2PK
Commande2_PK PRIMARY KEY (numCom);
ALTER TABLE DetailCom2 ADD CONSTRAINT RCIDetailCom2PK
DetailCom2_PK PRIMARY KEY (numCom, numProd);
ALTER TABLE Commande2 ADD CONSTRAINT RCIComClient2FK
Commande2_Client2_FK FOREIGN KEY (numCl)
REFERENCES Client2 (numCl);
ALTER TABLE DetailCom2 ADD CONSTRAINT RCIDetailComComFK
DetailCom2_Commande2_FK FOREIGN KEY (numCom)
REFERENCES Commande2 (numCom);
ALTER TABLE DetailCom2 ADD CONSTRAINT RCIDetailComProdFK
DetailCom2_Produit2_FK FOREIGN KEY (numProd)
REFERENCES Produit2 (numProd);
K. M. BROU MS Access 91
91
V. Les requêtes
Insertion dans les table
Requête Nom de la requête
INSERT INTO Client2 VALUES(1, ‘Toto’, ‘Yakro’, RI1Client2
30642020, 30642020, ‘toto@yahoo.fr’);
INSERT INTO Client2 VALUES(2, 'Frotomougou', RI2Client2
'Abidjan', 22343434, 22343434,'');
K. M. BROU MS Access 92
92
VI. Les formulaires
6.1. Présentation
Permettent de rendre plus
agréables la présentation et la
saisie des données dans les
tables.
Deux façons de créer les
formulaires :
Création automatique
Création à l’aide de l’Assistant
formulaire.
K. M. BROU MS Access 93
93
Enregistrer et fermer le
formulaire
K. M. BROU MS Access 94
94
VI. Les formulaires
Dérouler la liste "Tous les
objets d’Access" et sélection
"Type d’objet"
K. M. BROU MS Access 95
95
Sélectionner tous
les champs
K. M. BROU MS Access 96
96
VI. Les formulaires
Sélectionner la table Produit Cliquer sur le bouton Suivant
dans la liste déroulante choisir une disposition et cliquer
Sélectionner les champs qui sur le bouton Suivant.
doivent apparaître dans le
formulaire
97
K. M. BROU MS Access 98
98
VI. Les formulaires
99
100
VI. Les formulaires
Procéder de même pour créer le
formulaires associé à la table
DetailCom.
101
Formulaire
en mode
création
102
VI. Les formulaires
Mise en forme des étiquettes et Sélectionner toutes les
zones de saisie étiquettes.
Cliquer deux fois sur l'étiquette Choisir la police Algerian, Gras,
numProd et remplacer le contenu Taille 12 et couleur rouge
par Numéro.
103
104
VI. Les formulaires
Mise en forme des entêtes et
pieds de formulaire
Cliquer deux fois dans l’étiquette
de l’entête de formulaire et saisir
: Formulaire Produit.
Choisir la police Algerian, Gras,
Taille 16 et couleur rouge
105
106
VI. Les formulaires
Agrandir le pied de formulaire Icône de mise
d'environ 1 cm. en relief
107
Enregistrer et fermer le
formulaire Produit.
K. M. BROU MS Access 108
108
VI. Les formulaires
Formulaire Client Faire formulaire Commande
109
110
VI. Les formulaires
TP noté BD GestNotes
Soient les tables suivantes et
leurs extensions :
Classe(codeCl, nomCl, effectif)
Etudiant(matricule, nomE,
adresse, #codeCl)
Matiere(codeMa, nomM, coeff)
Composer(#matricule, #codeMa,
note)
Créer la BD ci-dessus
111
112
Bibliographie
Livres "Base de données, les systèmes
"Modélisation dans la conception et leurs langages", G.
des systèmes d’information", GARDARIN, Edition Eyrolles.
Edition Masson. "Système d’information et base
"Les fichiers et organisation des de données", GALACSI, Bordas
données", C. JOUFFROY, Informatique.
C.LEITANG, Bordas Informatique.
"Base de données et systèmes
relationnels", C. DELOBEL, M.
ADIBA, Dunod Informatique.
"Les bases de données
relationnelles", Serge MIRANDA,
José Maria BUSTA.
113
Bibliographie
Webogaphie
http://www.infres.enst.fr/~dom
bd/polyv7/
http://lbdwww.epfl.ch/f/teachi
ng/courses/poly2/11/11.htm
Cours de
Yolaine.Bourda@supelec.fr
Cours de Mme Silber
cours@www-aius.u-strasbg.fr
114