SlideShare une entreprise Scribd logo
1  sur  99
Télécharger pour lire hors ligne
Les Bases de Données
Le modèle relationnel et le SGBD MS Access
Année académique 2014 - 2015
Ce document est un support de cours destiné aux étudiants de 2e année en BTS IDA
Modèle relationnel et MS Access 2007 P a g e | 2 2e
année IDA
Table des matières
Première partie : Le modèle relationnel Pages
Chapitre 1 : Les caractéristiques du modèle relationnel 8
1. Présentation du modèle relationnel 8
2. Définition du modèle relationnel 8
3. Les concepts du modèle relationnel 8
3.1. La relation 8
3.2. La notion de table 8
3.3. Les colonnes et les lignes d’une table 9
3.4. La clé primaire 9
3.5. La clé secondaire 9
3.6. Les types des liens 9
3.7. Passage du modèle entité association au modèle relationnel 9
3.7.1. L’entité 9
3.7.2. Les associations de type 1-N 9
3.7.3. Les associations de type M-N 10
3.7.4. Exemple de passage 10
Chapitre 2 : L’algèbre relationnelle 11
1. Notion sur l’algèbre relationnelle 11
2. Définition de l’algèbre relationnelle 11
3. Les concepts de base de l’algèbre relationnelle 11
3.1. La relation 11
3.2. L’opération 11
3.2.1. Les opérateurs relationnels 12
3.2.2. Les opérateurs ensemblistes 12
4. Les requêtes 12
Chapitre 3 : La mise en œuvre des concepts 13
1. Les opérateurs relationnels 13
1.1. La sélection 13
1.2. La projection 13
1.3. La jointure 13
1.4. Les fonctions d’agrégat et le tri 13
2. Les opérateurs ensemblistes 14
2.1. L’union 14
2.2. L’intersection 14
2.3. La différence 14
2.4. La division 14
2.5. Le produit cartésien 14
Modèle relationnel et MS Access 2007 P a g e | 3 2e
année IDA
Chapitre 4 : Travaux dirigés et exercices 15
Deuxième partie : Le SGBD MS Access Pages
Chapitre 1 : Présentation de Microsoft Access 21
Chapitre 2 : Les concepts de base 23
1. La table 23
2. La requête 23
3. Le formulaire 24
4. L’état 24
5. La macro 25
6. Le module 25
Chapitre 3 : Les tables 26
1. Préliminaires : création d’une base de données 26
2. La création d’une table 26
2.1. La définition de la structure des tables 26
2.2. Création d’une table « Agent » 27
2.3. Création d’une table « Véhicule » 28
2.4. Les manipulations à maitriser 29
3. Les autres modes de création d’une table 29
3.1. Création avec les modèles de tables 29
3.2. Le mode table 30
3.3. Le mode ListeSharePoint 30
Chapitre 4 : Les relations entre tables 31
1. Les clés primaires et les clés étrangères 31
2. Les index 31
3. L’établissement des relations entre tables 32
4. Les règles d’intégrité 32
5. Les manipulations sur les relations 34
Chapitre 5 : Les requêtes et le langage SQL 35
Introduction aux requêtes 35
1. Les notions sur les requêtes 35
1.1 Définition d’une requête 35
1.2 Les menus de requêtes 35
1.3 Les différents types de requêtes 36
2. Le langage SQL 36
2.1. Définition du SQL 36
2.2. Les subdivisions du SQL (DDL, DML, DCL, TCL, SQL Embedded) 36
Modèle relationnel et MS Access 2007 P a g e | 4 2e
année IDA
3. Les requêtes de sélection : la commande SELECT 37
3.1. Définition 37
3.2. syntaxe 37
3.3. Le verbe SELECT et ses opérateurs 37
3.3.1. Les opérateurs de SELECT 37
3.3.2. L’opérateur Etoile * 37
3.3.3. L’opérateur DISTINCT 37
3.3.4. L’opérateur AS 38
3.3.5. L’opérateur ALL 38
3.4. La Clause WHERE 38
3.4.1. Syntaxe générale 38
3.4.2. Les critères de sélection 38
3.4.3. L’opérateur LIKE 39
3.4.4. Les opérateurs OR, AND, NOT 39
3.4.5. L’opérateur BETWEEN 40
3.4.6. L’opérateur IN 40
3.5. Le tri et la clause ORDER BY 41
3.6. Les fonctions d’agrégat 41
3.7. Les requêtes sur les groupes (les clauses GROUPE BY et HAVING) 42
3.7.1. La clause GROUPE BY 43
3.7.2. La clause HAVING 43
4. Le blocage des requêtes 44
5. Les requêtes d’insertion : la commande INSERT 45
5.1. Définition 45
5.2. Syntaxe 45
5.3. Exemple 45
6. Les requêtes de mise à jour : la commande UPDATE 45
6.1. Définition 45
6.2. Syntaxe 45
6.3. Exemple 45
7. Les requêtes de suppression : la commande DELETE 46
7.1. Définition 46
7.2. Syntaxe 46
7.3. Exemple 46
8. Les requêtes paramétrées 46
8.1. Définition 46
8.2. Exemple 46
9. Les requêtes multitables 47
9.1. La jointure 47
9.1.1. Définition de la jointure 47
Modèle relationnel et MS Access 2007 P a g e | 5 2e
année IDA
9.1.2. Création d’une jointure 47
9.1.3. Exemple 48
9.2. L’auto jointure 48
9.2.1. Définition de la jointure 48
9.2.2. Exemple de jointure 48
9.3. Les requêtes imbriquées 49
9.3.1. Introduction 49
9.3.2. Quelques exemples de requêtes imbriquées 49
10. Le QBE 49
10.1. Définition du QBE 49
10.2. Description du QBE 49
10.3. Création de requête en QBE 50
10.4. Exercices 52
11. La définition des données 52
11.1. La création d’une table : CREATE TABLE 52
11.1.1. Syntaxe 52
11.1.2. Exemple 52
11.2. La création d’un index : CREATE INDEX 53
11.2.1. Syntaxe 53
11.2.2. Exemple 53
11.3. La modification d’une table : ALTER TABLE 53
11.3.1. Ajout de colonne : ADD 53
11.3.2. Suppression de colonne : DROP 53
Chapitre 6 : Les formulaires 54
1. A propos des formulaires 54
1.1. Définition 54
1.2. Les contrôles d’un formulaire 54
1.3. Description des contrôles 55
1.4. Les types de contrôle 56
2. Utilisation d’un formulaire 56
2.1. Quand utiliser un formulaire ? 56
2.2. La base de création d’un formulaire 56
3. Les types de formulaires 57
3.1. Le formulaire colonne simple 57
3.2. Le formulaire tabulaire 57
3.3. Le formulaire graphique 58
3.4. La création d’un formulaire 58
Modèle relationnel et MS Access 2007 P a g e | 6 2e
année IDA
3.4.1. L’utilisation de quelques contrôles 58
3.4.2. Les sections d’un formulaire 59
4. Les modes de création d’un formulaire 60
4.1. Les modes de création et manipulation des formulaires 60
4.2. Création d’un formulaire à l’aide de l’outil « formulaire » 61
4.3. Création d’un formulaire à l’aide de « formulaire double affichage» 61
4.4. Création d’un formulaire à l’aide de « Plusieurs éléments » 62
4.5. Création d’un formulaire à l’aide de l’ »assistant formulaire » 63
4.6. Création d’un formulaire à l’aide de l’outil « vide » 63
5. Travaux pratiques sur les formulaires 65
TP N°1 : création d’un formulaire simple à l’aide de l’assistant 65
TP N°2 : création d’un formulaire simple sans l’assistant 68
TP N°3 : création de formulaires basés sur plusieurs tables 71
Travaux dirigés N°1 72
Travaux dirigés N°2 72
Travaux dirigés N°3 79
Chapitre 7 : Les états 82
1. Définition 82
2. Les modes de réalisation d’un état 82
3. Les modes de représentation d’un état 83
4. La structure d’un état 83
4.1. Les sections 83
4.2. Les contrôles 83
5. La réalisation d’un état à l’aide de l’assistant 84
6. Travaux pratiques sur les états 88
Chapitre 8 : Les macros 91
1. Définition d’une macro 91
2. Le générateur de macro 91
3. Les types de macro 92
3.1. La macro autonome 92
3.2. Le groupe de macros 92
3.3. La macro incorporée 92
4. La création de macro 92
4.1. Créer une macro autonome 92
Modèle relationnel et MS Access 2007 P a g e | 7 2e
année IDA
4.2. Créer un groupe de macros 93
4.3. La macro incorporée 94
Modèle relationnel et MS Access 2007 P a g e | 8 2e
année IDA
Première partie :
Le modèle relationnel
Modèle relationnel et MS Access 2007 P a g e | 9 2e
année IDA
CHAPITRE 1 : INTRODUCTION AU MODELE RELATIONNEL
1. Présentation du modèle relationnel
Cette technologie a vu le jour dans les années 70 avec les travaux d’Edgar Codd.
La conception de logiciel mettant en œuvre le modèle relationnel repose sur le principe de la
séparation de l'analyse des données et de l'analyse des traitements, comme par exemple, la
méthodologie Merise. Dans la phase d'analyse des données, on s'applique à modéliser les
informations du système indépendamment des traitements que ces données vont éventuellement
subir.
2. Définition du modèle
Le modèle relationnel est fondé sur l'algèbre relationnelle, la théorie des ensembles et la logique
formelle. Lors de la conception du modèle de données issu de l'analyse, on applique un processus
de normalisation qui élimine les redondances d'information tout en préservant la cohérence des faits
mémorisés.
Le modèle relationnel est un modèle d’organisation des données sous forme de tables où chaque
table représente une relation, au sens mathématique d’ensemble. Une table est un tableau de
valeurs.
3. Les concepts du modèle relationnel
Les concepts mis en œuvre dans le modèle relationnel sont fondés sur une théorie mathématique
directement issue de l'algèbre relationnelle, de la théorie des ensembles et de la logique formelle.
Modèle E/A  Modèle relationnel
Association  Entité Table (relation)
Propriété  Attribut
Identifiant  Clé Primaire
3.1. La relation
Dans le modèle relationnel, le terme enregistrement utilisé aux fichiers devient relation.
Une relation est une structure de données tabulaire. Une relation est composée d'attributs ; chaque
attribut prend sa valeur dans un domaine. Une relation est donc un sous-ensemble du produit
cartésien des domaines des attributs.
En effet, dans le modèle relationnel, une relation exprime une association qui existe entre les
propriétés. Tandis que dans le modèle entité-association le terme relation exprimait la relation qui
existe entre les entités.
3.2. La notion de table
Comme nous pouvons le constater, le modèle relationnel est un modèle d'organisation des données
sous forme de Tables (Tableaux de valeurs) où chaque Table représente une Relation, au sens
mathématique d'Ensemble.
Modèle relationnel et MS Access 2007 P a g e | 10 2e
année IDA
3.3. La colonne et la ligne d’une table
Un SGBD implantant ces concepts est appelé un système de gestion de base de données
relationnel (SGBDR).
Physiquement, le concept de relation est implanté par une table dont les colonnes représentent les
attributs et les lignes, les occurrences de la relation. Chaque ligne de la table est identifiée par une
clé primaire, formée de la valeur d'une (ou de la concaténation des valeurs de plusieurs) colonne(s).
Une table représentant une relation est formée de lignes et de colonnes.
Les colonnes de la table sont appelées attributs.
Les lignes de la table sont appelées tuples.
3.4. La clé primaire
Chaque relation doit avoir une clé primaire. Elle est constituée un ou plusieurs attributs permettant
de distinguer chaque tuple de la relation par rapport à tous les autres.
3.5. La clé secondaire
On dit aussi clé étrangère. Les liens entre tables de la base de données sont réalisés à l'aide de
clés étrangères. Une clé étrangère est un attribut ou groupe d'attributs dont les valeurs se
retrouvent comme valeurs de clé primaire d'une table. Les clés étrangères sont donc des pointeurs
logiques ; le concept de pointeur physique n'existe pas.
3.6. Les types de liens
Il en existe trois :
 1-N : un à plusieurs
 M-N : plusieurs à plusieurs
 1-1 : un à un
3.7. Le passage du modèle entité-association (ou MCD) au modèle relationnel
3.7.1. L’entité
Le schéma d’une relation est constitué du nom de la relation, suivi de la liste des attributs. Alors,
pour chaque entité du schéma E/A:
a. On crée une relation de même nom que l’entité.
b. Chaque propriété de l’entité, y compris l’identifiant, devient un attribut de la relation.
c. Les attributs de l’identifiant constituent la clé de la relation.
3.7.2. Les associations de type 1-N
Une association qui a une cardinalité égale à 0,1 ou 1,1 pour une entité est traduite par une clef
étrangère ajoutée à la relation qui traduit cette entité. Cette clef étrangère est la clef primaire de
l’entité associée.
Modèle relationnel et MS Access 2007 P a g e | 11 2e
année IDA
3.7.3. Les associations de type M-N
Une association qui n’a pas de cardinalité égale à 0,1 ou 1,1 est traduite par une relation dont la clef
primaire est constituée de l’ensemble des identifiants des entités qui y participent. Les propriétés de
l’association deviennent des attributs de la relation.
3.7.4. Exemple de passage
Soit le schéma conceptuel des données suivant
On obtient le modèle des données relationnel suivant :
CLIENT (N°client, RaisonSociale, Adresse, Téléphone )
FACTURE (N°facture, Date , N°client)
ARTICLE (N°article , Libellé, PU)
PORTER_SUR (N°article , N°facture , Qté )
1, n
0, n
1, n 1, 1
ARTICLE
N°article
Libellé
PU
CLIENT
N°client
RaisonSociale
Adresse
Téléphone
Porter-sur
Qté
Obtenir
FACTURE
N°facture
Date
Modèle relationnel et MS Access 2007 P a g e | 12 2e
année IDA
CHAPITRE 2 : L’ALGEBRE RELATIONNELLE (OU LANGAGE ALGEBRIQUE)
1. Notion sur l’algèbre relationnelle
La mise en place d’une base de données relationnelle nécessite plusieurs étapes, une fois que les
besoins ont été définis :
- La création de la structure de la base sous forme de tables reliées entre elles par des
données clés ;
- La conception des requêtes qui permettent d’extraire ou de mettre à jour les informations
qu’elle contient ;
- La conception de l’interface homme-machine (les écrans et les états) qui rendra plus
conviviale la saisie et la restitution des informations.
L’algèbre relationnelle a été définie par Codd en 1970.
Elle est à l'origine du langage SQL (Structured Query Language) d'IBM, langage d'interrogation et
de manipulation de tous les SGBDR actuels (Oracle, PostgreSQL, MySQL, MS SQLServer, MS
Access et tous les autres).
Une bonne maîtrise de l'algèbre relationnelle permet de concevoir n'importe quelle requête aussi
complexe soit elle avant de la mettre en œuvre à l'aide du langage SQL.
Parmi les opérations de l'algèbre relationnelle, on dispose d'opérations classiques sur les
ensembles (union, intersection, différence, produit cartésien) puis d'opérations propres
(projection, sélection, jointure, division).
2. Définition de l’algèbre relationnelle
L’algèbre relationnelle est un langage qui permet d’exprimer des requêtes sur une base de données
relationnelle. Comme l’algorithmique, elle constitue un outil théorique préalable au niveau
opérationnel des traitements permettant de formaliser des opérations qui peuvent être réalisées sur
les relations définies au niveau logique. Elle est à la base de nombreux langages d’interrogation de
base de données tels que le SQL et le QBE.
3. Les concepts de base de l’algèbre relationnelle
Les notions de base qu’il faut connaître pour utiliser le langage algèbre sont les suivantes :
3.1. La relation
Elle correspond à la notion de table.
3.2. L’opération
L’algèbre relationnelle est composée d’un ensemble d’opérations élémentaires qui s’appliquent aux
tables de la base de données et qui produisent des tables en résultats.
Il y a deux groupes d’opérateurs :
Les opérateurs algébriques et les opérateurs ensemblistes.
Modèle relationnel et MS Access 2007 P a g e | 13 2e
année IDA
3.2.1. Les opérateurs algébriques
On les appelle encore opérateurs relationnels. Ils travaillent sur les attributs ou sur les valeurs des
attributs des relations. Ils se subdivisent eux-mêmes en deux catégories :
 Ceux qui portent sur une seule relation : SELECTION, PROJECTION,
 Ceux qui portent sur deux relations : JOINTURE, DIVISION, le TRI et les AGREGATS.
3.2.2. Les opérateurs ensemblistes
Ils travaillent sur les relations, c'est-à-dire des tables de même schéma. Ce sont : UNION,
intersection, différence, produit cartésien (tables de schémas différents)
3.3. Les requêtes
Une requête est un traitement c'est-à-dire la manipulation ou l’interrogation des données que l’on
peut effectuer sur des bases de données relationnelles.
Modèle relationnel et MS Access 2007 P a g e | 14 2e
année IDA
CHAPITRE 3 : LA MISE EN ŒUVRE DES CONCEPTS
1. Les opérateurs relationnels
1.1. La
sélection
Elle a pour objet de retenir les tuples qui vérifient un critère de sélection.
Syntaxe : R = SELECTION (R1, condition)
La condition est exprimée à l’aide des opérateurs mathématiques tels que =, >, <, >=, <=, <> ou des
opérateurs de logique de base ET, OU, NON.
1.2. La
projection
Elle a pour objet de ne retenir que les valeurs associées à certains attributs en éliminant les
doublons.
Syntaxe : R = PROJECTION (R1, liste des attributs)
1.3. La jointure
C’est le produit des uplets de deux tables vérifiant une condition de rapprochement. Les uplets de la
table résultat sont formés par la concaténation des uplets des relations.
Syntaxe : R = JOINTURE (R1, R2, condition de jointure)
1.4. Les
fonctions d’agrégats et le tri
Les agrégats consistent dans un premier temps, à regrouper les uplets d’une relation en fonction
des valeurs d’un premier attribut, puis à appliquer une fonction de calcul sur les valeurs d’un
deuxième attribut des uplets regroupés.
1.4.1. Les fonctions statistiques de base :
 SOMME (attribut) : renvoie le total des valeurs d’un attribut
 MOYENNE (attribut) : renvoie la moyenne des valeurs d’un attribut
 MINIMUM (attribut) : renvoie le minimum (plus petite valeur) d’un attribut
 MAXIMUM (attribut) : renvoie le maximum (plus grande valeur) d’un
attribut
1.4.2. La
fonction de « comptage »
Elle donne le nombre de uplets (dénombrement) d’un ou de plusieurs groupes de uplets.
Modèle relationnel et MS Access 2007 P a g e | 15 2e
année IDA
Syntaxe : R = COMPTAGE (R1, attribut de dénombrement)
1.4.3. La
fonction « calculer »
Les calculs et /ou comptage portent sur la relation R1. R2 ne comportera qu’une ligne avec autant
de colonnes.
1.4.4. La
fonction « Trier »
Le tri effectue sur un ou plusieurs attributs, dans l’ordre croissant ou décroissant. La relation est
triée selon un ordre. La relation résultat a la même structure et le même contenu que la relation de
départ.
Syntaxe : TRI (attribut1 Asc, attribut2 Asc, attribut3 Desc, ….)
Asc : croissant
Desc : décroissant
2. Les
opérateurs ensemblistes
2.1. L’union
Elle permet de construire une troisième table ayant pour uplets ceux appartenant à R1 ou à R2. Elle
élimine les doublons et les deux tables doivent avoir le même schéma.
Syntaxe : R = UNION (R1, R2)
2.2. L’intersect
ion
Elle permet de construire une troisième table ayant pour uplets ceux appartenant à la fois à R1 et
R2.
Syntaxe : R = INTERSECTION (R1, R2)
2.3. La
différence
Elle consiste à construire une troisième table ayant pour uplets, ceux appartenant à R1 et
n’appartenant pas à R2.
Syntaxe : R = DIFFERENCE (R1, R2)
2.4. La
division
Syntaxe : R = DIVISION (R1, R2)
Modèle relationnel et MS Access 2007 P a g e | 16 2e
année IDA
R, le produit, possède les attributs non communs aux deux relations (tables) R1 et R2 initiales et est
formée de tous les uplets qui, concaténés à chacun des uplets du diviseur donne toujours un uplet
du dividende.
2.5. Produit
cartésien
Il consiste à construire une troisième relation R qui comporte les attributs des relations R1 et de R2
ayant pour uplets toutes les combinaisons des uplets des deux relations.
Syntaxe : R = PRODUIT (R1, R2)
R1 ET R2 doivent avoir le même schéma.
CHAPITRE 4 : TRAVAUX DIRIGES ET EXERCICES
1. Travaux dirigés
Contexte :
Le suivi des commandes des clients de la société CORI est implémenté dans la base de données
« Commandes_Clients »
Cette base de données est constituée des 4 tables ci-dessous dons les extensions sont présentées
au point 3.
1) Soit le schéma conceptuel des données est le suivant :
2) On obtient le modèle des données relationnel suivant :
CLIENT (N°client, NomClient, Adresse, Cond_paiement )
COMMANDE (N°commande, Date, N°client#)
PRODUIT (RéfProduit , Désignation, PrixUnitaire)
PORTER_SUR (RéfProduit#, N°commande#, Quantité)
3) Les tables en extensions
La table « Produit »
RéfProduit Désignation PrixUnitaire
BR2010 Ecran 475.00
GT-9500 Scanner 120.00
1, n
0, n
0, n 1, 1
PRODUIT
RéfProduit
Désignation
PrixUnitaire
CLIENT
N°client
NomClient
Adresse
Cond_paiement
Porter_sur
Quantité
Obtenir
COMMANDE
N°Commande
Date
Modèle relationnel et MS Access 2007 P a g e | 17 2e
année IDA
3CM9800 Ecran 125.00
P334863 Micro-ordinateur 875.00
La table « Client »
N°client NomClient Adresse Cond_paiement
1 Lycée E. Mounier Grénoble 30 jours fin de mois
2 Sema Group Meylan 30 jours fin de mois
3 Dupont SA Grénoble A la livraison
4 Préfecture Grénoble 45 jours fin de mois
La table « Commande »
N°commande Date N°client
1234 24/09/2003 2
1235 25/09/2003 1
1236 25/09/2003 4
La table « Porter_sur »
N°commande Date Quantité
1234 BR2010 2
1234 GT-9500 1
1235 3CM9809 4
1236 GT-9500 2
1236 3CM9809 8
E1. Quels sont les clients dont les conditions de paiement sont à 30 jours fin de mois ?
R = SELECTION (Client, Cond_paiement = « 30 jours fin de mois »)
E2. Quels sont les clients de Grénoble dont les conditions de paiement sont à 30 jours fin de
mois ?
R = SELECTION (Client, Cond_paiement = « 30 jours fin de mois » ET Adresse = « Grénoble » )
E3. Quelles informations décrivent le client Sema Group et tous les clients qui paient à la
livraison ?
R = SELECTION (Client, NomClient = « Sema Group » OU Cond_paiement = « à la livraison » )
E4. Quels sont les clients de Grénoble qui paient à la livraison ou bien à 30 jours fin de mois ?
R = SELECTION (Client, adresse = « Grénoble » ET (Cond_paiement = « à la livraison » OU
Cond_paiement = « 30 jours fin de mois »)
E5. Quels sont les clients de Grénoble qui ne paient pas 30 jours fin de mois ?
R = SELECTION (Client, adresse = « Grénoble » ET NON (Cond_paiement = « 30 jours fin de
mois »)
E6. Quels sont les conditions de paiement en cours auprès des clients ?
R = PROJECTION (Client, cond_paiement)
E7. Quelles sont les commandes en cours et sur quels clients portent-elles ?
Commandes_ Clients = JOINTURE (Client, Commande, Client.N°Client = Commande. N°Client)
E8. Comment ordonner les tuples de la résultat précédent par adresse et dans l’ordre
alphabétique des noms des clients ?
Commandes_ Clients = TRI (Adresse (croissant), N°Client (croissant))
Modèle relationnel et MS Access 2007 P a g e | 18 2e
année IDA
E9. Combien de produits comptent chacune des facture ?
R = AGREGAT (Porter_sur, N°Commande, SOMME(Quantité))
E10. Quelle est la moyenne des quantités commandées par article ?
R = AGREGAT (Porter_sur, N°Produit, MOYENNE (Quantité))
E11. Combien de clients dénombre-t-on pour chacune des différentes conditions de paiement ?
R = AGREGAT (Client, Cond_paiement, COMPTE (Cond_Paiement))
E12. Comment regrouper dans une même table les clients provenant de 2 tables différentes ?
R = UNION (Client1, Client2)
E13. Comment ne retenir que les clients qui appartiennent à la fois à deux tables différentes ?
R = INTERSECTION (Client1, Client2)
E14. Comment ne retenir que les clients qui appartiennent à une table sans appartenir à une
autre ?
R = DIFFERENCE (Client1, Client2)
E15. Comment appliquer toutes les conditions de paiement à un ensemble de clients ?
R = PRODUIT CARTESIEN (Client1, Conditions)
La table « Client1 »
N°client NomClient Adresse
1 Lycée E. Mounier Grénoble
2 Sema Group Meylan
La table « Conditions »
Cond_paiement
A la livraison
30 jours fin de mois
45 jours fin de mois
Table résultat R
N°client NomClient Adresse Cond_paiement
1 Lycée E. Mounier Grénoble A la livraison
1 Lycée E. Mounier Grénoble 30 jours fin de mois
1 Lycée E. Mounier Grénoble 45 jours fin de mois
2 Sema Group Meylan A la livraison
2 Sema Group Meylan 30 jours fin de mois
2 Sema Group Meylan 45 jours fin de mois
Modèle relationnel et MS Access 2007 P a g e | 19 2e
année IDA
2. Exercices sur le Modèle relationnel et SQL
Exercice 1
Une bibliothèque utilise l’organisation des données pour gérer le prêt de livres.
Travail à faire
1) Réalisez le schéma relationnel
2) Elaborez les requêtes d’interrogation suivantes en
a. Langage algébrique
b. En SQL
1. Déterminer la liste des ouvrages classés par auteur : nom de l’auteur, numéro de l’ouvrage, le
titre et le descriptif.
2. Quel est le nombre d’ouvrages inventoriés dans la bibliothèque ?
3. Quel est le nombre d’ouvrages par auteur inventoriés dans la bibliothèque ?
4. Quels sont les auteurs dont le nombre d’ouvrages inventoriés dans la bibliothèque est supérieur
à 3 ?
5. Quels sont les livres (titre et auteur) empruntés par le membre DEDI Alain ?
6. Quels sont membres qui ont emprunté au moins un livre depuis le 1er
septembre 2011 ?
7. Quels sont les membres qui n’ont plus emprunté de livres depuis le 1er
septembre 2011 ?
1,11,n
0,n1,n
0,n
Membre
MBnum
MBNom
MBPréno
m
MBVille
Date
Date_début
Ouvrage
OuvNum
Titre
Descriptif
Auteur
AutNum
AutNom
AutPrénom
Emprunter
Date_fin Ecrire
Modèle relationnel et MS Access 2007 P a g e | 20 2e
année IDA
Exercice 2
Un centre informatique propose des formations de différents niveaux. Une formation est
organisée pour plusieurs sessions afin de répondre à la forte demande dans ce secteur.
Le schéma relationnel est le suivant :
Travail à faire
1) Réalisez le schéma relationnel
2) Elaborez les requêtes d’interrogation suivantes en
a. Langage algébrique
b. En SQL
1. Quels sont les stagiaires (numéro, nom, prénom) ayant suivi la session 1537 ?
2. Quels sont les noms des formateurs, triés par ordre croissant, ayant animé les sessions
relatives à la formation « Initiation à SQL » ?
3. Quel est le nombre de sessions réalisées pour l’activité « Initiation à SQL » pendant le mois de
septembre 2011 ?
4. Quel est le nombre de sessions animées pendant le mois de septembre 2011par chaque
professeur trié par ordre croissant sur le nom du professeur (Nom, nombre de sessions) ?
5. Quelle est la durée moyenne des formations dont les sessions ont débuté au mois de
septembre 2011 ?
6. Quelles sont les formations (numéro, intitulé) relatives au système d’exploitation Linux (intitulés
des formations dans lesquels le mot Linux est présent) ?
7. Quelles sont les formations (numéro, intitulé) qui n’ont pas donné lieu à des sessions depuis le
1er
janvier 2011?
8. Quelles sont les professeurs n’ayant pas animé de sessions pendant le mois de septembre trié
par ordre croissant sur le nom du professeur ?
1, n1,1
0,n 1,1
1,n
Professeur
NumProf
NomProf
PrénomProf
Concerner
Animer
Stagiaire
NumStag
NomStag
PrénomStag
VilleStag
Formation
NumForm
IntituléForm
NiveauForm
DuréeForm
Concerner 1,n
Session
NumSession
DateDébut
Modèle relationnel et MS Access 2007 P a g e | 21 2e
année IDA
Deuxième partie :
Le SGBD MS Access
Modèle relationnel et MS Access 2007 P a g e | 22 2e
année IDA
CHAPITRE 1 : PRÉSENTATION DE MICROSOFT ACCESS 2007
MS Access est un système de gestion de base de données relationnelle (SGBDR) qui fait partie du
groupe de programmes MS Office en version professionnelle. La version utilisée pour l'élaboration
de ce support est MS Access de Office 2007.
Le premier écran qui apparaît au lancement de MS Access se présente comme suit
Il permet de choisir et ouvrir une base de données récente si celle-ci fait partie de la liste des
raccourcis affichées à droite de l’écran ou d’ouvrir (ou bien créer) une base de données grâce au
« bouton office » dans le coin gauche en haut.
La barre de menu principale présente quatre menus :
 Le menu Accueil
 Le menu Créer
 Le menu Données externes
 Le menu Outils de bases de données
Le menu Accueil
Modèle relationnel et MS Access 2007 P a g e | 23 2e
année IDA
Le menu Créer
Il y a six types d’objets qui permettent de créer et de manipuler des bases de données Access :
tables, formulaires, états, requêtes, macros, modules (ces trois derniers sont contenus dans la
barre Autre).
Le menu Données externes
Le menu outils de base de données
Pour chaque objet, il existe deux modes :
- Le mode utilisateur de l’objet
- Le mode structure de l’objet
Le volet de navigation
Le volet de navigation permet par exemple d'ouvrir les composants d'une base de données (appelés
objets dans Access), pour les traiter ou pour y apporter des modifications. Pour savoir rapidement
ce que vous pouvez faire avec un objet, il suffit de cliquer dessus avec le bouton droit et de
consulter le menu contextuel correspondant.
Le volet de navigation
Modèle relationnel et MS Access 2007 P a g e | 24 2e
année IDA
Modèle relationnel et MS Access 2007 P a g e | 25 2e
année IDA
CHAPITRE 2 : APERÇU SUR LES OBJETS D'UNE BASE DE DONNÉES
Le SGBDR MS Access contient plusieurs types de composants appelés objets qui permettent la
manipulation des données. Nous allons les présenter brièvement dans ce chapitre afin de connaître
leurs rôles et comprendre leurs utilités.
1- Une table
Une table est une structure qui contient des données. Elle est organisée en lignes et colonnes.
Dans la terminologie base de données, les lignes sont représentées par les enregistrements et les
colonnes par les champs.
Les données sont stockées à l’intérieur des tables. Une table peut être comparée à une liste, qui
contient des enregistrements relatifs à un domaine bien défini.
Exemple : pour la gestion des contrats, nous avons construit deux tables. Celle qui actuellemnt
active est la table Client.
2- Une requête
C’est la formulation d’une question à traiter et la réponse qui lui est apportée sous forme d’un
enchaînement d’opérateurs mis en œuvre sur une ou plusieurs tables.
Les requêtes constituent dans un certain sens des "questions" qu'on pose au SGBD. Le résultat
d'une requête est toujours un sous-ensemble d'une ou de plusieurs tables.
Exemple
Nous voulons connaître la liste des contrats signés par le client N°1, la requête pourrait être:
SELECT client.n°client, nom, prénom, n°contrat, datecontrat, prime
FROM client, contrat
WHERE (client.n°client=contrat.n°client) and (client.n°client=1);
Voici le résultat de cette requête :
Modèle relationnel et MS Access 2007 P a g e | 26 2e
année IDA
3- Un formulaire
C’est l’interface privilégiée de communication entre le SGBDR et l’utilisateur. Véritable outil de
dialogue, le formulaire est un écran personnalisé permettant de saisir, modifier, sélectionner et
visualiser les enregistrements d’une ou plusieurs tables, de valider des options ou de lancer
différentes actions. Nous verrons par la suite les différents modes de formulaires.
Exemple : voici un formulaire qui permet de saisir, modifier, visualiser les enregistrements de la
table chambres. Il existe plusieurs formes possibles de présentation des formulaires.
Ce formulaire présente tous les enregistrements de la table « Contrat »
Celui-ci présente un enregistrement à la fois
4- Un état
Les états encore appelés rapports sont similaires aux formulaires, à la différence près, qu'ils sont
uniquement destinés à être imprimés. Il peut également contenir des données calculées, triées ou
même groupées.
Les états ne permettent pas de dialogues interactifs avec l’utilisateur.
En général, on utilise les états pour :
 Imprimer des listes et des statistiques concernant les données ;
 Regrouper les données et créer des calculs sur les données ;
 Créer des factures, bons de livraison et autres pièces de gestion importantes.
Modèle relationnel et MS Access 2007 P a g e | 27 2e
année IDA
Exemple
Liste des contrats regroupés par client
5- Une macro
Une macro est une action ou ensemble d'actions que vous pouvez utiliser pour automatiser des
tâches, pour effectuer une action spécifique.
6- Un module
Un module est principalement une collection de déclarations, d'instructions et de procédures
stockées ensemble sous un même nom, pour organiser votre code.
Un objet Module représente
 Soit un module standard : module dans lequel vous pouvez placer des procédures Sub et
Function que vous souhaitez rendre accessibles aux autres procédures dans toute votre base de
données.
 Soit un module de classe : module qui peut contenir la définition d'un nouvel objet. Lorsque
vous créez une instance d'une classe, vous créez un nouvel objet. Les procédures définies dans le
module deviennent les propriétés et méthodes de l'objet.
En résumé
À l'aide de Microsoft Access, vous pouvez gérer toutes vos informations à partir d'un fichier de
base de données unique. Dans ce fichier, vous pouvez utiliser les éléments suivants :
 Des tables afin de stocker vos données.
 Des requêtes afin de rechercher et extraire les données souhaitées.
 Des formulaires afin d'afficher, ajouter et mettre à jour les données dans les tables.
 Des états afin d'analyser ou imprimer des données sous une mise en page spécifique.
 Des macros, outils qui permettent d'automatiser des tâches et d'ajouter des fonctionnalités
aux formulaires, états et contrôles.
 Des modules
Modèle relationnel et MS Access 2007 P a g e | 28 2e
année IDA
CHAPITRE 3 : LES TABLES
1- Préliminaires : Création d'une nouvelle base de données (en mode création).
 Lancer Microsoft Access 2007
 Cliquez sur le bouton Microsoft Office
 Cliquez sur Nouveau
 Dans la partie « Prise en main de Microsoft », s’affiche une boîte de dialogue
 Enregistrez d’abord le nom de la nouvelle base de données et Cliquez sur Créer.
2- La création d'une nouvelle table
Il s'agit de créer des tables à partir du schéma conceptuel des données suivant:
0,n 1,1
On en déduit le modèle logique des données suivant:
Agent (N°Agent, Nom, Prénom, Fonction, Commune)
Véhicule (N°Immatriculation, DateAchat, Marque, Couleur, N°Agent#)
La première étape consiste à créer la structure de la table. Pour cela nous allons utiliser le « mode
sans assistant » c'est-à-dire en mode création. Ce mode permet au concepteur de définir lui-même
la table et ses propriétés.
2.1. La définition de la structure des tables
Pour définir la structure d’une table, il faut pour chaque champ :
 Définir le nom du champ ;
 Définir le type de données du champ ;
Agent
N°agent
Nom
Prénom
Fonction
Commune
Véhicule
N°Immatriculation
DateAchat
Marque
Couleur
Posséder
Modèle relationnel et MS Access 2007 P a g e | 29 2e
année IDA
Type de données Sa description
Texte Spécifie les champs de type alphabétique
Mémo Stocke du texte d’une longueur maximum de 65 535 caractères
Numérique Spécifie des champs de type entier ou réel
Date/Heure Champs temporels. Spécifie une date et/ou une heure
Monétaire Pour spécifier des champs contenant des valeurs monétaires.
Numéro Auto
Spécifie les champs numériques automatiquement incrémenté
chaque fois qu’un nouveau tuple est ajouté à la table.
Oui/Non Champs booléen (vrai/faux, oui/non, actif/inactif)
Objet OLE
Spécifie des objets liés ou incorporés à une table : image, feuille
Excel, dessin, graphique …
Lien hypertexte
Spécifie des champs de type texte utilisés comme adresses de
lien hypertexte.
Assistant liste de choix
Spécifie que des valeurs de champ seront obtenues à partir d’une
autre table, d’une requête ou d’une liste de valeurs.
 Définir les propriétés du type de données du champ
Chaque propriété peut être définie plus précisément à l’aide d’une liste de propriétés attachées au
type de données du champ. Toutes les propriétés ne sont pas obligatoirement renseignées.
Certaines peuvent avoir de valeur par défaut.
Pour chaque champ, éventuellement, cliquez dans la colonne à droite pour préciser les propriétés.
 Définir la description du champ.
La description du champ sert à fournir sous forme d’un texte, des informations au sujet du champ,
son rôle dans le système d’information.
2.2. La création d’une table : « Agent »
Nom des champs Type de données Description
N°agent Numérique Numéro de l'agent
Nom Texte [15] Nom de l'agent
Prénom Texte [20] Prénom de l'agent
Fonction Texte [50] Fonction exercée par l'agent
Commune Texte [30] Commune de résidence de l'agent
Modèle relationnel et MS Access 2007 P a g e | 30 2e
année IDA
Voici ci-dessous le menu et l’icône qui permet de créer une table en mode création
 Cliquez sur l’icône « Création de table »
Créez la table Agent avec ses champs dans la fenêtre qui se présente comme suit :
 Pour déterminer une clé primaire à une table : sélectionner le champ proposé comme clé
primaire (N°Chambres) et cliquez sur l’icône
 Le type de données NuméroAuto est un compteur automatique qui évite la saisie des nombres
entiers, évitant ainsi le risque des doublons.
 Après avoir défini les propriétés, cliquez sur pour enregistrer le nom de la table.
 Basculez en « Mode Feuille de données » pour saisir les enregistrements dans la table. Les
différents modes d'affichage se trouvent dans le menu accueil.
2.3. La Création d’une autre table : la table « Véhicule »
On procèdera de la même façon que pour la création de la table Agent. Remarquons que cette
table contient le champ N°Agent comme clé externe dont le type sera Entier long.
Modèle relationnel et MS Access 2007 P a g e | 31 2e
année IDA
Table Véhicule
2.4. Les manipulations à savoir pour utiliser une table et travailler avec ses enregistrements
 Ouvrir une table en mode "Feuille de Données"
 Déplacer le curseur dans le champ suivant
 Déplacer le curseur dans le champ précédent
 Déplacer le curseur dans n'importe quel champ d'un enregistrement
 Sélectionner l'enregistrement suivant
 Sélectionner l'enregistrement précédent
 Sélectionner le premier enregistrement
 Sélectionner le dernier enregistrement
 Comment reconnaît-on l'enregistrement en cours ?
 Modifier la largeur d'une colonne
 Déplacer un champ
 Rechercher des valeurs dans les enregistrements
 Masquer des champs
 Réafficher les champs masqués
 Imprimer des enregistrements
3- Les autres modes de création d’une table
Sélectionner le mode « Feuille de Données » pour une table ouverte en mode « Création »
3.1. Création avec les modèles de tables
MS Access permet de créer des tables à l'aide d'un modèle de table. Il s'agit des modèles
d'éléments courants tels que les contacts, les problèmes et les tâches, les événements, les biens.
Modèle relationnel et MS Access 2007 P a g e | 32 2e
année IDA
3.2. Le mode Table
Permet de créer une table vide. On peut définir directement les champs dans la nouvelle table ou
l'ouvrir en mode création
3.3. Le mode Listes SharePoint
Ce mode permet de créer un site SharePoint et une table dans la base de données active qui établit
une liaison vers la liste nouvellement créée.
Modèle relationnel et MS Access 2007 P a g e | 33 2e
année IDA
Chapitre 4 : LES RELATIONS ENTRE TABLES
Une base de données bien concipée est rarement composée d'une seule table, mais d'un ensemble
de tables, entre lesquelles il existe certaines relations.
1- La clé primaire et la clé secondaire
La clé primaire : elle est constituée d'un ou de plusieurs champs d'une table. Elle est l'élément
unique qui permet d'identifier un enregistrement.
La clé secondaire : c'est un champ constituant la clé primaire d'une autre table. Elle permet de
représenter un lien entre deux tables. On dit aussi clé étrangère ou bien clé externe.
2- Les index
Un index est constitué de un ou de plusieurs champs. Il permet de trier le contenu d'une table dans
un ordre spécifique ou de trouver rapidement un enregistrement.
Les index sont des structures qui accélèrent les tris et recherches dans les tables, ainsi que
l'exécution de certaines requêtes.
Exemple:
Créer par exemple un index sur le champ Nom veut dire que le SGBD copie toutes les valeurs
existantes du champ Nom dans une liste spéciale à 2 colonnes. La deuxième colonne contient les
noms triés en ordre alphabétique, et la première contient une référence vers l'enregistrement
correspondant de la table.
Il est évident que par la suite de la création de cet index, toutes les recherches et les tris concernant
le nom de l'agent sont accélérés.
Un index peut aussi comporter plusieurs champs comme par exemple Nom et Prénom.
Propriétés importantes des index :
 Un index est toujours lié à un ou plusieurs champs d'une table.
 Un index peut seulement contenir des champs ayant un des types de données Texte, Numérique
ou Date/Heure.
 Un index est automatiquement mis à jour par le SGBD lors d'un ajout, d'une modification ou
d'une suppression d'enregistrements dans la table. Ceci est transparent pour l'utilisateur de la
BD.
 Il existe deux types d'index:
Index avec doublons (Les valeurs doubles sont permises)
Index sans doublons (Les valeurs doubles ne sont pas permises)
NB : La clé primaire est toujours indexée à l'aide d'un index sans doublons !
Modèle relationnel et MS Access 2007 P a g e | 34 2e
année IDA
3- La création des relations entre les tables
Avant de commercer à créer les relations entre les tables conformément au modèle logique des
données, les tables elles-mêmes doivent d'abord être créées. Pour notre cours, il y a deux tables :
Agent et Véhicule. Nous supposons qu'elles ont déjà été créées (chapitre 3).
 Sélectionnez le menu « Outils de base de données »
 Cliquez sur l’icône Relations
 Dans la nouvelle barre qui apparaît, cliquez sur
 Sélectionnez chaque table dans la fenêtre « Afficher la table » et cliquez sur le bouton Ajouter,
puis Fermer.
 Établir la relation entre les tables Agent et Véhicule. Pour se faire, faire glisser le champ
N°Agent de la table Agent vers N°Agent de la table Véhicule et relâchez.
4- Les règles d’intégrité
À chaque fois qu'une relation entre deux tables est établie, une boîte de dialogue apparait afin de
préciser les options nécessaires au type de la relation établi.
Modèle relationnel et MS Access 2007 P a g e | 35 2e
année IDA
Par le simple fait d'inclure des clés étrangères dans une table, Access ne reconnaît pas encore une
relation entre les tables. Access ne sait par exemple pas automatiquement que le champ
N°Chambre de la table Réservations fait référence à la clé primaire N°Chambre de la table
Chambres. A l'aide de la fenêtre des Relations, on peut indiquer à Access les clés étrangères et
leurs clés primaires associées, et ainsi définir les relations entre les tables.
Relations entre les tables
La documentation d’Access nous dit que le fait d'établir des relations simples entre des tables, nous
facilite en outre la création de requêtes multi table. Nous allons vérifier cette affirmation plus tard
dans la partie Activités de ce TP.
 L'intégrité référentielle
Un avantage incontestable de la fenêtre Relations est la possibilité de définir ce qu'on appelle
l'intégrité référentielle pour une relation donnée.
Par contrainte d'intégrité référentielle, on entend l'obligation qu'à chaque valeur de la clé
étrangère corresponde une et une seule valeur de la clé primaire associée. Cette obligation doit
toujours être vérifiée lors de l'ajout, de la suppression ou de la modification de données.
Access nous offre plusieurs possibilités pour garantir à tout moment l'intégrité référentielle des
données d'une BD.
Modèle relationnel et MS Access 2007 P a g e | 36 2e
année IDA
 Cascade des opérations vers les clés étrangères correspondantes : Une modification d'une clé
primaire aurait comme conséquence la modification de toutes les clés étrangères
correspondantes. Une suppression d'une clé primaire par exemple aurait comme conséquence
la suppression automatique de tous les enregistrements dont la clé étrangère a la même valeur.
Cette option est à utiliser avec précaution !!!
 Dans notre cas, nous allons appliquer toutes les trois règles.
 Terminez par la seconde relation entre les tables Clients et Réservations par le biais des
champs Numclient des deux côtés.
 Appliquez les 3 règles d’intégrités.
 Validez.
Remarques : il s’agit de deux relations un-à-plusieurs (1-N).
5- Les manipulations importantes sur les relations à savoir
Pour effectuer des opérations sur les relations de la base de données, il faut au préalable afficher
les relations.
Apparaît un menu supplémentaire Création qui permet de faire des manipulations sur les relations :
 Ouvrir la fenêtre Relations
 Ajouter une table dans la fenêtre Relations
 Effacer une table de la fenêtre Relations
 Définir une relation entre deux tables
 Effacer une relation existante
 Modifier une relation existante
 Forcer le respect de l'intégrité référentielle
 Activer les suppressions, modifications en cascade.
Modèle relationnel et MS Access 2007 P a g e | 37 2e
année IDA
Chapitre 5 : LES REQUÊTES ET LE LANGAGE SQL
Introduction
Nous avons vu que la plupart des SGBD offrent la possibilité d'effectuer des recherches
directement dans les tables. Les possibilités de formuler des critères de recherche sont cependant
souvent assez limitées. Heureusement, la plupart des SGBD nous offrent également la possibilité
de poser pratiquement n'importe quelle « question » à nos tables, sous forme de requêtes. En MS
Access, les requêtes peuvent être exprimées à l’aide de deux langages : le SQL et le QBE.
1- Les notions sur les requêtes
1.1. Définition d’une requête
Une requête est une formule qui sert à répondre aux questions basées sur le contenu d'une ou de
plusieurs tables.
Les requêtes possèdent l'avantage de pouvoir manipuler facilement un grand nombre
d'enregistrements sans que l'utilisateur ne doive s'occuper de sélectionner enregistrement par
enregistrement. Il lui suffit de spécifier des critères de sélection pour la requête, ainsi que l'opération
à effectuer (simple sélection et affichage, insertion, modification ou suppression).
Une requête basée sur une seule table est une requête simple.
Une requête basée sur plusieurs tables (et/ou requêtes) est une requête multi table.
1.2. Les menus de requêtes
 Pour créer une requête, dans le menu principal, sélectionner le menu Créer
 Dans le sous-menu, il y a deux icônes :
 l’une pour créer une requête à l’aide de l’assistant,
 l’autre pour créer une requête en mode création.
Modèle relationnel et MS Access 2007 P a g e | 38 2e
année IDA
1.3. Les différents types de requêtes
Il existe 4 types de requêtes:
Types de requêtes Rôles
Requêtes de sélection
Ce sont des requêtes qui permettent de sélectionner
certains enregistrements.
Requêtes d'insertion
requêtes qui permettent d’insérer des enregistrements
dans une table.
Requêtes de modification
requêtes qui permettent de modifier des enregistrements
dans une table.
Requêtes de suppression
requêtes qui permettent de supprimer des enregistrements
dans une table.
En Microsoft Access, il existe deux langages relationnels qui sont utilisés pour formuler des
requêtes. Il s’agit de SQL qui est un langage textuel et QBE qui lui est un langage visuel.
2- Le langage SQL
2.1. Définition du SQL
SQL signifie (Structured Query Language), en français Langage d’Interrogation Structuré.
C’est un standard international, en ce qui concerne les langages de manipulation des BD. SQL est
connu par tous les SGBDR. Il faut cependant mentionner désormais la présence de standards
internationaux tels que SQL-86, SQL-89, SQL-92, SQL-99 ou SQL-2003 et SQL-2008. Chaque
SGBD sur le marché utilise un peu son propre dialecte du langage SQL.
2.2. Les subdivisions du langage SQL
Le SQL comporte cinq grandes parties :
 Le DDL : Data Definition Language (Langage de Définition des données)
Il permet de décrire les éléments d’une base de données, notamment les tables, les colonnes,
les clefs, les index, les contraintes...
Elle possède les commandes de base suivante : CREATE, ALTER, DROP qui permettent
respectivement de créer, modifier, supprimer un élément de la base.
 Le DML : Data Manipulation Language (Langage de Manipulation des données)
C’est la partie du SQL qui permet de traiter les données. Elle comporte les commandes de base
suivantes : INSERT, UPDATE, DELETE, SELECT qui permettent respectivement d’insérer, de
modifier, de supprimer et d’extraire des données.
 Le DCL : Data Control Language (c'est-à-dire le Langage de contrôle des données)
C’est la partie du SQL qui s’occupe de gérer les droits d’accès aux tables. Elle comporte les
commandes de base suivantes : GRANT, REVOKE qui permettent respectivement d’attribuer et
de révoquer des droits.
Modèle relationnel et MS Access 2007 P a g e | 39 2e
année IDA
 Le TCL : Transaction Control Language, le Langage de Contrôle de Transaction
C'est la partie du SQL chargé de contrôler la bonne exécution des transactions.
Elle comporte les commandes de base suivantes : SET TRANSACTION, COMMIT,
ROLLBACK.
 L’Embedded SQL : le SQL intégré
Il s'agit d'éléments procéduraux que l'on intègre à un langage hôte : SET, DECLARE CURSOR,
OPEN, FETCH...
3. Les requêtes de sélection : La commande SELECT
3.1. Définition
Le verbe SELECT est utilisé pour interroger une base de données. C’est la commande de base du
SQL destinée à extraire des données d’une base de données ou même générer des calculs de
nouvelles données.
De manière générale, la commande SELECT comprend six clauses. Parmi elles quatre sont
optionnelles.
3.2. La syntaxe générale
SELECT [DISTINCT ou ALL] * ou liste de colonnes
FROM nom de table ou de la vue
[WHERE critères de sélection]
[GROUP BY ordre des groupes]
[HAVING condition]
[ORDER BY] liste de colonnes
3.3. SELECT
Elle est utilisée pour spécifier des colonnes. Select peut être suivie plusieurs opérateurs.
3.3.1. Les clauses de SELECT
 L’opérateur * (étoile) permet d’afficher toutes les champs définis dans la table.
Syntaxe : SELECT * FROM table ;
Question : Écrire la requête qui affiche tous les agents de la base
Réponse : SELECT * FROM Agent ;
Question : Affichez le nom, le prénom et la commune de chaque agent.
Réponse : SELECT Nom, Prénom, Commune FROM Agent ;
 L’opérateur DISTINCT
Il permet d’éliminer les doublons de la table en résultat (dans la réponse).
Syntaxe: Select Distinct champ From table;
Question : Affichez les communes dont sont originaires les différents agents.
Réponse 1 : SELECT commune FROM Agent ;
Modèle relationnel et MS Access 2007 P a g e | 40 2e
année IDA
Réponse 2 : SELECT DISTINCT commune FROM Agent ;
 L’opérateur AS
Il permet de donner un nom à de nouvelles colonnes créées par la requête.
Syntaxe: Select Distinct champ AS champ From table;
Question : Affichez les communes (résidence) dont sont originaires les différents agents.
Réponse : SELECT DISTINCT commune AS Résidence FROM Agent ;
 L’opérateur ALL
Il permet de sélectionner tous les champs.
Select *
Et
Select ALL*
Sont deux instructions équivalentes.
3.4. La clause WHERE
Elle permet de préciser la condition de sélection dans la requête. La valeur de la condition doit
renvoyer la valeur logique (booléenne) vrai.
 Syntaxe générale
SELECT champ, champ
FROM table
WHERE condition de sélection;
 Les critères de sélection
Comparaison à une valeur donnée.
Pour chaque enregistrement, la valeur d'un champ donné est comparée à une valeur fixe. Cette
valeur fixe est généralement une valeur numérique, une date ou un texte.
Voici les opérateurs de comparaison:
= "est égal"
> "Strictement supérieur"
< "Strictement inférieur"
>= "supérieur ou égal"
<= "inférieur ou égal"
<> "Est différent"
Modèle relationnel et MS Access 2007 P a g e | 41 2e
année IDA
Remarques:
 Les valeurs sont séparées par des virgules.
 En SQL de MS Access, les données du type TEXTE sont entourées de guillemets.
 Les dates sont entourées du caractère # et indiquées dans le format américain
#Mois/Jour/Année#
Exemple: le 20/4/98 correspond à #04/20/98# ou #4/20/98# ou #04/20/1998# ou #4/20/1998#
Question : Quels sont les clients originaires de COCODY?
Réponse : SELECT *
FROM Agent
WHERE Commune = "Cocody" ;
 L’opérateur LIKE (comparaison à un filtre)
Il permet d’effectuer une comparaison partielle. Il est utilisé avec les données contenant des
caractères et le caractère étoile (*). Ce caractère remplace n’importe qu’elle chaîne de
caractères. Le caractère « _ » remplace un seul caractère.
Syntaxe:
SELECT champ
FROM table
WHERE champ LIKE expression;
Expression est une chaîne de caractères constante à laquelle le champ est comparé.
Question: Quels sont les clients dont le nom de la commune commence par « A »?
Réponse: SELECT *
FROM Agent
WHERE commune LIKE "A*" ;
 Les opérateurs logiques AND, OR, NOT
Il existe 3 opérateurs logiques: NOT, AND, OR (non, et, ou)
Question: Quels sont les véhicule de marque PEUGEOT de couleur BLEU ?
Réponse: SELECT *
FROM Véhicule
WHERE Marque ="RENAULT" AND couleur = "Bleue";
Modèle relationnel et MS Access 2007 P a g e | 42 2e
année IDA
Question: Quels sont les agents résidents à COCODY ou ANYAMA ?
Réponse: SELECT Nom, Prénom, Commune
FROM Agent
WHERE commune ="COCODY" OR commune = "ANYAMA";
 L’opérateur BETWEEN (comparaison à une fourchette de valeurs)
Sa fonction est de rechercher si une valeur se trouve dans un intervalle donné.
L’intervalle est généralement de type Numérique ou de type Date.
Question: Quelles sont les véhicules qui ont été achetés au cours de l'année 2011?
Réponse: SELECT N°Immatriculation, dateachat As [Date d'achat], marque, couleur
FROM Véhicule
WHERE DateAchat BETWEEN #01/01/2011# AND #31/12/2011#
 L’opérateur IN (comparaison à une liste de valeurs)
Cet opérateur permet de déterminer si la valeur d’un champ donné appartient à une liste de
valeurs prédéfinies. Les valeurs dans la liste des valeurs sont généralement de type Numérique,
Texte ou Date.
Question: Affichez l’étage, le type et le prix des chambres ayant pour prix 10 000, 12 000, 15 000.
Réponse:
SELECT N°Immatriculation, dateachat As [Date d'achat], marque, couleur
FROM Véhicule
WHERE couleur IN ("Bleu", "Blanc")
Modèle relationnel et MS Access 2007 P a g e | 43 2e
année IDA
3.5. Le tri et la clause ORDER BY
Cette clause permet de définir le tri des colonnes de la réponse, soit en précisant le nom littéral
de la colonne, soit en précisant son n° d'ordre dans l'énumération qui suit le mot clé SELECT.
 Syntaxe
SELECT attribut, attribut
FROM table, table
WHERE condition
ORDER BY attribut , ASC|DESC, attribut, ASC|DESC …
ASC|DESC signifient Ascendant ou DESCendant
Par défaut, l’ordre est ASC.
Question: Élaborez la liste triée de tous les agents (nom, prénom et commune).
Réponse
SELECT Nom, prénom, commune
FROM Agent
ORDER BY Nom, Prénom ;
Question : Affichez la liste de tous les véhicules de la date d'achat la plus récente à la plus
ancienne.
Réponse :
SELECT *
FROM véhicule
ORDER BY dateachat DESC,
3.6. Les fonctions d’agrégation
Les agrégats sont des fonctions utilisées pour des calculs mathématiques ou statistiques.
Derrière ce mot compliqué se cachent quelques fonctions qui peuvent être utilisées à l'intérieur des
requêtes de sélection pour faire des calculs sur le résultat de la requête.
Les paramètres d'une fonction d'agrégation sont toujours entourés de parenthèses.
Modèle relationnel et MS Access 2007 P a g e | 44 2e
année IDA
Voici les fonctions d'agrégation les plus répandues:
COUNT (*)
Détermine le nombre d'enregistrements du résultat de la requête. Tient
compte de tous les enregistrements, y compris les valeurs NULL.
COUNT (Nom d'un champ)
Détermine le nombre des enregistrements pour lesquels le champ
indiqué ne contient pas la valeur NULL.
SUM (Nom d'un champ)
Calcule pour tous les enregistrements sélectionnés, la somme des
valeurs du champ indiqué (non NULL).
AVG (Nom d'un champ)
Calcule pour tous les enregistrements sélectionnés, la moyenne des
valeurs du champ indiqué (non NULL).
MAX (Nom d'un champ)
Détermine pour tous les enregistrements sélectionnés, la plus grande
des valeurs du champ indiqué (non NULL).
MIN (Nom d'un champ)
Détermine pour tous les enregistrements sélectionnés, la plus petite
des valeurs du champ indiqué (non NULL).
Nous utiliserons la base de données Client-contrat
Question : comptez le nombre de contrat signés par le client N°4
Réponse : SELECT count (*) As [Nombre de contrat]
FROM contrat
WHERE n°client=4 ;
Question : affichez le contrat de plus grande et de plus petite prime
Réponse : SELECT MAX (prime) As [Prime maximale], MIN (prime) As [Prime minimale]
FROM contrat;
Question : affichez la moyenne générale des primes
Réponse : SELECT AVG (prime) As [Moyenne gle des primes payées]
FROM contrat;
3.7. Les requêtes sur les groupes
C’est une opération qui consiste à regrouper des attributs provenant de plusieurs tables.
Deux clauses sont souvent utilisées : GROUPE BY et HAVING.
Modèle relationnel et MS Access 2007 P a g e | 45 2e
année IDA
 La clause GROUPE BY
Elle est nécessaire dès que l'on utilise des fonctions d’agrégats vues plus haut. Cette clause groupe
les lignes sélectionnées en se basant sur la valeur de colonnes spécifiées pour chaque ligne et
renvoie une seule ligne par groupe.
Syntaxe :
SELECT liste de champs de groupe, [COUNT, SUM…] [AS NveauNomChamp]
FROM table
WHERE condition
GROUP BY liste de champs de groupe
ORDER BY nom d’un champ [ASC/DESC], nom d’un champ [ASC/DESC], …;
Question : affichez le n° du client ainsi que le montant total de primes payées chaque client par
mois, dans l'ordre décroissant.
Réponse : SELECT N°Client, sum (prime) As [Total des primes payées par mois]
FROM contrat
GROUP BY n°client
ORDER BY sum (prime) desc ;
 La clause HAVING
Elle permet d’appliquer des prédicats de restrictions (ou conditions) sur les résultats de
regroupement. Elle offre la possibilité d’éliminer du résultat, les groupes qui ne donnent pas
satisfaction aux critères de sélection des groupes.
Syntaxe :
SELECT liste de champs de groupe, [COUNT, SUM…] [AS NveauNomChamp]
FROM table
WHERE condition
GROUP BY liste de champs de groupe
HAVING condition de sélection des groupes
ORDER BY nom d’un champ [ASC/DESC], nom d’un champ [ASC/DESC], …;
Question : affichez le n° du client ainsi que le montant total de primes payées chaque client par
mois, dans l'ordre décroissant.ne prendre en compte que les clients dont le montant est >150000 F.
Réponse :
SELECT N°Client, sum (prime) As [Total des primes payées par mois]
FROM contrat
GROUP BY n°client
HAVING sum (prime) >150000
ORDER BY sum (prime) desc ;
Modèle relationnel et MS Access 2007 P a g e | 46 2e
année IDA
4. Le blocage des requêtes
Les requêtes Action peuvent avoir des conséquences désastreuses sur votre base de données.
C’est pourquoi, par défaut et pour des mesures de sécurité, Access empêche l'exécution de toutes
les requêtes Action, à savoir les requêtes Ajout, Mise à jour, Suppression ou Création de table.
Si vous essayez d'exécuter une requête Action et que rien ne semble se produire, vérifiez si le
message suivant s'affiche dans la barre d'état Access :
Le mode désactivé a bloqué cette action ou cet événement.
A l'affichage de ce message, procédez comme suit :
Activer le contenu bloqué :
Dans la barre des messages, cliquez sur Options.
La boîte de dialogue Options de sécurité Microsoft Office s'affiche
Sélectionnez l'option Activer ce contenu, puis cliquez sur OK.
Exécutez votre requête à nouveau.
Si vous ne voyez pas la barre de messages :
Cliquez sur l'onglet Outils de base de données puis, dans Afficher/Masquer, cliquez sur Barre
des messages.
Modèle relationnel et MS Access 2007 P a g e | 47 2e
année IDA
5. Les requêtes d’insertion: La commande INSERT
5.1. Définition :
Une requête d’insertion permet d’insérer (ajouter) un tuple dans une table déjà créée.
5.2. Syntaxe :
INSERT INTO <Nom de la table> (<Liste des champs>)
VALUES (<Valeurs pour les champs>);
Les parenthèses dans les requêtes sont obligatoires ;
Le nombre d’attributs doit correspondre au nombre de valeurs à insérer.
5.3. Exemple :
 Ajouter la ligne suivante à la table « CLIENT »
INSERT INTO CLIENT ( Nom, prénom, tel )
VALUES ("GARANGOME", "PATRICIA", "50 12 14 16");
Remarques :
 Dans cette requête, l’attribut « N°Client » a été omis. Cela à dessein car il est de type
« Numérique Automatique ». Access l’ajoutera automatique lors de l’insertion du tuple.
 Vérifiez qu’il y a une correspondance (l'ordre des attributs) entre les attributs déclarés dans la
clause INSERT INTO et la liste des valeurs de la clause VALUES (sémantique, syntaxe et type
de données).
6. Les requêtes de modification (ou de mise à jour): La commande UPDATE
6.1. Définition
Une requête de mise à jour permet de modifier la valeur d’un ou plusieurs attributs dans un ou
plusieurs tuples d’une table. Le verbe utilisé est UPDATE.
6.2. Syntaxe
UPDATE <Nom de la table>
SET <Nom d'un champ> = {valeur}, <Nom d'un champ>={valeur}, . .
WHERE <Critères de sélection>;
6.3. Exemple
 Modifions la prime du contrat N°4 qui passe de 100 000 F à 90 000 F.
UPDATE Contrat
SET prime = 90000
WHERE N°Contrat = 4 ;
Modèle relationnel et MS Access 2007 P a g e | 48 2e
année IDA
7. Les requêtes de suppression : La commande DELETE
7.1. Définition
Une requête de suppression permet de supprimer un ou plusieurs tuples dans la table. Le verbe
utilisé est DELETE.
7.2. Syntaxe
DELETE FROM <nom de la table>
WHERE <critère de sélection>
Remarque : si on n’ajoute pas la clause WHERE, tous les tuples de la table sont supprimés.
7.3. Exemple :
 À supposer que le contrat numéro 6 devrait être annulé, donc à supprimer.
DELETE FROM Contrat
WHERE N°Contrat = 6;
8. Les requêtes paramétrées
8.1. Définition
Une requête paramétrée est une variante de requête qui permet à un utilisateur de saisir une
variable dans une boite de dialogue avant l’exécution.
8.2. Exemple
Soit la table CONTRAT ; imaginons que de temps en temps vous vouliez établir cette liste, mais en
sélectionnant les contrats signés après une date quelconque. Au lieu de modifier à chaque fois le
critère de sélection en SQL, vous pouvez définir une requête paramétrée. Dans la requête
paramétrée, on n’indique pas directement la date de fin comme constante, mais une variable
appelée paramètre, et à chaque fois que la requête est exécuté, une boîte de dialogue demandera
d’entrer une date pour l’exécution.
Voici la requête à formuler avec le paramètre sur la date limite :
 Cliquez sur OK
Modèle relationnel et MS Access 2007 P a g e | 49 2e
année IDA
 Pour notre base de données, on obtient le résultat suivant :
Remarque : une requête peut comporter plusieurs paramètres.
9. Les requêtes multitable
Une requête multitable fait intervenir plusieurs tables/requêtes.
Nous allons mettre en évidence cette notion en utilisant les trois tables en relation comme suit :
Relations entre les tables
9.1. La jointure
9.1.1. Définition de la jointure
Une jointure est une opération qui consiste en une fusion, sous condition, de plusieurs tables. Elle
permet de combiner les colonnes de plusieurs tables. Pour se faire, la jointure fait des requêtes sur
plusieurs tables en les mettant en relation.
9.1.2. Création d’une jointure
Pour créer une jointure, on doit:
 Indiquer dans la clause FROM les noms des tables impliquées
 Préciser dans la clause WHERE une condition de jointure
 Indiquer dans la clause SELECT les noms des champs à afficher
La condition de jointure spécifie généralement, mais pas nécessairement, une égalité entre une
clé étrangère d'une table et la clé primaire d'une table correspondante.
Modèle relationnel et MS Access 2007 P a g e | 50 2e
année IDA
9.1.3. Exemples
 Quel est le code SQL d'une requête qui affiche pour chaque contrat, le numéro du contrat, la
date, ainsi que le nom et le prénom du client concerné.
SELECT N°Contrat, DateContrat, Prime,nom, prénom
FROM Contrat, Client
WHERE Contrat.N°client = Client.N°client;
 Affichez la liste des clients qui ont un contrat dont la prime vaut au moins 100 000 F.
SELECT distinct Client.N°Client, Nom, Prénom, N°Contrat, Prime
FROM Contrat, Client
WHERE (Contrat.N°client = Client.N°client) AND (prime>=100000);
 Affichez les clients qui ont signé un contrat au cours du mois de mai 2012.
SELECT client.N°Client, nom, prénom,n°contrat, prime, datecontrat
FROM client,Contrat
WHERE (client.n°client = Contrat.n°client) And (datecontrat Between #5/1/2012# And
#5/31/2012#);
9.2. L’auto-jointure
9.2.1. Définition
L’auto-jointure est une opération qui consiste à joindre une table à elle-même. Elle permet
notamment de modéliser des structures de données complexes comme des arbres.
Dans une auto-jointure, l’utilisation des alias est obligatoire.
9.2.2. Exemple
Affichez le numéro du contrat, la prime et la date de signature pour tout contrat dont le montant de
la prime est supérieur ou égal au contrat N° 4.
SELECT Ct1.N°contrat, Ct1.prime,Ct1.datecontrat
FROM contrat Ct1, contrat Ct2
WHERE Ct2.N°contrat = 4 AND Ct1.prime > Ct2.prime ;
Modèle relationnel et MS Access 2007 P a g e | 51 2e
année IDA
9.3. Les requêtes imbriquées
9.3.1. Introduction
Nous savons qu'une requête de sélection se base sur une ou plusieurs tables pour afficher un
résultat. En SQL, on peut imbriquer plusieurs requêtes, c.à.d. le résultat d'une requête imbriquée
sert comme base pour une deuxième requête. Une requête imbriquée est encore parfois appelée
« SELECT interne » ou « sous-requête ».
9.3.2. Quelques exemples de requêtes imbriquées
 Affichez le nom, prénom, téléphone du client qui a signé le contrat N°3
SELECT nom, prénom, tel
FROM client
WHERE N°client = (SELECT N°client
FROM Contrat
WHERE N°Contrat = 3);
Remarque: la requête ci-dessus est équivalente à celle-ci:
SELECT nom, prénom, tel
FROM client, contrat
WHERE (Client.N°client =contrat.N°client) And (N°Contrat = 3);
10. Le QBE
10.1. Définition du QBE
Le langage QBE est un langage visuel, très pratique d’emploi et très simple à mettre en œuvre. Il
permet à un utilisateur d’opérer une interrogation visuelle d’une base de données généralement
dans un environnement de travail « multi-fenêtrage » à base de fenêtres, menu, sous-menu, onglets
etc.
10.2. Description du QBE
QBE offre à l'utilisateur une interface graphique qui permet de :
 Sélectionner une table sur laquelle la requête sera basée (SQL : FROM …).
 Choisir parmi les champs de cette table ceux qui vont être affichés (SQL : SELECT …).
 Définir pour un ou plusieurs champs des critères de sélection (SQL : WHERE …).
 Définir un ordre de tri (SQL : ORDER BY …).
 etc.
Il est cependant important de savoir que les requêtes QBE sont toujours exécutées via SQL, parce
qu'un SGBD ne comprend pas vraiment QBE. QBE n'est qu'une interface graphique couplée à un
interpréteur, qui transforme les indications de l'écran QBE en SQL. La partie du SGBD, qui exécute
la requête (appelée le moteur SQL), utilise le code SQL généré par l'interpréteur de la même façon
que celui entré directement par l'utilisateur.
Modèle relationnel et MS Access 2007 P a g e | 52 2e
année IDA
10.3. Comment créer une requête via le QBE ?
 Pour construire une requête à l’aide du QBE
- Cliquez sur le menu Créer
- Dans le sous-menu Autre, sélectionnez l’icône Création de requête
- S’affiche un écran comme ci-dessous avec la fenêtre des tables Access (Tables, Requêtes,
Les deux)
La fenêtre « Afficher la table » permet de sélectionner la (les) table(s) / requête(s) qui doivent
contenir les champs nécessaire à notre requête.
- Sélectionner la table/requête et cliquez sur le bouton Ajouter.
- Cliquez sur Fermer après avoir affiché les objets nécessaires.
Dans la figure ci-dessous, vous constatez que nous avons ajouté les tables Contrat et Client.
Cet écran présente deux niveaux :
1er
niveau : les tables en relation.
2e
niveau : un tableau reprenant les champs et tables sélectionnés.
Modèle relationnel et MS Access 2007 P a g e | 53 2e
année IDA
 Quels sont les champs que nous souhaitons voir apparaitre dans notre requête ?
Il y a plusieurs manières de sélectionner les champs de la requête.
1ère
méthode :
- Dans les tables en relation, faites un double clic sur chaque champ nécessaire.
- Ces champs sont immédiatement visibles dans la le tableau du bas en spécifiant la table dont
ils sont issus.
- Les boutons d’option sont cochés en vert.
2e
méthode :
Dans le 2e
niveau de la fenêtre
- Cliquez sur l’onglet de la zone Table pour sélectionner la table.
- Puis cliquez sur l’onglet de la zone Champ pour sélectionner le champ.
 Comment annuler un champ ?
Il suffit de désactiver le bouton d’option relatif au champ.
 Comment exécuter la requête QBE ?
Cliquez sur l’icône pour exécuter la requête.
Résultat de l’exécution de la requête
Modèle relationnel et MS Access 2007 P a g e | 54 2e
année IDA
 On peut basculer du QBE au SQL
Lorsque le QBE est exécuté on se trouve dans le mode Affichage de requête.
Pour basculer dans un autre mode, cliquez ici et sélectionner SQL:
En sélectionnant le mode SQL, on s'aperçoit que MS Access génère automatiquement le code SQL
correspondant à la fenêtre QBE :
11. La définition des données
Nous avons vu plus haut que le DDL (Data Definition Language) est la partie du SQL qui permettait
de décrire les éléments de base d’une base de données.
11.1. La création d’une table : CREATE TABLE
L’instruction CREATE TABLE permet de définir une nouvelle table, ses champs et ses contraintes.
11.1.1. Syntaxe
La structure de base simplifiée de cette instruction est du type :
CREATE TABLE table
Attribut, Attribut, …
CONSTRAINT attribut index;
CREATE TABLE : précise le nom de la table à créer, le type de données et la taille des champs.
CONSTRAINT : précise l’index champ à créer.
11.1.2. Exemple
Créons une nouvelle base de données à l’aide des commandes SQL.
- Lancez MS ACCESS
- Cliquez sur « Créer une base de données vide »
- Nommez la nouvelle base de données, par exemple GESTION2 et enregistrez.
Modèle relationnel et MS Access 2007 P a g e | 55 2e
année IDA
- Créez la table « Technicien » avec ses champs et comme clé primaire, le Matricule.
CREATE TABLE Technicien
(Matricule Integer not NULL PRIMARY KEY ,
Nom text(15),
Prénom text(20),
Cellulaire text(8),
Fax text(8)
CONSTRAINT Technicien UNIQUE (Matricule);
Cette instruction crée une nouvelle table nommée Technicien comportant cinq champs de type
numérique entier, chaîne de caractères et un index unique composé d’un seul champ
(Matricule).
11.2. La création d’un index : CREATE INDEX
L’instruction CREATE INDEX permet de créer un index dans une table.
11.2.1. Syntaxe
La structure de base simplifiée de cette instruction est du type :
CREATE [UNIQUE] INDEX nom_index
ON table attribut
CREATE [UNIQUE] INDEX : permet de préciser le nom de l’index à créer et la possibilité, ou
non, d’avoir des doublons.
ON : précise le nom de la table existante, dans laquelle l’index doit être créé, et le nom du ou
des champs à indexer.
11.2.2. Exemple
Créons un index sur la table Technicien en utilisant le champ Matricule.
CREATE UNIQUE INDEX (indmatricule) ON Technicien (matricule);
11.3. Modification d’une table : ALTER TABLE
Cette instruction permet de modifier une table existante soit en ajoutant soit en supprimant des
champs.
Syntaxe : ALTER TABLE table
11.3.1. Ajout de colonne : ADD
ADD COLUMN : Cette structure permet d’ajouter des champs dans la table.
Syntaxe : ADD COLUMN liste des champs
11.3.2. Suppression de colonne : DROP
DROP COLUMN : Cette structure permet de supprimer des champs dans la table.
Modèle relationnel et MS Access 2007 P a g e | 56 2e
année IDA
Syntaxe générale : DROP COLUMN liste des champs
Modèle relationnel et MS Access 2007 P a g e | 57 2e
année IDA
Chapitre 6 : LES FORMULAIRES
1. À propos des formulaires
1.1. Définition
Un formulaire est un objet de base de données qui permet d'entrer, de modifier ou d'afficher les
données d'une table ou d'une requête. Les formulaires permettent également de contrôler l'accès
aux données en n'affichant, par exemple, que certains champs ou lignes de données.
Il est plus facile d'utiliser la base de données à l'aide d'un formulaire. On peut y ajouter des
boutons et d'autres fonctionnalités afin d'automatiser les opérations fréquemment effectuées. Les
formulaires représentent donc un autre outil de manipulation de données des SGBD.
En général on utilise un formulaire pour:
 Entrer des données.
 Consulter des données.
 Modifier des données.
Vous remarquez que ce formulaire affiche un enregistrement à la fois.
Un formulaire est toujours lié à une table ou bien à une requête. Il ne représente donc qu'une
interface entre l'utilisateur et les tables. Toutes les données saisies sur un formulaire sont donc
inscrites dans la (les) table(s) correspondante(s).
1.2. Les contrôles d’un formulaire
En MS ACCESS 2007 le contenu des la barre des contrôles disponibles se présente comme suit:
Modèle relationnel et MS Access 2007 P a g e | 58 2e
année IDA
Boîtes à outils en Access 2007
1.3. Description des contrôles
Les contrôles Leurs descriptions
L’étiquette
Permet d’afficher des textes descriptifs, tels que des titres des légendes ou
des instructions brèves.
La zone de texte
Permet d’afficher les données d’une table, d’une requête ou d’une instruction
SQL. Elle permet aussi de saisir des données.
La case à cocher
Elle permet d’afficher une valeur Oui/Non à partir d’une table, d’une requête
ou d’une instruction SQL.
Le bouton d’option
Permet d’afficher une valeur Oui/Non à partir d’une table d’une requête ou
d’une instruction SQL.
Le bouton bascule
Il permet d’indiquer si une situation est vraie ou fausse à partir d’une table,
d’une requête ou d’une instruction SQL.
Le groupe d’options
Permet d’afficher un ensemble limité d’alternatives. L’utilisateur ne peut
sélectionner qu’une option à la fois. Il est composé de deux parties : un cadre
de groupe et un ensemble de cases à cocher, de boutons d’options ou de
boutons bascule.
La zone de liste Elle affiche en permanence une liste de valeurs permettant à l’utilisateur de
sélectionner une valeur de cette liste tout en limitant ainsi les saisies de
données aux seules valeurs contenues dans la liste.
La zone de liste
modifiable
Elle représente une combinaison d’une zone de texte et d’une zone de liste.
Elle offre la possibilité, à la fois, de sélectionner une valeur dans une liste
déroulante et de saisir de nouvelles valeurs.
L’onglet Il permet de présenter plusieurs pages d’information sous forme d’un seul
ensemble. Cela est particulièrement utile lorsque l’on travaille avec plusieurs
contrôles pouvant être répartis en deux ou plusieurs catégories.
Le bouton de
commande
Il permet d’exécuter une action ou un ensemble d’actions. En Access il est
possible de créer plus de 30 types de boutons de commandes différents.
Sous-formulaire ou
Sous-état
Contrôle utilisé pour afficher les données provenant de plusieurs tables dans
un formulaire ou un état.
Graphique (menu Insertion) Affiche les données Microsoft Access sous forme de graphique dans un
formulaire ou un état.. Pour ajouter un graphique créé à partir d'une autre
application, telle que Microsoft Excel ou Lotus 1-2-3, utilisez les outils Cadre
d'objet indépendant ou Cadre d'objet dépendant de la boîte d'outils.
Cadre d'objet indépendant
Cadre servant à afficher un objet OLE indépendant – par exemple une feuille
de calcul Microsoft Excel – dans un formulaire ou un état. Cet objet reste
identique lorsque vous vous déplacez d'un enregistrement à un autre.
Cadre d'objet dépendant
Permet d'afficher des objets OLE, tels qu'une série d'images, dans un
formulaire ou dans un état. Ce contrôle sert dans le cas d'objets stockés
dans un champ de la source d'enregistrements sous-jacents du formulaire ou
de l'état. Un objet différent apparaît dans le formulaire ou l'état à mesure que
vous vous déplacez d'enregistrement en enregistrement.
Logo
Insère une image dans le formulaire ou l’état dans le but de l’utiliser comme
logo.
Titre / Page / Date et
Heure
Insère dans le document un titre, le numéro de page, la date et l’heure.
Modèle relationnel et MS Access 2007 P a g e | 59 2e
année IDA
1.4. Les types de contrôles
Les contrôles peuvent être dépendants, indépendants ou calculés :
 Le contrôle dépendant : c'est un contrôle dont la source de données est un champ de
table ou de requête. Les contrôles dépendants servent à afficher des valeurs issues de champs
d'une base de données. Ces valeurs peuvent consister en du texte, des dates, des valeurs
numériques, des valeurs Oui/Non, des images ou des graphiques. Par exemple, une zone de
texte de formulaire qui présente le nom d'un employé peut tirer cette information du champ Nom
de la table Employés.
 Le contrôle indépendant : c'est un contrôle qui n'a pas de source de données (comme
un champ ou une expression). Les contrôles indépendants s'avèrent particulièrement utiles pour
afficher des informations, des lignes, des rectangles et des images. Par exemple, une étiquette
qui affiche le titre d'un formulaire est un contrôle indépendant.
 Le contrôle calculé : c'est un contrôle dont la source de données est une expression, et
non un champ. C'est vous qui spécifiez la valeur à utiliser comme source de données du contrôle
en définissant une expression. Une expression peut être une combinaison d'opérateurs (tels que
= et + ), de noms de contrôles, de noms de champs, de fonctions renvoyant une valeur unique et
de valeurs de constante. Par exemple, l'expression suivante calcule le prix d'un article avec une
remise de 25 % en multipliant la valeur figurant dans le champ Prix unitaire par une valeur de
constante (0,75).
= [Prix unitaire] * 0,75
Une expression peut utiliser les données d'un champ de la table ou de la requête sous-jacente du
formulaire, ou encore les données d'un autre contrôle du formulaire.
2. Utilisation d’un formulaire
2.1. Quand faut-il utiliser un formulaire ?
 Lorsqu'on ne veut pas que les utilisateurs travaillent directement dans les tables.
 Les formulaires offrent généralement des mécanismes de sécurité plus sophistiqués tels que
les zones de listes qui empêchent les utilisateurs d'entrer n'importe quelle valeur dans un
champ etc.
 Lorsqu'on veut présenter les données sous une forme plus conviviale.
 Lorsqu'on désire afficher les enregistrements un à la fois. ( Formulaires Colonne Simple)
Le principe de conception d'un bon formulaire est toujours de minimiser le nombre de
frappes afin de minimiser les erreurs possibles.
2.2. Quelle est la base de création d'un formulaire ?
Modèle relationnel et MS Access 2007 P a g e | 60 2e
année IDA
 Tout comme les tables et les requêtes, un formulaire est un composant d'une BD, qui doit
être créé et défini avant de pouvoir être utilisé pour manipuler les données.
 Chaque formulaire se crée à partir d'une table ou d'une requête.
 Les données affichées dans un formulaire proviennent donc de tables ou de requêtes, tandis
que certaines informations spécifiques à l'apparence du formulaire (p.ex. couleur de l'arrière
plan …) sont stockées dans la définition du formulaire.
3. Les types de formulaires
Principalement, nous distinguons trois types de formulaires :
3.1. Le formulaire colonne simple
Dans un formulaire Colonne Simple, les valeurs des enregistrements sont affichées dans une
seule colonne. Chaque valeur d'un enregistrement se trouve dans un champ de formulaire dédié.
Un seul enregistrement est donc représenté à chaque fois.
3.2. Le formulaire tabulaire
Modèle relationnel et MS Access 2007 P a g e | 61 2e
année IDA
Dans un formulaire tabulaire, les enregistrements sont représentés sur des lignes et des
colonnes. Ce type de formulaire a une apparence similaire à celle de la vue d'un tableau ou d'un
résultat d'une requête.
3.3. Le formulaire graphique
Un formulaire graphique permet de représenter les informations d’une table, d’une requête sous la
forme d’un graphique.
La plupart des SGBD offrent une multitude d'options de représentations graphiques (Histogrammes
2D, Histogrammes 3D, Diagrammes circulaires …).
3.4. La création d’un formulaire
3.4.1. Avant de créer un formulaire, quelques réflexions s'imposent:
 Comment est-ce qu'on veut représenter les données et quel type de formulaire est le plus
adéquat ?
 Est-ce que l'utilisateur aura la possibilité d'ajouter, de modifier respectivement de supprimer
des données ?
 Quels sont les contrôles appropriés pour représenter les différents champs de la table
respectivement de la requête ?
Voici quelques règles générales d'utilisation des différents contrôles standards.
 Pour représenter un champ à valeur logique (Oui/Non), employez impérativement une case à
cocher. Plusieurs cases à cocher peuvent être regroupées afin de représenter plusieurs
champs à valeur logique.
 Pour représenter un champ, qui ne peut contenir qu'un nombre très limité (max 5) de valeurs
prédéfinies du type numérique, texte ou date, qui sont en plus mutuellement exclusives,
utilisez un groupe de boutons d'options.
 Un champ, qui peut contenir un nombre limité (> 5) de valeurs prédéfinies du type
numérique, texte ou date, qui sont en plus mutuellement exclusives, devra être représenté
par une zone de liste.
Exemple :
Le gérant peut sélectionner le numéro d’étage en sélectionnant.
Exemple: le type de chambre est soit « Simple » soit « Double »
Modèle relationnel et MS Access 2007 P a g e | 62 2e
année IDA
 Lorsque pour un champ, représenté normalement par une zone de liste, vous voulez donner
à l'utilisateur la possibilité d'entrer des valeurs outres que celles prédéfinies, utilisez une liste
modifiable.
 Pour les champs ou vous ne pouvez pas du tout anticiper les valeurs, et qui ne sont pas du
type logique, utilisez une zone de texte.
Exemple: L'employé doit entrer le nom du client.
Lors de la conception d'un formulaire, le respect de ces quelques règles garantit à l'utilisateur le
principe de la saisie minimale. Partout ou une sélection de valeurs prédéfinies est possible,
l'utilisateur n'a pas besoin d'entrer les données au clavier.
Avantage:
1. La rapidité de la saisie des données augmente  meilleure productivité.
2. Élimination de beaucoup de sources d'erreur.
3.4.2. Les sections d’un formulaire
Un formulaire peut avoir plusieurs sections distinctes, ce qui vous permet alors d'afficher les
contrôles de différentes manières. Voici la définition de chaque section
Section Définition
En-tête d'un
formulaire
Elle permet, par exemple, d’afficher un titre, des instructions d’utilisation du
formulaire ou des boutons de commande qui ouvrent des formulaires liés ou
effectuent d’autres opérations.
En-tête de page
Elle permet, par exemple, d’afficher un titre, des en-têtes de colonne ou toute
information souhaitée en haut de chaque page. L’en-tête de page n’apparaît que
si l’on imprime le formulaire.
Section détail
Elle contient en général des contrôles dépendants des champs ou d’une ou
plusieurs tables relationnelles. Elle permet donc d’afficher des champs
provenant de ces champs. Elle peut aussi comporter des contrôles
indépendants des champs des tables de la base de données, telles que des
étiquettes.
Pied de page
Elle permet, par exemple, d’afficher la date, le numéro de page ou toute
information souhaitée au bas de chaque page. Il n’apparaît que si l’on imprime
le formulaire.
Pied de formulaire
Elle permet, par exemple, d’afficher des instructions d’utilisation du formulaire,
des boutons de commande ou des contrôles indépendants, relatifs à
l’acceptation des données entrées par l’utilisateur.
Remarques:
- On ne peut pas supprimer la section Détail du formulaire.
- Pour redimensionner une section, placez le pointeur de la souris sur un bord de la section
jusqu'à ce qu'il adopte la forme d'une flèche de redimensionnement gauche-droite, puis faites
glisser le bord jusqu'à ce que la section prenne la taille adéquate.
Modèle relationnel et MS Access 2007 P a g e | 63 2e
année IDA
Les différentes sections du formulaire
4. Les modes de création d’un formulaire
Les formulaires peuvent être comparés à des fenêtres à travers lesquelles les personnes voient
et atteignent votre base de données. Un formulaire efficace permet d'accélérer l'utilisation d'une
base de données dans la mesure où les personnes n'ont pas besoin de rechercher les éléments
dont elles ont besoin. Il améliore non seulement la convivialité et l'efficacité de la base de données,
mais il permet également d'éviter la saisie de données incorrectes. Il existe plusieurs modes de
création.
4.1. Pour la manipulation des formulaires :
Il faut savoir
 Créer un formulaire à l'aide de l'outil Formulaire
 Créer un formulaire double affichage à l'aide de l'outil Formulaire double affichage
 Créer un formulaire affichant plusieurs enregistrements à l'aide de l'outil Plusieurs éléments
 Créer un formulaire à l'aide de l'Assistant Formulaire
 Créer un formulaire à l'aide de l'outil Vide
 Utilisation des contrôles
 Présentation des dispositions de contrôle
 Présentation des modes Page et Création
 Ajuster votre formulaire en mode Page
 Ajuster votre formulaire en mode Création
 Ajouter des contrôles à votre formulaire
 Enregistrer votre travail
Modèle relationnel et MS Access 2007 P a g e | 64 2e
année IDA
4.2. Création d'un formulaire à l'aide de l'outil « Formulaire »
L'outil Formulaire permet de créer facilement et rapidement un formulaire. Lorsque vous utilisez cet
outil, tous les champs de la source de données sous-jacente sont placés dans le formulaire. Vous
pouvez commencer à utiliser le nouveau formulaire immédiatement, comme vous pouvez le modifier
en mode Page ou Création pour l'adapter à vos besoins.
Utilisons l'outil Formulaire pour créer un formulaire
1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que
vous souhaitez faire figurer dans le formulaire.
2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire.
Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des
modifications à la conception du formulaire tout en ayant les données affichées. Par exemple, vous
pouvez ajuster la taille des zones de texte en fonction des données à afficher, si nécessaire.
Si Access détermine que seule une table a une relation un-à-plusieurs avec la table ou la
requête qui a servi à la création du formulaire, Access ajoute une feuille de données au formulaire,
basée sur la table ou la requête associée. Par exemple, si vous créez un formulaire standard à
partir de la table Employés, et qu'une relation un-à-plusieurs est définie entre la table Employés et la
table Commandes, la feuille de données affiche tous les enregistrements de la table Commandes se
rapportant à l'enregistrement Employé actif. Vous pouvez supprimer la feuille de données du
formulaire si vous jugez ne pas en avoir besoin. S'il existe plusieurs tables liées par une relation un-
à-plusieurs avec la table qui a servi à créer le formulaire, Access n'ajoute pas de feuilles de
données au formulaire.
4.3. Création d'un formulaire à l'aide de l'outil « Formulaire double affichage »
Le formulaire double affichage est une nouvelle fonctionnalité de Microsoft Office Access 2007
qui offre deux affichages simultanés des données : un affichage Formulaire et un affichage Feuille
de données.
Ces deux affichages sont rattachés à la même source de données et sont toujours
synchronisés. Ainsi, si vous sélectionnez un champ dans une partie du formulaire, le même champ
est sélectionné dans l'autre partie du formulaire. Vous pouvez ajouter, modifier ou supprimer des
données dans chacune des parties, comme en modifier ou en supprimer (à condition que la source
d'enregistrement soit modifiable et que vous n'ayez pas configuré le formulaire de façon à empêcher
ces opérations).
Modèle relationnel et MS Access 2007 P a g e | 65 2e
année IDA
L'utilisation de formulaires double affichage offre les avantages de deux types de formulaires dans
un seul et même formulaire. Par exemple, vous pouvez utiliser la partie feuille de données du
formulaire pour retrouver rapidement un enregistrement, et utiliser ensuite la partie formulaire pour
consulter ou modifier l'enregistrement.
Pour créer un formulaire double affichage à l'aide de l'outil Formulaire double affichage :
1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que
vous souhaitez faire figurer dans le formulaire. Vous pouvez également ouvrir la table ou la
requête en mode Feuille de données.
2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire double
affichage.
Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des
modifications à la conception du formulaire tout en ayant les données affichées. Par exemple, vous
pouvez ajuster la taille des zones de texte en fonction des données à afficher, si nécessaire.
4.4. Création d'un formulaire affichant plusieurs enregistrements à l'aide de l'outil
« Plusieurs éléments »
Lorsque vous créez un formulaire à l'aide de l'outil Formulaire standard, le formulaire créé par
Access affiche un seul enregistrement à la fois. Si vous avez besoin d'un formulaire qui affiche
plusieurs enregistrements tout en offrant davantage de possibilités en termes de personnalisation
qu'une feuille de données, vous pouvez utiliser l'outil Plusieurs éléments.
Modèle relationnel et MS Access 2007 P a g e | 66 2e
année IDA
1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que
vous souhaitez faire figurer dans le formulaire.
2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Plusieurs éléments.
Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des
modifications à la conception du formulaire tout en ayant les données affichées. Par exemple,
vous pouvez adapter la taille des zones de texte en fonction des données à afficher.
Lorsque vous utilisez l'outil Plusieurs éléments, le formulaire créé par Access ressemble à une
feuille de données. Les données sont disposées dans des lignes et des colonnes, et vous voyez
plusieurs enregistrements à la fois. Toutefois, un formulaire Plusieurs éléments offre davantage
d'options de personnalisation qu'une feuille de données, avec notamment la possibilité d'ajouter
des éléments graphiques, des boutons et d'autres contrôles.
4.5. Création d'un formulaire à l'aide de l' « Assistant Formulaire »
Pour être plus sélectif quant aux champs à faire figurer sur votre formulaire, vous pouvez utiliser
l'Assistant Formulaire. Vous pouvez également définir la façon dont les données sont regroupées
et triées, et vous pouvez utiliser les champs de plusieurs tables ou requêtes, si tant est que vous
ayez préalablement spécifié les relations entre les tables et les requêtes.
Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Plus de formulaires, puis sur
Assistant Formulaire.
1. Suivez les instructions fournies dans les pages de l'Assistant Formulaire.
REMARQUE Si vous souhaitez inclure des champs de plusieurs tables ou requêtes dans
votre formulaire, répétez les étapes afin de sélectionner une table ou une requête, puis cliquez
sur les champs supplémentaires que vous souhaitez inclure dans le formulaire. Cliquez ensuite
sur Suivant ou sur Terminer pour continuer.
2. Dans la dernière page de l'Assistant, cliquez sur Terminer.
4.6. Création d'un formulaire à l'aide de l'outil « Vide »
C'est un outil qui permet de créer un formulaire en peu de temps, surtout si vous prévoyez de placer
un nombre limité de champs dans votre formulaire.
1. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire vierge.
Access ouvre un formulaire vide en mode Page et affiche le volet Liste de champs.
2. Dans le volet Liste de champs, cliquez sur le signe plus (+) en regard de la ou des tables
contenant les champs que vous souhaitez faire figurer sur le formulaire.
Modèle relationnel et MS Access 2007 P a g e | 67 2e
année IDA
3. Pour ajouter un champ au formulaire, double-cliquez dessus ou faites-le glisser vers le
formulaire. Pour ajouter plusieurs champs à la fois, maintenez la touche Ctrl enfoncée,
cliquez sur plusieurs champs, puis faites-les glisser simultanément vers le formulaire.
4. Pour ajouter un logo, un titre, des numéros de page ou la date et l'heure au formulaire,
utilisez les outils figurant dans le groupe Contrôles, sous l'onglet Mise en forme.
5. Si vous souhaitez ajouter une plus grande variété de contrôles au formulaire, passez en
mode Création en cliquant avec le bouton droit sur le formulaire, puis en cliquant sur Mode
Création . Vous pourrez dès lors utiliser les outils figurant dans le groupe Contrôles,
sous l'onglet Création.
Modèle relationnel et MS Access 2007 P a g e | 68 2e
année IDA
5. Travaux pratiques sur les formulaires
TP N°1 : Création d’un formulaire simple à l’aide de l’assistant
Présentation
MS-Access nous offre des assistants afin de nous alléger considérablement le travail d'élaboration
des différents composants d'une BD. Access contient plusieurs types d'assistants:
 Assistant de table
 Assistant de requête
 Assistant de formulaire
 Assistant de rapport
Ces assistants existent en différentes versions, en fonction du composant qu'on veut créer. Il existe
par exemple pour les formulaires un "Assistant de Formulaire Colonne Simple", un "Assistant de
Formulaire Tabulaire", un "Assistant de Formulaire Graphique", mais également par exemple un
"Assistant de Bouton de commande", qui est à notre disposition sur n'importe quel type de
formulaire.
Beaucoup de tâches ayant atteint un certain degré de complexité peuvent donc être facilitées par
l'utilisation d'un assistant.
Que fait l'assistant ?
Un assistant pose un certain nombre de questions en relation avec le composant qu'on veut créer.
Basé sur les réponses, l'assistant crée le composant pour nous.
Pour cet exercice nous allons nous baser sur la table CHAMBRES.
Nous utilisons l' « Assistant de Formulaire Colonne Simple», afin de créer le formulaire suivant :
Nom des champs Type de données Description
N°Chambre Numérique Numéro de la chambre
NumEtage Numérique Numéro de l’étage
TypeChambre Texte [15] Simple /Double
Standing Texte [15] Standard / Luxe /Grand luxe
Prix Numérique Prix de la chambre par nuit en Fr
Modèle relationnel et MS Access 2007 P a g e | 69 2e
année IDA
Ce formulaire contient des contrôles, comme par exemple les zones de texte ou les étiquettes.
L'apparence ainsi que le comportement de ces contrôles sont déterminés par leurs propriétés. Une
zone de texte possède par exemple une propriété « Couleur de fond », qui détermine la couleur
d'arrière-plan de la zone. Nous allons analyser les propriétés plus en détail lors du prochain TP,
pour l'instant, retenez uniquement la notion.
Les modes d'affichage d'un formulaire
En ce qui concerne les formulaires, il y a 3 modes:
Mode Actions
Création
Définir des nouveaux formulaires ou modifier des formulaires existants;
Placer les contrôles sur le formulaire et définir les propriétés des contrôles
et du formulaire.
Formulaire
Entrer, consulter et modifier les données. Ce mode affiche un formulaire
comme il a été défini en mode création.
Feuille de Données
Entrer, consulter et modifier les données. Ce mode affiche une "Feuille de
Données" similaire à celles qui représentent directement les données des
tables et des requêtes.
Remarque:
La création d'un formulaire à l'aide d'un assistant nous évite de créer un formulaire en mode
création. Un formulaire créé par un assistant peut bien sûr être utilisé en mode formulaire, ou mode
Feuille de Données, et peut même être modifié en mode création.
Utilisation du formulaire
Nous utiliserons en général le mode Formulaire ou le mode Feuille de Données pour entrer,
consulter et modifier des données.
ACTIVITÉS
1. Ouvrez la Base de Données GestionHotel.Accdb
2. Créez un formulaire du type "Colonne Simple", basé sur la table chambres en utilisant l'assistant
correspondant. Voici les indications nécessaires pour répondre aux questions de l'assistant:
 Tous les champs de la table apparaissent dans leur ordre original.
 Utilisez le style "Promenade" ou ‘’Solstice’’ (par exemples).
 Le titre du formulaire sera "Les chambres de l’hôtel".
 Le formulaire sera tout de suite ouvert en mode "Formulaire" (Affichage des données).
3. Sauvegardez le nouveau formulaire sous le nom FChambres.
4. Affichez le formulaire FChambres en mode "Création".
Modèle relationnel et MS Access 2007 P a g e | 70 2e
année IDA
5. Affichez le formulaire en mode "Feuille de Données".
6. Affichez le formulaire en mode "Formulaire".
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données
Cours base de données

Contenu connexe

Similaire à Cours base de données

Alphorm.com Formation EXCEL 2016 - Niveau Expert II
Alphorm.com Formation EXCEL 2016 - Niveau Expert IIAlphorm.com Formation EXCEL 2016 - Niveau Expert II
Alphorm.com Formation EXCEL 2016 - Niveau Expert IIAlphorm
 
Initiation_Access23DelafuigureInternationnal
Initiation_Access23DelafuigureInternationnalInitiation_Access23DelafuigureInternationnal
Initiation_Access23DelafuigureInternationnalAchrafarc
 
POO -- (programmation orienté objet).pdf
POO -- (programmation orienté objet).pdfPOO -- (programmation orienté objet).pdf
POO -- (programmation orienté objet).pdfhassanichaymae2903
 
Rapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleRapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleCibamboSteven
 
Detection and Analysis of Hidden Activities in Social network
Detection and Analysis of Hidden Activities in Social networkDetection and Analysis of Hidden Activities in Social network
Detection and Analysis of Hidden Activities in Social networkWiem louhichi
 
Bonnel h2 ptm05_web
Bonnel h2 ptm05_webBonnel h2 ptm05_web
Bonnel h2 ptm05_webMedAminNasri
 
Le Référentiel du système girondin d'archivage électronique
Le Référentiel du système girondin d'archivage électroniqueLe Référentiel du système girondin d'archivage électronique
Le Référentiel du système girondin d'archivage électroniqueAssociationAF
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objetNSim Technology
 
Réseaux avec NetLogo
Réseaux avec NetLogoRéseaux avec NetLogo
Réseaux avec NetLogoAlvaro Gil
 
Cours gratuit.com--id-2614
Cours gratuit.com--id-2614Cours gratuit.com--id-2614
Cours gratuit.com--id-2614SergeCowouvi1
 
Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14imen1989
 
initiationalgorithmiqueprogrammation.pdf
initiationalgorithmiqueprogrammation.pdfinitiationalgorithmiqueprogrammation.pdf
initiationalgorithmiqueprogrammation.pdfkenzafertas
 

Similaire à Cours base de données (20)

Alphorm.com Formation EXCEL 2016 - Niveau Expert II
Alphorm.com Formation EXCEL 2016 - Niveau Expert IIAlphorm.com Formation EXCEL 2016 - Niveau Expert II
Alphorm.com Formation EXCEL 2016 - Niveau Expert II
 
TD1.pdf
TD1.pdfTD1.pdf
TD1.pdf
 
Langage sas acp
Langage sas acpLangage sas acp
Langage sas acp
 
Initiation_Access23DelafuigureInternationnal
Initiation_Access23DelafuigureInternationnalInitiation_Access23DelafuigureInternationnal
Initiation_Access23DelafuigureInternationnal
 
09coursaccess
09coursaccess09coursaccess
09coursaccess
 
POO -- (programmation orienté objet).pdf
POO -- (programmation orienté objet).pdfPOO -- (programmation orienté objet).pdf
POO -- (programmation orienté objet).pdf
 
Rapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleRapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche Opérationnelle
 
Detection and Analysis of Hidden Activities in Social network
Detection and Analysis of Hidden Activities in Social networkDetection and Analysis of Hidden Activities in Social network
Detection and Analysis of Hidden Activities in Social network
 
Bonnel h2 ptm05_web
Bonnel h2 ptm05_webBonnel h2 ptm05_web
Bonnel h2 ptm05_web
 
coursaccess.pdf
coursaccess.pdfcoursaccess.pdf
coursaccess.pdf
 
Le Référentiel du système girondin d'archivage électronique
Le Référentiel du système girondin d'archivage électroniqueLe Référentiel du système girondin d'archivage électronique
Le Référentiel du système girondin d'archivage électronique
 
Auto diagnostic-1
Auto diagnostic-1Auto diagnostic-1
Auto diagnostic-1
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objet
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
Réseaux avec NetLogo
Réseaux avec NetLogoRéseaux avec NetLogo
Réseaux avec NetLogo
 
Cours gratuit.com--id-2614
Cours gratuit.com--id-2614Cours gratuit.com--id-2614
Cours gratuit.com--id-2614
 
Rapport
RapportRapport
Rapport
 
Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14
 
yasser
yasseryasser
yasser
 
initiationalgorithmiqueprogrammation.pdf
initiationalgorithmiqueprogrammation.pdfinitiationalgorithmiqueprogrammation.pdf
initiationalgorithmiqueprogrammation.pdf
 

Dernier

Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 

Dernier (20)

Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 

Cours base de données

  • 1. Les Bases de Données Le modèle relationnel et le SGBD MS Access Année académique 2014 - 2015 Ce document est un support de cours destiné aux étudiants de 2e année en BTS IDA
  • 2. Modèle relationnel et MS Access 2007 P a g e | 2 2e année IDA Table des matières Première partie : Le modèle relationnel Pages Chapitre 1 : Les caractéristiques du modèle relationnel 8 1. Présentation du modèle relationnel 8 2. Définition du modèle relationnel 8 3. Les concepts du modèle relationnel 8 3.1. La relation 8 3.2. La notion de table 8 3.3. Les colonnes et les lignes d’une table 9 3.4. La clé primaire 9 3.5. La clé secondaire 9 3.6. Les types des liens 9 3.7. Passage du modèle entité association au modèle relationnel 9 3.7.1. L’entité 9 3.7.2. Les associations de type 1-N 9 3.7.3. Les associations de type M-N 10 3.7.4. Exemple de passage 10 Chapitre 2 : L’algèbre relationnelle 11 1. Notion sur l’algèbre relationnelle 11 2. Définition de l’algèbre relationnelle 11 3. Les concepts de base de l’algèbre relationnelle 11 3.1. La relation 11 3.2. L’opération 11 3.2.1. Les opérateurs relationnels 12 3.2.2. Les opérateurs ensemblistes 12 4. Les requêtes 12 Chapitre 3 : La mise en œuvre des concepts 13 1. Les opérateurs relationnels 13 1.1. La sélection 13 1.2. La projection 13 1.3. La jointure 13 1.4. Les fonctions d’agrégat et le tri 13 2. Les opérateurs ensemblistes 14 2.1. L’union 14 2.2. L’intersection 14 2.3. La différence 14 2.4. La division 14 2.5. Le produit cartésien 14
  • 3. Modèle relationnel et MS Access 2007 P a g e | 3 2e année IDA Chapitre 4 : Travaux dirigés et exercices 15 Deuxième partie : Le SGBD MS Access Pages Chapitre 1 : Présentation de Microsoft Access 21 Chapitre 2 : Les concepts de base 23 1. La table 23 2. La requête 23 3. Le formulaire 24 4. L’état 24 5. La macro 25 6. Le module 25 Chapitre 3 : Les tables 26 1. Préliminaires : création d’une base de données 26 2. La création d’une table 26 2.1. La définition de la structure des tables 26 2.2. Création d’une table « Agent » 27 2.3. Création d’une table « Véhicule » 28 2.4. Les manipulations à maitriser 29 3. Les autres modes de création d’une table 29 3.1. Création avec les modèles de tables 29 3.2. Le mode table 30 3.3. Le mode ListeSharePoint 30 Chapitre 4 : Les relations entre tables 31 1. Les clés primaires et les clés étrangères 31 2. Les index 31 3. L’établissement des relations entre tables 32 4. Les règles d’intégrité 32 5. Les manipulations sur les relations 34 Chapitre 5 : Les requêtes et le langage SQL 35 Introduction aux requêtes 35 1. Les notions sur les requêtes 35 1.1 Définition d’une requête 35 1.2 Les menus de requêtes 35 1.3 Les différents types de requêtes 36 2. Le langage SQL 36 2.1. Définition du SQL 36 2.2. Les subdivisions du SQL (DDL, DML, DCL, TCL, SQL Embedded) 36
  • 4. Modèle relationnel et MS Access 2007 P a g e | 4 2e année IDA 3. Les requêtes de sélection : la commande SELECT 37 3.1. Définition 37 3.2. syntaxe 37 3.3. Le verbe SELECT et ses opérateurs 37 3.3.1. Les opérateurs de SELECT 37 3.3.2. L’opérateur Etoile * 37 3.3.3. L’opérateur DISTINCT 37 3.3.4. L’opérateur AS 38 3.3.5. L’opérateur ALL 38 3.4. La Clause WHERE 38 3.4.1. Syntaxe générale 38 3.4.2. Les critères de sélection 38 3.4.3. L’opérateur LIKE 39 3.4.4. Les opérateurs OR, AND, NOT 39 3.4.5. L’opérateur BETWEEN 40 3.4.6. L’opérateur IN 40 3.5. Le tri et la clause ORDER BY 41 3.6. Les fonctions d’agrégat 41 3.7. Les requêtes sur les groupes (les clauses GROUPE BY et HAVING) 42 3.7.1. La clause GROUPE BY 43 3.7.2. La clause HAVING 43 4. Le blocage des requêtes 44 5. Les requêtes d’insertion : la commande INSERT 45 5.1. Définition 45 5.2. Syntaxe 45 5.3. Exemple 45 6. Les requêtes de mise à jour : la commande UPDATE 45 6.1. Définition 45 6.2. Syntaxe 45 6.3. Exemple 45 7. Les requêtes de suppression : la commande DELETE 46 7.1. Définition 46 7.2. Syntaxe 46 7.3. Exemple 46 8. Les requêtes paramétrées 46 8.1. Définition 46 8.2. Exemple 46 9. Les requêtes multitables 47 9.1. La jointure 47 9.1.1. Définition de la jointure 47
  • 5. Modèle relationnel et MS Access 2007 P a g e | 5 2e année IDA 9.1.2. Création d’une jointure 47 9.1.3. Exemple 48 9.2. L’auto jointure 48 9.2.1. Définition de la jointure 48 9.2.2. Exemple de jointure 48 9.3. Les requêtes imbriquées 49 9.3.1. Introduction 49 9.3.2. Quelques exemples de requêtes imbriquées 49 10. Le QBE 49 10.1. Définition du QBE 49 10.2. Description du QBE 49 10.3. Création de requête en QBE 50 10.4. Exercices 52 11. La définition des données 52 11.1. La création d’une table : CREATE TABLE 52 11.1.1. Syntaxe 52 11.1.2. Exemple 52 11.2. La création d’un index : CREATE INDEX 53 11.2.1. Syntaxe 53 11.2.2. Exemple 53 11.3. La modification d’une table : ALTER TABLE 53 11.3.1. Ajout de colonne : ADD 53 11.3.2. Suppression de colonne : DROP 53 Chapitre 6 : Les formulaires 54 1. A propos des formulaires 54 1.1. Définition 54 1.2. Les contrôles d’un formulaire 54 1.3. Description des contrôles 55 1.4. Les types de contrôle 56 2. Utilisation d’un formulaire 56 2.1. Quand utiliser un formulaire ? 56 2.2. La base de création d’un formulaire 56 3. Les types de formulaires 57 3.1. Le formulaire colonne simple 57 3.2. Le formulaire tabulaire 57 3.3. Le formulaire graphique 58 3.4. La création d’un formulaire 58
  • 6. Modèle relationnel et MS Access 2007 P a g e | 6 2e année IDA 3.4.1. L’utilisation de quelques contrôles 58 3.4.2. Les sections d’un formulaire 59 4. Les modes de création d’un formulaire 60 4.1. Les modes de création et manipulation des formulaires 60 4.2. Création d’un formulaire à l’aide de l’outil « formulaire » 61 4.3. Création d’un formulaire à l’aide de « formulaire double affichage» 61 4.4. Création d’un formulaire à l’aide de « Plusieurs éléments » 62 4.5. Création d’un formulaire à l’aide de l’ »assistant formulaire » 63 4.6. Création d’un formulaire à l’aide de l’outil « vide » 63 5. Travaux pratiques sur les formulaires 65 TP N°1 : création d’un formulaire simple à l’aide de l’assistant 65 TP N°2 : création d’un formulaire simple sans l’assistant 68 TP N°3 : création de formulaires basés sur plusieurs tables 71 Travaux dirigés N°1 72 Travaux dirigés N°2 72 Travaux dirigés N°3 79 Chapitre 7 : Les états 82 1. Définition 82 2. Les modes de réalisation d’un état 82 3. Les modes de représentation d’un état 83 4. La structure d’un état 83 4.1. Les sections 83 4.2. Les contrôles 83 5. La réalisation d’un état à l’aide de l’assistant 84 6. Travaux pratiques sur les états 88 Chapitre 8 : Les macros 91 1. Définition d’une macro 91 2. Le générateur de macro 91 3. Les types de macro 92 3.1. La macro autonome 92 3.2. Le groupe de macros 92 3.3. La macro incorporée 92 4. La création de macro 92 4.1. Créer une macro autonome 92
  • 7. Modèle relationnel et MS Access 2007 P a g e | 7 2e année IDA 4.2. Créer un groupe de macros 93 4.3. La macro incorporée 94
  • 8. Modèle relationnel et MS Access 2007 P a g e | 8 2e année IDA Première partie : Le modèle relationnel
  • 9. Modèle relationnel et MS Access 2007 P a g e | 9 2e année IDA CHAPITRE 1 : INTRODUCTION AU MODELE RELATIONNEL 1. Présentation du modèle relationnel Cette technologie a vu le jour dans les années 70 avec les travaux d’Edgar Codd. La conception de logiciel mettant en œuvre le modèle relationnel repose sur le principe de la séparation de l'analyse des données et de l'analyse des traitements, comme par exemple, la méthodologie Merise. Dans la phase d'analyse des données, on s'applique à modéliser les informations du système indépendamment des traitements que ces données vont éventuellement subir. 2. Définition du modèle Le modèle relationnel est fondé sur l'algèbre relationnelle, la théorie des ensembles et la logique formelle. Lors de la conception du modèle de données issu de l'analyse, on applique un processus de normalisation qui élimine les redondances d'information tout en préservant la cohérence des faits mémorisés. Le modèle relationnel est un modèle d’organisation des données sous forme de tables où chaque table représente une relation, au sens mathématique d’ensemble. Une table est un tableau de valeurs. 3. Les concepts du modèle relationnel Les concepts mis en œuvre dans le modèle relationnel sont fondés sur une théorie mathématique directement issue de l'algèbre relationnelle, de la théorie des ensembles et de la logique formelle. Modèle E/A  Modèle relationnel Association  Entité Table (relation) Propriété  Attribut Identifiant  Clé Primaire 3.1. La relation Dans le modèle relationnel, le terme enregistrement utilisé aux fichiers devient relation. Une relation est une structure de données tabulaire. Une relation est composée d'attributs ; chaque attribut prend sa valeur dans un domaine. Une relation est donc un sous-ensemble du produit cartésien des domaines des attributs. En effet, dans le modèle relationnel, une relation exprime une association qui existe entre les propriétés. Tandis que dans le modèle entité-association le terme relation exprimait la relation qui existe entre les entités. 3.2. La notion de table Comme nous pouvons le constater, le modèle relationnel est un modèle d'organisation des données sous forme de Tables (Tableaux de valeurs) où chaque Table représente une Relation, au sens mathématique d'Ensemble.
  • 10. Modèle relationnel et MS Access 2007 P a g e | 10 2e année IDA 3.3. La colonne et la ligne d’une table Un SGBD implantant ces concepts est appelé un système de gestion de base de données relationnel (SGBDR). Physiquement, le concept de relation est implanté par une table dont les colonnes représentent les attributs et les lignes, les occurrences de la relation. Chaque ligne de la table est identifiée par une clé primaire, formée de la valeur d'une (ou de la concaténation des valeurs de plusieurs) colonne(s). Une table représentant une relation est formée de lignes et de colonnes. Les colonnes de la table sont appelées attributs. Les lignes de la table sont appelées tuples. 3.4. La clé primaire Chaque relation doit avoir une clé primaire. Elle est constituée un ou plusieurs attributs permettant de distinguer chaque tuple de la relation par rapport à tous les autres. 3.5. La clé secondaire On dit aussi clé étrangère. Les liens entre tables de la base de données sont réalisés à l'aide de clés étrangères. Une clé étrangère est un attribut ou groupe d'attributs dont les valeurs se retrouvent comme valeurs de clé primaire d'une table. Les clés étrangères sont donc des pointeurs logiques ; le concept de pointeur physique n'existe pas. 3.6. Les types de liens Il en existe trois :  1-N : un à plusieurs  M-N : plusieurs à plusieurs  1-1 : un à un 3.7. Le passage du modèle entité-association (ou MCD) au modèle relationnel 3.7.1. L’entité Le schéma d’une relation est constitué du nom de la relation, suivi de la liste des attributs. Alors, pour chaque entité du schéma E/A: a. On crée une relation de même nom que l’entité. b. Chaque propriété de l’entité, y compris l’identifiant, devient un attribut de la relation. c. Les attributs de l’identifiant constituent la clé de la relation. 3.7.2. Les associations de type 1-N Une association qui a une cardinalité égale à 0,1 ou 1,1 pour une entité est traduite par une clef étrangère ajoutée à la relation qui traduit cette entité. Cette clef étrangère est la clef primaire de l’entité associée.
  • 11. Modèle relationnel et MS Access 2007 P a g e | 11 2e année IDA 3.7.3. Les associations de type M-N Une association qui n’a pas de cardinalité égale à 0,1 ou 1,1 est traduite par une relation dont la clef primaire est constituée de l’ensemble des identifiants des entités qui y participent. Les propriétés de l’association deviennent des attributs de la relation. 3.7.4. Exemple de passage Soit le schéma conceptuel des données suivant On obtient le modèle des données relationnel suivant : CLIENT (N°client, RaisonSociale, Adresse, Téléphone ) FACTURE (N°facture, Date , N°client) ARTICLE (N°article , Libellé, PU) PORTER_SUR (N°article , N°facture , Qté ) 1, n 0, n 1, n 1, 1 ARTICLE N°article Libellé PU CLIENT N°client RaisonSociale Adresse Téléphone Porter-sur Qté Obtenir FACTURE N°facture Date
  • 12. Modèle relationnel et MS Access 2007 P a g e | 12 2e année IDA CHAPITRE 2 : L’ALGEBRE RELATIONNELLE (OU LANGAGE ALGEBRIQUE) 1. Notion sur l’algèbre relationnelle La mise en place d’une base de données relationnelle nécessite plusieurs étapes, une fois que les besoins ont été définis : - La création de la structure de la base sous forme de tables reliées entre elles par des données clés ; - La conception des requêtes qui permettent d’extraire ou de mettre à jour les informations qu’elle contient ; - La conception de l’interface homme-machine (les écrans et les états) qui rendra plus conviviale la saisie et la restitution des informations. L’algèbre relationnelle a été définie par Codd en 1970. Elle est à l'origine du langage SQL (Structured Query Language) d'IBM, langage d'interrogation et de manipulation de tous les SGBDR actuels (Oracle, PostgreSQL, MySQL, MS SQLServer, MS Access et tous les autres). Une bonne maîtrise de l'algèbre relationnelle permet de concevoir n'importe quelle requête aussi complexe soit elle avant de la mettre en œuvre à l'aide du langage SQL. Parmi les opérations de l'algèbre relationnelle, on dispose d'opérations classiques sur les ensembles (union, intersection, différence, produit cartésien) puis d'opérations propres (projection, sélection, jointure, division). 2. Définition de l’algèbre relationnelle L’algèbre relationnelle est un langage qui permet d’exprimer des requêtes sur une base de données relationnelle. Comme l’algorithmique, elle constitue un outil théorique préalable au niveau opérationnel des traitements permettant de formaliser des opérations qui peuvent être réalisées sur les relations définies au niveau logique. Elle est à la base de nombreux langages d’interrogation de base de données tels que le SQL et le QBE. 3. Les concepts de base de l’algèbre relationnelle Les notions de base qu’il faut connaître pour utiliser le langage algèbre sont les suivantes : 3.1. La relation Elle correspond à la notion de table. 3.2. L’opération L’algèbre relationnelle est composée d’un ensemble d’opérations élémentaires qui s’appliquent aux tables de la base de données et qui produisent des tables en résultats. Il y a deux groupes d’opérateurs : Les opérateurs algébriques et les opérateurs ensemblistes.
  • 13. Modèle relationnel et MS Access 2007 P a g e | 13 2e année IDA 3.2.1. Les opérateurs algébriques On les appelle encore opérateurs relationnels. Ils travaillent sur les attributs ou sur les valeurs des attributs des relations. Ils se subdivisent eux-mêmes en deux catégories :  Ceux qui portent sur une seule relation : SELECTION, PROJECTION,  Ceux qui portent sur deux relations : JOINTURE, DIVISION, le TRI et les AGREGATS. 3.2.2. Les opérateurs ensemblistes Ils travaillent sur les relations, c'est-à-dire des tables de même schéma. Ce sont : UNION, intersection, différence, produit cartésien (tables de schémas différents) 3.3. Les requêtes Une requête est un traitement c'est-à-dire la manipulation ou l’interrogation des données que l’on peut effectuer sur des bases de données relationnelles.
  • 14. Modèle relationnel et MS Access 2007 P a g e | 14 2e année IDA CHAPITRE 3 : LA MISE EN ŒUVRE DES CONCEPTS 1. Les opérateurs relationnels 1.1. La sélection Elle a pour objet de retenir les tuples qui vérifient un critère de sélection. Syntaxe : R = SELECTION (R1, condition) La condition est exprimée à l’aide des opérateurs mathématiques tels que =, >, <, >=, <=, <> ou des opérateurs de logique de base ET, OU, NON. 1.2. La projection Elle a pour objet de ne retenir que les valeurs associées à certains attributs en éliminant les doublons. Syntaxe : R = PROJECTION (R1, liste des attributs) 1.3. La jointure C’est le produit des uplets de deux tables vérifiant une condition de rapprochement. Les uplets de la table résultat sont formés par la concaténation des uplets des relations. Syntaxe : R = JOINTURE (R1, R2, condition de jointure) 1.4. Les fonctions d’agrégats et le tri Les agrégats consistent dans un premier temps, à regrouper les uplets d’une relation en fonction des valeurs d’un premier attribut, puis à appliquer une fonction de calcul sur les valeurs d’un deuxième attribut des uplets regroupés. 1.4.1. Les fonctions statistiques de base :  SOMME (attribut) : renvoie le total des valeurs d’un attribut  MOYENNE (attribut) : renvoie la moyenne des valeurs d’un attribut  MINIMUM (attribut) : renvoie le minimum (plus petite valeur) d’un attribut  MAXIMUM (attribut) : renvoie le maximum (plus grande valeur) d’un attribut 1.4.2. La fonction de « comptage » Elle donne le nombre de uplets (dénombrement) d’un ou de plusieurs groupes de uplets.
  • 15. Modèle relationnel et MS Access 2007 P a g e | 15 2e année IDA Syntaxe : R = COMPTAGE (R1, attribut de dénombrement) 1.4.3. La fonction « calculer » Les calculs et /ou comptage portent sur la relation R1. R2 ne comportera qu’une ligne avec autant de colonnes. 1.4.4. La fonction « Trier » Le tri effectue sur un ou plusieurs attributs, dans l’ordre croissant ou décroissant. La relation est triée selon un ordre. La relation résultat a la même structure et le même contenu que la relation de départ. Syntaxe : TRI (attribut1 Asc, attribut2 Asc, attribut3 Desc, ….) Asc : croissant Desc : décroissant 2. Les opérateurs ensemblistes 2.1. L’union Elle permet de construire une troisième table ayant pour uplets ceux appartenant à R1 ou à R2. Elle élimine les doublons et les deux tables doivent avoir le même schéma. Syntaxe : R = UNION (R1, R2) 2.2. L’intersect ion Elle permet de construire une troisième table ayant pour uplets ceux appartenant à la fois à R1 et R2. Syntaxe : R = INTERSECTION (R1, R2) 2.3. La différence Elle consiste à construire une troisième table ayant pour uplets, ceux appartenant à R1 et n’appartenant pas à R2. Syntaxe : R = DIFFERENCE (R1, R2) 2.4. La division Syntaxe : R = DIVISION (R1, R2)
  • 16. Modèle relationnel et MS Access 2007 P a g e | 16 2e année IDA R, le produit, possède les attributs non communs aux deux relations (tables) R1 et R2 initiales et est formée de tous les uplets qui, concaténés à chacun des uplets du diviseur donne toujours un uplet du dividende. 2.5. Produit cartésien Il consiste à construire une troisième relation R qui comporte les attributs des relations R1 et de R2 ayant pour uplets toutes les combinaisons des uplets des deux relations. Syntaxe : R = PRODUIT (R1, R2) R1 ET R2 doivent avoir le même schéma. CHAPITRE 4 : TRAVAUX DIRIGES ET EXERCICES 1. Travaux dirigés Contexte : Le suivi des commandes des clients de la société CORI est implémenté dans la base de données « Commandes_Clients » Cette base de données est constituée des 4 tables ci-dessous dons les extensions sont présentées au point 3. 1) Soit le schéma conceptuel des données est le suivant : 2) On obtient le modèle des données relationnel suivant : CLIENT (N°client, NomClient, Adresse, Cond_paiement ) COMMANDE (N°commande, Date, N°client#) PRODUIT (RéfProduit , Désignation, PrixUnitaire) PORTER_SUR (RéfProduit#, N°commande#, Quantité) 3) Les tables en extensions La table « Produit » RéfProduit Désignation PrixUnitaire BR2010 Ecran 475.00 GT-9500 Scanner 120.00 1, n 0, n 0, n 1, 1 PRODUIT RéfProduit Désignation PrixUnitaire CLIENT N°client NomClient Adresse Cond_paiement Porter_sur Quantité Obtenir COMMANDE N°Commande Date
  • 17. Modèle relationnel et MS Access 2007 P a g e | 17 2e année IDA 3CM9800 Ecran 125.00 P334863 Micro-ordinateur 875.00 La table « Client » N°client NomClient Adresse Cond_paiement 1 Lycée E. Mounier Grénoble 30 jours fin de mois 2 Sema Group Meylan 30 jours fin de mois 3 Dupont SA Grénoble A la livraison 4 Préfecture Grénoble 45 jours fin de mois La table « Commande » N°commande Date N°client 1234 24/09/2003 2 1235 25/09/2003 1 1236 25/09/2003 4 La table « Porter_sur » N°commande Date Quantité 1234 BR2010 2 1234 GT-9500 1 1235 3CM9809 4 1236 GT-9500 2 1236 3CM9809 8 E1. Quels sont les clients dont les conditions de paiement sont à 30 jours fin de mois ? R = SELECTION (Client, Cond_paiement = « 30 jours fin de mois ») E2. Quels sont les clients de Grénoble dont les conditions de paiement sont à 30 jours fin de mois ? R = SELECTION (Client, Cond_paiement = « 30 jours fin de mois » ET Adresse = « Grénoble » ) E3. Quelles informations décrivent le client Sema Group et tous les clients qui paient à la livraison ? R = SELECTION (Client, NomClient = « Sema Group » OU Cond_paiement = « à la livraison » ) E4. Quels sont les clients de Grénoble qui paient à la livraison ou bien à 30 jours fin de mois ? R = SELECTION (Client, adresse = « Grénoble » ET (Cond_paiement = « à la livraison » OU Cond_paiement = « 30 jours fin de mois ») E5. Quels sont les clients de Grénoble qui ne paient pas 30 jours fin de mois ? R = SELECTION (Client, adresse = « Grénoble » ET NON (Cond_paiement = « 30 jours fin de mois ») E6. Quels sont les conditions de paiement en cours auprès des clients ? R = PROJECTION (Client, cond_paiement) E7. Quelles sont les commandes en cours et sur quels clients portent-elles ? Commandes_ Clients = JOINTURE (Client, Commande, Client.N°Client = Commande. N°Client) E8. Comment ordonner les tuples de la résultat précédent par adresse et dans l’ordre alphabétique des noms des clients ? Commandes_ Clients = TRI (Adresse (croissant), N°Client (croissant))
  • 18. Modèle relationnel et MS Access 2007 P a g e | 18 2e année IDA E9. Combien de produits comptent chacune des facture ? R = AGREGAT (Porter_sur, N°Commande, SOMME(Quantité)) E10. Quelle est la moyenne des quantités commandées par article ? R = AGREGAT (Porter_sur, N°Produit, MOYENNE (Quantité)) E11. Combien de clients dénombre-t-on pour chacune des différentes conditions de paiement ? R = AGREGAT (Client, Cond_paiement, COMPTE (Cond_Paiement)) E12. Comment regrouper dans une même table les clients provenant de 2 tables différentes ? R = UNION (Client1, Client2) E13. Comment ne retenir que les clients qui appartiennent à la fois à deux tables différentes ? R = INTERSECTION (Client1, Client2) E14. Comment ne retenir que les clients qui appartiennent à une table sans appartenir à une autre ? R = DIFFERENCE (Client1, Client2) E15. Comment appliquer toutes les conditions de paiement à un ensemble de clients ? R = PRODUIT CARTESIEN (Client1, Conditions) La table « Client1 » N°client NomClient Adresse 1 Lycée E. Mounier Grénoble 2 Sema Group Meylan La table « Conditions » Cond_paiement A la livraison 30 jours fin de mois 45 jours fin de mois Table résultat R N°client NomClient Adresse Cond_paiement 1 Lycée E. Mounier Grénoble A la livraison 1 Lycée E. Mounier Grénoble 30 jours fin de mois 1 Lycée E. Mounier Grénoble 45 jours fin de mois 2 Sema Group Meylan A la livraison 2 Sema Group Meylan 30 jours fin de mois 2 Sema Group Meylan 45 jours fin de mois
  • 19. Modèle relationnel et MS Access 2007 P a g e | 19 2e année IDA 2. Exercices sur le Modèle relationnel et SQL Exercice 1 Une bibliothèque utilise l’organisation des données pour gérer le prêt de livres. Travail à faire 1) Réalisez le schéma relationnel 2) Elaborez les requêtes d’interrogation suivantes en a. Langage algébrique b. En SQL 1. Déterminer la liste des ouvrages classés par auteur : nom de l’auteur, numéro de l’ouvrage, le titre et le descriptif. 2. Quel est le nombre d’ouvrages inventoriés dans la bibliothèque ? 3. Quel est le nombre d’ouvrages par auteur inventoriés dans la bibliothèque ? 4. Quels sont les auteurs dont le nombre d’ouvrages inventoriés dans la bibliothèque est supérieur à 3 ? 5. Quels sont les livres (titre et auteur) empruntés par le membre DEDI Alain ? 6. Quels sont membres qui ont emprunté au moins un livre depuis le 1er septembre 2011 ? 7. Quels sont les membres qui n’ont plus emprunté de livres depuis le 1er septembre 2011 ? 1,11,n 0,n1,n 0,n Membre MBnum MBNom MBPréno m MBVille Date Date_début Ouvrage OuvNum Titre Descriptif Auteur AutNum AutNom AutPrénom Emprunter Date_fin Ecrire
  • 20. Modèle relationnel et MS Access 2007 P a g e | 20 2e année IDA Exercice 2 Un centre informatique propose des formations de différents niveaux. Une formation est organisée pour plusieurs sessions afin de répondre à la forte demande dans ce secteur. Le schéma relationnel est le suivant : Travail à faire 1) Réalisez le schéma relationnel 2) Elaborez les requêtes d’interrogation suivantes en a. Langage algébrique b. En SQL 1. Quels sont les stagiaires (numéro, nom, prénom) ayant suivi la session 1537 ? 2. Quels sont les noms des formateurs, triés par ordre croissant, ayant animé les sessions relatives à la formation « Initiation à SQL » ? 3. Quel est le nombre de sessions réalisées pour l’activité « Initiation à SQL » pendant le mois de septembre 2011 ? 4. Quel est le nombre de sessions animées pendant le mois de septembre 2011par chaque professeur trié par ordre croissant sur le nom du professeur (Nom, nombre de sessions) ? 5. Quelle est la durée moyenne des formations dont les sessions ont débuté au mois de septembre 2011 ? 6. Quelles sont les formations (numéro, intitulé) relatives au système d’exploitation Linux (intitulés des formations dans lesquels le mot Linux est présent) ? 7. Quelles sont les formations (numéro, intitulé) qui n’ont pas donné lieu à des sessions depuis le 1er janvier 2011? 8. Quelles sont les professeurs n’ayant pas animé de sessions pendant le mois de septembre trié par ordre croissant sur le nom du professeur ? 1, n1,1 0,n 1,1 1,n Professeur NumProf NomProf PrénomProf Concerner Animer Stagiaire NumStag NomStag PrénomStag VilleStag Formation NumForm IntituléForm NiveauForm DuréeForm Concerner 1,n Session NumSession DateDébut
  • 21. Modèle relationnel et MS Access 2007 P a g e | 21 2e année IDA Deuxième partie : Le SGBD MS Access
  • 22. Modèle relationnel et MS Access 2007 P a g e | 22 2e année IDA CHAPITRE 1 : PRÉSENTATION DE MICROSOFT ACCESS 2007 MS Access est un système de gestion de base de données relationnelle (SGBDR) qui fait partie du groupe de programmes MS Office en version professionnelle. La version utilisée pour l'élaboration de ce support est MS Access de Office 2007. Le premier écran qui apparaît au lancement de MS Access se présente comme suit Il permet de choisir et ouvrir une base de données récente si celle-ci fait partie de la liste des raccourcis affichées à droite de l’écran ou d’ouvrir (ou bien créer) une base de données grâce au « bouton office » dans le coin gauche en haut. La barre de menu principale présente quatre menus :  Le menu Accueil  Le menu Créer  Le menu Données externes  Le menu Outils de bases de données Le menu Accueil
  • 23. Modèle relationnel et MS Access 2007 P a g e | 23 2e année IDA Le menu Créer Il y a six types d’objets qui permettent de créer et de manipuler des bases de données Access : tables, formulaires, états, requêtes, macros, modules (ces trois derniers sont contenus dans la barre Autre). Le menu Données externes Le menu outils de base de données Pour chaque objet, il existe deux modes : - Le mode utilisateur de l’objet - Le mode structure de l’objet Le volet de navigation Le volet de navigation permet par exemple d'ouvrir les composants d'une base de données (appelés objets dans Access), pour les traiter ou pour y apporter des modifications. Pour savoir rapidement ce que vous pouvez faire avec un objet, il suffit de cliquer dessus avec le bouton droit et de consulter le menu contextuel correspondant. Le volet de navigation
  • 24. Modèle relationnel et MS Access 2007 P a g e | 24 2e année IDA
  • 25. Modèle relationnel et MS Access 2007 P a g e | 25 2e année IDA CHAPITRE 2 : APERÇU SUR LES OBJETS D'UNE BASE DE DONNÉES Le SGBDR MS Access contient plusieurs types de composants appelés objets qui permettent la manipulation des données. Nous allons les présenter brièvement dans ce chapitre afin de connaître leurs rôles et comprendre leurs utilités. 1- Une table Une table est une structure qui contient des données. Elle est organisée en lignes et colonnes. Dans la terminologie base de données, les lignes sont représentées par les enregistrements et les colonnes par les champs. Les données sont stockées à l’intérieur des tables. Une table peut être comparée à une liste, qui contient des enregistrements relatifs à un domaine bien défini. Exemple : pour la gestion des contrats, nous avons construit deux tables. Celle qui actuellemnt active est la table Client. 2- Une requête C’est la formulation d’une question à traiter et la réponse qui lui est apportée sous forme d’un enchaînement d’opérateurs mis en œuvre sur une ou plusieurs tables. Les requêtes constituent dans un certain sens des "questions" qu'on pose au SGBD. Le résultat d'une requête est toujours un sous-ensemble d'une ou de plusieurs tables. Exemple Nous voulons connaître la liste des contrats signés par le client N°1, la requête pourrait être: SELECT client.n°client, nom, prénom, n°contrat, datecontrat, prime FROM client, contrat WHERE (client.n°client=contrat.n°client) and (client.n°client=1); Voici le résultat de cette requête :
  • 26. Modèle relationnel et MS Access 2007 P a g e | 26 2e année IDA 3- Un formulaire C’est l’interface privilégiée de communication entre le SGBDR et l’utilisateur. Véritable outil de dialogue, le formulaire est un écran personnalisé permettant de saisir, modifier, sélectionner et visualiser les enregistrements d’une ou plusieurs tables, de valider des options ou de lancer différentes actions. Nous verrons par la suite les différents modes de formulaires. Exemple : voici un formulaire qui permet de saisir, modifier, visualiser les enregistrements de la table chambres. Il existe plusieurs formes possibles de présentation des formulaires. Ce formulaire présente tous les enregistrements de la table « Contrat » Celui-ci présente un enregistrement à la fois 4- Un état Les états encore appelés rapports sont similaires aux formulaires, à la différence près, qu'ils sont uniquement destinés à être imprimés. Il peut également contenir des données calculées, triées ou même groupées. Les états ne permettent pas de dialogues interactifs avec l’utilisateur. En général, on utilise les états pour :  Imprimer des listes et des statistiques concernant les données ;  Regrouper les données et créer des calculs sur les données ;  Créer des factures, bons de livraison et autres pièces de gestion importantes.
  • 27. Modèle relationnel et MS Access 2007 P a g e | 27 2e année IDA Exemple Liste des contrats regroupés par client 5- Une macro Une macro est une action ou ensemble d'actions que vous pouvez utiliser pour automatiser des tâches, pour effectuer une action spécifique. 6- Un module Un module est principalement une collection de déclarations, d'instructions et de procédures stockées ensemble sous un même nom, pour organiser votre code. Un objet Module représente  Soit un module standard : module dans lequel vous pouvez placer des procédures Sub et Function que vous souhaitez rendre accessibles aux autres procédures dans toute votre base de données.  Soit un module de classe : module qui peut contenir la définition d'un nouvel objet. Lorsque vous créez une instance d'une classe, vous créez un nouvel objet. Les procédures définies dans le module deviennent les propriétés et méthodes de l'objet. En résumé À l'aide de Microsoft Access, vous pouvez gérer toutes vos informations à partir d'un fichier de base de données unique. Dans ce fichier, vous pouvez utiliser les éléments suivants :  Des tables afin de stocker vos données.  Des requêtes afin de rechercher et extraire les données souhaitées.  Des formulaires afin d'afficher, ajouter et mettre à jour les données dans les tables.  Des états afin d'analyser ou imprimer des données sous une mise en page spécifique.  Des macros, outils qui permettent d'automatiser des tâches et d'ajouter des fonctionnalités aux formulaires, états et contrôles.  Des modules
  • 28. Modèle relationnel et MS Access 2007 P a g e | 28 2e année IDA CHAPITRE 3 : LES TABLES 1- Préliminaires : Création d'une nouvelle base de données (en mode création).  Lancer Microsoft Access 2007  Cliquez sur le bouton Microsoft Office  Cliquez sur Nouveau  Dans la partie « Prise en main de Microsoft », s’affiche une boîte de dialogue  Enregistrez d’abord le nom de la nouvelle base de données et Cliquez sur Créer. 2- La création d'une nouvelle table Il s'agit de créer des tables à partir du schéma conceptuel des données suivant: 0,n 1,1 On en déduit le modèle logique des données suivant: Agent (N°Agent, Nom, Prénom, Fonction, Commune) Véhicule (N°Immatriculation, DateAchat, Marque, Couleur, N°Agent#) La première étape consiste à créer la structure de la table. Pour cela nous allons utiliser le « mode sans assistant » c'est-à-dire en mode création. Ce mode permet au concepteur de définir lui-même la table et ses propriétés. 2.1. La définition de la structure des tables Pour définir la structure d’une table, il faut pour chaque champ :  Définir le nom du champ ;  Définir le type de données du champ ; Agent N°agent Nom Prénom Fonction Commune Véhicule N°Immatriculation DateAchat Marque Couleur Posséder
  • 29. Modèle relationnel et MS Access 2007 P a g e | 29 2e année IDA Type de données Sa description Texte Spécifie les champs de type alphabétique Mémo Stocke du texte d’une longueur maximum de 65 535 caractères Numérique Spécifie des champs de type entier ou réel Date/Heure Champs temporels. Spécifie une date et/ou une heure Monétaire Pour spécifier des champs contenant des valeurs monétaires. Numéro Auto Spécifie les champs numériques automatiquement incrémenté chaque fois qu’un nouveau tuple est ajouté à la table. Oui/Non Champs booléen (vrai/faux, oui/non, actif/inactif) Objet OLE Spécifie des objets liés ou incorporés à une table : image, feuille Excel, dessin, graphique … Lien hypertexte Spécifie des champs de type texte utilisés comme adresses de lien hypertexte. Assistant liste de choix Spécifie que des valeurs de champ seront obtenues à partir d’une autre table, d’une requête ou d’une liste de valeurs.  Définir les propriétés du type de données du champ Chaque propriété peut être définie plus précisément à l’aide d’une liste de propriétés attachées au type de données du champ. Toutes les propriétés ne sont pas obligatoirement renseignées. Certaines peuvent avoir de valeur par défaut. Pour chaque champ, éventuellement, cliquez dans la colonne à droite pour préciser les propriétés.  Définir la description du champ. La description du champ sert à fournir sous forme d’un texte, des informations au sujet du champ, son rôle dans le système d’information. 2.2. La création d’une table : « Agent » Nom des champs Type de données Description N°agent Numérique Numéro de l'agent Nom Texte [15] Nom de l'agent Prénom Texte [20] Prénom de l'agent Fonction Texte [50] Fonction exercée par l'agent Commune Texte [30] Commune de résidence de l'agent
  • 30. Modèle relationnel et MS Access 2007 P a g e | 30 2e année IDA Voici ci-dessous le menu et l’icône qui permet de créer une table en mode création  Cliquez sur l’icône « Création de table » Créez la table Agent avec ses champs dans la fenêtre qui se présente comme suit :  Pour déterminer une clé primaire à une table : sélectionner le champ proposé comme clé primaire (N°Chambres) et cliquez sur l’icône  Le type de données NuméroAuto est un compteur automatique qui évite la saisie des nombres entiers, évitant ainsi le risque des doublons.  Après avoir défini les propriétés, cliquez sur pour enregistrer le nom de la table.  Basculez en « Mode Feuille de données » pour saisir les enregistrements dans la table. Les différents modes d'affichage se trouvent dans le menu accueil. 2.3. La Création d’une autre table : la table « Véhicule » On procèdera de la même façon que pour la création de la table Agent. Remarquons que cette table contient le champ N°Agent comme clé externe dont le type sera Entier long.
  • 31. Modèle relationnel et MS Access 2007 P a g e | 31 2e année IDA Table Véhicule 2.4. Les manipulations à savoir pour utiliser une table et travailler avec ses enregistrements  Ouvrir une table en mode "Feuille de Données"  Déplacer le curseur dans le champ suivant  Déplacer le curseur dans le champ précédent  Déplacer le curseur dans n'importe quel champ d'un enregistrement  Sélectionner l'enregistrement suivant  Sélectionner l'enregistrement précédent  Sélectionner le premier enregistrement  Sélectionner le dernier enregistrement  Comment reconnaît-on l'enregistrement en cours ?  Modifier la largeur d'une colonne  Déplacer un champ  Rechercher des valeurs dans les enregistrements  Masquer des champs  Réafficher les champs masqués  Imprimer des enregistrements 3- Les autres modes de création d’une table Sélectionner le mode « Feuille de Données » pour une table ouverte en mode « Création » 3.1. Création avec les modèles de tables MS Access permet de créer des tables à l'aide d'un modèle de table. Il s'agit des modèles d'éléments courants tels que les contacts, les problèmes et les tâches, les événements, les biens.
  • 32. Modèle relationnel et MS Access 2007 P a g e | 32 2e année IDA 3.2. Le mode Table Permet de créer une table vide. On peut définir directement les champs dans la nouvelle table ou l'ouvrir en mode création 3.3. Le mode Listes SharePoint Ce mode permet de créer un site SharePoint et une table dans la base de données active qui établit une liaison vers la liste nouvellement créée.
  • 33. Modèle relationnel et MS Access 2007 P a g e | 33 2e année IDA Chapitre 4 : LES RELATIONS ENTRE TABLES Une base de données bien concipée est rarement composée d'une seule table, mais d'un ensemble de tables, entre lesquelles il existe certaines relations. 1- La clé primaire et la clé secondaire La clé primaire : elle est constituée d'un ou de plusieurs champs d'une table. Elle est l'élément unique qui permet d'identifier un enregistrement. La clé secondaire : c'est un champ constituant la clé primaire d'une autre table. Elle permet de représenter un lien entre deux tables. On dit aussi clé étrangère ou bien clé externe. 2- Les index Un index est constitué de un ou de plusieurs champs. Il permet de trier le contenu d'une table dans un ordre spécifique ou de trouver rapidement un enregistrement. Les index sont des structures qui accélèrent les tris et recherches dans les tables, ainsi que l'exécution de certaines requêtes. Exemple: Créer par exemple un index sur le champ Nom veut dire que le SGBD copie toutes les valeurs existantes du champ Nom dans une liste spéciale à 2 colonnes. La deuxième colonne contient les noms triés en ordre alphabétique, et la première contient une référence vers l'enregistrement correspondant de la table. Il est évident que par la suite de la création de cet index, toutes les recherches et les tris concernant le nom de l'agent sont accélérés. Un index peut aussi comporter plusieurs champs comme par exemple Nom et Prénom. Propriétés importantes des index :  Un index est toujours lié à un ou plusieurs champs d'une table.  Un index peut seulement contenir des champs ayant un des types de données Texte, Numérique ou Date/Heure.  Un index est automatiquement mis à jour par le SGBD lors d'un ajout, d'une modification ou d'une suppression d'enregistrements dans la table. Ceci est transparent pour l'utilisateur de la BD.  Il existe deux types d'index: Index avec doublons (Les valeurs doubles sont permises) Index sans doublons (Les valeurs doubles ne sont pas permises) NB : La clé primaire est toujours indexée à l'aide d'un index sans doublons !
  • 34. Modèle relationnel et MS Access 2007 P a g e | 34 2e année IDA 3- La création des relations entre les tables Avant de commercer à créer les relations entre les tables conformément au modèle logique des données, les tables elles-mêmes doivent d'abord être créées. Pour notre cours, il y a deux tables : Agent et Véhicule. Nous supposons qu'elles ont déjà été créées (chapitre 3).  Sélectionnez le menu « Outils de base de données »  Cliquez sur l’icône Relations  Dans la nouvelle barre qui apparaît, cliquez sur  Sélectionnez chaque table dans la fenêtre « Afficher la table » et cliquez sur le bouton Ajouter, puis Fermer.  Établir la relation entre les tables Agent et Véhicule. Pour se faire, faire glisser le champ N°Agent de la table Agent vers N°Agent de la table Véhicule et relâchez. 4- Les règles d’intégrité À chaque fois qu'une relation entre deux tables est établie, une boîte de dialogue apparait afin de préciser les options nécessaires au type de la relation établi.
  • 35. Modèle relationnel et MS Access 2007 P a g e | 35 2e année IDA Par le simple fait d'inclure des clés étrangères dans une table, Access ne reconnaît pas encore une relation entre les tables. Access ne sait par exemple pas automatiquement que le champ N°Chambre de la table Réservations fait référence à la clé primaire N°Chambre de la table Chambres. A l'aide de la fenêtre des Relations, on peut indiquer à Access les clés étrangères et leurs clés primaires associées, et ainsi définir les relations entre les tables. Relations entre les tables La documentation d’Access nous dit que le fait d'établir des relations simples entre des tables, nous facilite en outre la création de requêtes multi table. Nous allons vérifier cette affirmation plus tard dans la partie Activités de ce TP.  L'intégrité référentielle Un avantage incontestable de la fenêtre Relations est la possibilité de définir ce qu'on appelle l'intégrité référentielle pour une relation donnée. Par contrainte d'intégrité référentielle, on entend l'obligation qu'à chaque valeur de la clé étrangère corresponde une et une seule valeur de la clé primaire associée. Cette obligation doit toujours être vérifiée lors de l'ajout, de la suppression ou de la modification de données. Access nous offre plusieurs possibilités pour garantir à tout moment l'intégrité référentielle des données d'une BD.
  • 36. Modèle relationnel et MS Access 2007 P a g e | 36 2e année IDA  Cascade des opérations vers les clés étrangères correspondantes : Une modification d'une clé primaire aurait comme conséquence la modification de toutes les clés étrangères correspondantes. Une suppression d'une clé primaire par exemple aurait comme conséquence la suppression automatique de tous les enregistrements dont la clé étrangère a la même valeur. Cette option est à utiliser avec précaution !!!  Dans notre cas, nous allons appliquer toutes les trois règles.  Terminez par la seconde relation entre les tables Clients et Réservations par le biais des champs Numclient des deux côtés.  Appliquez les 3 règles d’intégrités.  Validez. Remarques : il s’agit de deux relations un-à-plusieurs (1-N). 5- Les manipulations importantes sur les relations à savoir Pour effectuer des opérations sur les relations de la base de données, il faut au préalable afficher les relations. Apparaît un menu supplémentaire Création qui permet de faire des manipulations sur les relations :  Ouvrir la fenêtre Relations  Ajouter une table dans la fenêtre Relations  Effacer une table de la fenêtre Relations  Définir une relation entre deux tables  Effacer une relation existante  Modifier une relation existante  Forcer le respect de l'intégrité référentielle  Activer les suppressions, modifications en cascade.
  • 37. Modèle relationnel et MS Access 2007 P a g e | 37 2e année IDA Chapitre 5 : LES REQUÊTES ET LE LANGAGE SQL Introduction Nous avons vu que la plupart des SGBD offrent la possibilité d'effectuer des recherches directement dans les tables. Les possibilités de formuler des critères de recherche sont cependant souvent assez limitées. Heureusement, la plupart des SGBD nous offrent également la possibilité de poser pratiquement n'importe quelle « question » à nos tables, sous forme de requêtes. En MS Access, les requêtes peuvent être exprimées à l’aide de deux langages : le SQL et le QBE. 1- Les notions sur les requêtes 1.1. Définition d’une requête Une requête est une formule qui sert à répondre aux questions basées sur le contenu d'une ou de plusieurs tables. Les requêtes possèdent l'avantage de pouvoir manipuler facilement un grand nombre d'enregistrements sans que l'utilisateur ne doive s'occuper de sélectionner enregistrement par enregistrement. Il lui suffit de spécifier des critères de sélection pour la requête, ainsi que l'opération à effectuer (simple sélection et affichage, insertion, modification ou suppression). Une requête basée sur une seule table est une requête simple. Une requête basée sur plusieurs tables (et/ou requêtes) est une requête multi table. 1.2. Les menus de requêtes  Pour créer une requête, dans le menu principal, sélectionner le menu Créer  Dans le sous-menu, il y a deux icônes :  l’une pour créer une requête à l’aide de l’assistant,  l’autre pour créer une requête en mode création.
  • 38. Modèle relationnel et MS Access 2007 P a g e | 38 2e année IDA 1.3. Les différents types de requêtes Il existe 4 types de requêtes: Types de requêtes Rôles Requêtes de sélection Ce sont des requêtes qui permettent de sélectionner certains enregistrements. Requêtes d'insertion requêtes qui permettent d’insérer des enregistrements dans une table. Requêtes de modification requêtes qui permettent de modifier des enregistrements dans une table. Requêtes de suppression requêtes qui permettent de supprimer des enregistrements dans une table. En Microsoft Access, il existe deux langages relationnels qui sont utilisés pour formuler des requêtes. Il s’agit de SQL qui est un langage textuel et QBE qui lui est un langage visuel. 2- Le langage SQL 2.1. Définition du SQL SQL signifie (Structured Query Language), en français Langage d’Interrogation Structuré. C’est un standard international, en ce qui concerne les langages de manipulation des BD. SQL est connu par tous les SGBDR. Il faut cependant mentionner désormais la présence de standards internationaux tels que SQL-86, SQL-89, SQL-92, SQL-99 ou SQL-2003 et SQL-2008. Chaque SGBD sur le marché utilise un peu son propre dialecte du langage SQL. 2.2. Les subdivisions du langage SQL Le SQL comporte cinq grandes parties :  Le DDL : Data Definition Language (Langage de Définition des données) Il permet de décrire les éléments d’une base de données, notamment les tables, les colonnes, les clefs, les index, les contraintes... Elle possède les commandes de base suivante : CREATE, ALTER, DROP qui permettent respectivement de créer, modifier, supprimer un élément de la base.  Le DML : Data Manipulation Language (Langage de Manipulation des données) C’est la partie du SQL qui permet de traiter les données. Elle comporte les commandes de base suivantes : INSERT, UPDATE, DELETE, SELECT qui permettent respectivement d’insérer, de modifier, de supprimer et d’extraire des données.  Le DCL : Data Control Language (c'est-à-dire le Langage de contrôle des données) C’est la partie du SQL qui s’occupe de gérer les droits d’accès aux tables. Elle comporte les commandes de base suivantes : GRANT, REVOKE qui permettent respectivement d’attribuer et de révoquer des droits.
  • 39. Modèle relationnel et MS Access 2007 P a g e | 39 2e année IDA  Le TCL : Transaction Control Language, le Langage de Contrôle de Transaction C'est la partie du SQL chargé de contrôler la bonne exécution des transactions. Elle comporte les commandes de base suivantes : SET TRANSACTION, COMMIT, ROLLBACK.  L’Embedded SQL : le SQL intégré Il s'agit d'éléments procéduraux que l'on intègre à un langage hôte : SET, DECLARE CURSOR, OPEN, FETCH... 3. Les requêtes de sélection : La commande SELECT 3.1. Définition Le verbe SELECT est utilisé pour interroger une base de données. C’est la commande de base du SQL destinée à extraire des données d’une base de données ou même générer des calculs de nouvelles données. De manière générale, la commande SELECT comprend six clauses. Parmi elles quatre sont optionnelles. 3.2. La syntaxe générale SELECT [DISTINCT ou ALL] * ou liste de colonnes FROM nom de table ou de la vue [WHERE critères de sélection] [GROUP BY ordre des groupes] [HAVING condition] [ORDER BY] liste de colonnes 3.3. SELECT Elle est utilisée pour spécifier des colonnes. Select peut être suivie plusieurs opérateurs. 3.3.1. Les clauses de SELECT  L’opérateur * (étoile) permet d’afficher toutes les champs définis dans la table. Syntaxe : SELECT * FROM table ; Question : Écrire la requête qui affiche tous les agents de la base Réponse : SELECT * FROM Agent ; Question : Affichez le nom, le prénom et la commune de chaque agent. Réponse : SELECT Nom, Prénom, Commune FROM Agent ;  L’opérateur DISTINCT Il permet d’éliminer les doublons de la table en résultat (dans la réponse). Syntaxe: Select Distinct champ From table; Question : Affichez les communes dont sont originaires les différents agents. Réponse 1 : SELECT commune FROM Agent ;
  • 40. Modèle relationnel et MS Access 2007 P a g e | 40 2e année IDA Réponse 2 : SELECT DISTINCT commune FROM Agent ;  L’opérateur AS Il permet de donner un nom à de nouvelles colonnes créées par la requête. Syntaxe: Select Distinct champ AS champ From table; Question : Affichez les communes (résidence) dont sont originaires les différents agents. Réponse : SELECT DISTINCT commune AS Résidence FROM Agent ;  L’opérateur ALL Il permet de sélectionner tous les champs. Select * Et Select ALL* Sont deux instructions équivalentes. 3.4. La clause WHERE Elle permet de préciser la condition de sélection dans la requête. La valeur de la condition doit renvoyer la valeur logique (booléenne) vrai.  Syntaxe générale SELECT champ, champ FROM table WHERE condition de sélection;  Les critères de sélection Comparaison à une valeur donnée. Pour chaque enregistrement, la valeur d'un champ donné est comparée à une valeur fixe. Cette valeur fixe est généralement une valeur numérique, une date ou un texte. Voici les opérateurs de comparaison: = "est égal" > "Strictement supérieur" < "Strictement inférieur" >= "supérieur ou égal" <= "inférieur ou égal" <> "Est différent"
  • 41. Modèle relationnel et MS Access 2007 P a g e | 41 2e année IDA Remarques:  Les valeurs sont séparées par des virgules.  En SQL de MS Access, les données du type TEXTE sont entourées de guillemets.  Les dates sont entourées du caractère # et indiquées dans le format américain #Mois/Jour/Année# Exemple: le 20/4/98 correspond à #04/20/98# ou #4/20/98# ou #04/20/1998# ou #4/20/1998# Question : Quels sont les clients originaires de COCODY? Réponse : SELECT * FROM Agent WHERE Commune = "Cocody" ;  L’opérateur LIKE (comparaison à un filtre) Il permet d’effectuer une comparaison partielle. Il est utilisé avec les données contenant des caractères et le caractère étoile (*). Ce caractère remplace n’importe qu’elle chaîne de caractères. Le caractère « _ » remplace un seul caractère. Syntaxe: SELECT champ FROM table WHERE champ LIKE expression; Expression est une chaîne de caractères constante à laquelle le champ est comparé. Question: Quels sont les clients dont le nom de la commune commence par « A »? Réponse: SELECT * FROM Agent WHERE commune LIKE "A*" ;  Les opérateurs logiques AND, OR, NOT Il existe 3 opérateurs logiques: NOT, AND, OR (non, et, ou) Question: Quels sont les véhicule de marque PEUGEOT de couleur BLEU ? Réponse: SELECT * FROM Véhicule WHERE Marque ="RENAULT" AND couleur = "Bleue";
  • 42. Modèle relationnel et MS Access 2007 P a g e | 42 2e année IDA Question: Quels sont les agents résidents à COCODY ou ANYAMA ? Réponse: SELECT Nom, Prénom, Commune FROM Agent WHERE commune ="COCODY" OR commune = "ANYAMA";  L’opérateur BETWEEN (comparaison à une fourchette de valeurs) Sa fonction est de rechercher si une valeur se trouve dans un intervalle donné. L’intervalle est généralement de type Numérique ou de type Date. Question: Quelles sont les véhicules qui ont été achetés au cours de l'année 2011? Réponse: SELECT N°Immatriculation, dateachat As [Date d'achat], marque, couleur FROM Véhicule WHERE DateAchat BETWEEN #01/01/2011# AND #31/12/2011#  L’opérateur IN (comparaison à une liste de valeurs) Cet opérateur permet de déterminer si la valeur d’un champ donné appartient à une liste de valeurs prédéfinies. Les valeurs dans la liste des valeurs sont généralement de type Numérique, Texte ou Date. Question: Affichez l’étage, le type et le prix des chambres ayant pour prix 10 000, 12 000, 15 000. Réponse: SELECT N°Immatriculation, dateachat As [Date d'achat], marque, couleur FROM Véhicule WHERE couleur IN ("Bleu", "Blanc")
  • 43. Modèle relationnel et MS Access 2007 P a g e | 43 2e année IDA 3.5. Le tri et la clause ORDER BY Cette clause permet de définir le tri des colonnes de la réponse, soit en précisant le nom littéral de la colonne, soit en précisant son n° d'ordre dans l'énumération qui suit le mot clé SELECT.  Syntaxe SELECT attribut, attribut FROM table, table WHERE condition ORDER BY attribut , ASC|DESC, attribut, ASC|DESC … ASC|DESC signifient Ascendant ou DESCendant Par défaut, l’ordre est ASC. Question: Élaborez la liste triée de tous les agents (nom, prénom et commune). Réponse SELECT Nom, prénom, commune FROM Agent ORDER BY Nom, Prénom ; Question : Affichez la liste de tous les véhicules de la date d'achat la plus récente à la plus ancienne. Réponse : SELECT * FROM véhicule ORDER BY dateachat DESC, 3.6. Les fonctions d’agrégation Les agrégats sont des fonctions utilisées pour des calculs mathématiques ou statistiques. Derrière ce mot compliqué se cachent quelques fonctions qui peuvent être utilisées à l'intérieur des requêtes de sélection pour faire des calculs sur le résultat de la requête. Les paramètres d'une fonction d'agrégation sont toujours entourés de parenthèses.
  • 44. Modèle relationnel et MS Access 2007 P a g e | 44 2e année IDA Voici les fonctions d'agrégation les plus répandues: COUNT (*) Détermine le nombre d'enregistrements du résultat de la requête. Tient compte de tous les enregistrements, y compris les valeurs NULL. COUNT (Nom d'un champ) Détermine le nombre des enregistrements pour lesquels le champ indiqué ne contient pas la valeur NULL. SUM (Nom d'un champ) Calcule pour tous les enregistrements sélectionnés, la somme des valeurs du champ indiqué (non NULL). AVG (Nom d'un champ) Calcule pour tous les enregistrements sélectionnés, la moyenne des valeurs du champ indiqué (non NULL). MAX (Nom d'un champ) Détermine pour tous les enregistrements sélectionnés, la plus grande des valeurs du champ indiqué (non NULL). MIN (Nom d'un champ) Détermine pour tous les enregistrements sélectionnés, la plus petite des valeurs du champ indiqué (non NULL). Nous utiliserons la base de données Client-contrat Question : comptez le nombre de contrat signés par le client N°4 Réponse : SELECT count (*) As [Nombre de contrat] FROM contrat WHERE n°client=4 ; Question : affichez le contrat de plus grande et de plus petite prime Réponse : SELECT MAX (prime) As [Prime maximale], MIN (prime) As [Prime minimale] FROM contrat; Question : affichez la moyenne générale des primes Réponse : SELECT AVG (prime) As [Moyenne gle des primes payées] FROM contrat; 3.7. Les requêtes sur les groupes C’est une opération qui consiste à regrouper des attributs provenant de plusieurs tables. Deux clauses sont souvent utilisées : GROUPE BY et HAVING.
  • 45. Modèle relationnel et MS Access 2007 P a g e | 45 2e année IDA  La clause GROUPE BY Elle est nécessaire dès que l'on utilise des fonctions d’agrégats vues plus haut. Cette clause groupe les lignes sélectionnées en se basant sur la valeur de colonnes spécifiées pour chaque ligne et renvoie une seule ligne par groupe. Syntaxe : SELECT liste de champs de groupe, [COUNT, SUM…] [AS NveauNomChamp] FROM table WHERE condition GROUP BY liste de champs de groupe ORDER BY nom d’un champ [ASC/DESC], nom d’un champ [ASC/DESC], …; Question : affichez le n° du client ainsi que le montant total de primes payées chaque client par mois, dans l'ordre décroissant. Réponse : SELECT N°Client, sum (prime) As [Total des primes payées par mois] FROM contrat GROUP BY n°client ORDER BY sum (prime) desc ;  La clause HAVING Elle permet d’appliquer des prédicats de restrictions (ou conditions) sur les résultats de regroupement. Elle offre la possibilité d’éliminer du résultat, les groupes qui ne donnent pas satisfaction aux critères de sélection des groupes. Syntaxe : SELECT liste de champs de groupe, [COUNT, SUM…] [AS NveauNomChamp] FROM table WHERE condition GROUP BY liste de champs de groupe HAVING condition de sélection des groupes ORDER BY nom d’un champ [ASC/DESC], nom d’un champ [ASC/DESC], …; Question : affichez le n° du client ainsi que le montant total de primes payées chaque client par mois, dans l'ordre décroissant.ne prendre en compte que les clients dont le montant est >150000 F. Réponse : SELECT N°Client, sum (prime) As [Total des primes payées par mois] FROM contrat GROUP BY n°client HAVING sum (prime) >150000 ORDER BY sum (prime) desc ;
  • 46. Modèle relationnel et MS Access 2007 P a g e | 46 2e année IDA 4. Le blocage des requêtes Les requêtes Action peuvent avoir des conséquences désastreuses sur votre base de données. C’est pourquoi, par défaut et pour des mesures de sécurité, Access empêche l'exécution de toutes les requêtes Action, à savoir les requêtes Ajout, Mise à jour, Suppression ou Création de table. Si vous essayez d'exécuter une requête Action et que rien ne semble se produire, vérifiez si le message suivant s'affiche dans la barre d'état Access : Le mode désactivé a bloqué cette action ou cet événement. A l'affichage de ce message, procédez comme suit : Activer le contenu bloqué : Dans la barre des messages, cliquez sur Options. La boîte de dialogue Options de sécurité Microsoft Office s'affiche Sélectionnez l'option Activer ce contenu, puis cliquez sur OK. Exécutez votre requête à nouveau. Si vous ne voyez pas la barre de messages : Cliquez sur l'onglet Outils de base de données puis, dans Afficher/Masquer, cliquez sur Barre des messages.
  • 47. Modèle relationnel et MS Access 2007 P a g e | 47 2e année IDA 5. Les requêtes d’insertion: La commande INSERT 5.1. Définition : Une requête d’insertion permet d’insérer (ajouter) un tuple dans une table déjà créée. 5.2. Syntaxe : INSERT INTO <Nom de la table> (<Liste des champs>) VALUES (<Valeurs pour les champs>); Les parenthèses dans les requêtes sont obligatoires ; Le nombre d’attributs doit correspondre au nombre de valeurs à insérer. 5.3. Exemple :  Ajouter la ligne suivante à la table « CLIENT » INSERT INTO CLIENT ( Nom, prénom, tel ) VALUES ("GARANGOME", "PATRICIA", "50 12 14 16"); Remarques :  Dans cette requête, l’attribut « N°Client » a été omis. Cela à dessein car il est de type « Numérique Automatique ». Access l’ajoutera automatique lors de l’insertion du tuple.  Vérifiez qu’il y a une correspondance (l'ordre des attributs) entre les attributs déclarés dans la clause INSERT INTO et la liste des valeurs de la clause VALUES (sémantique, syntaxe et type de données). 6. Les requêtes de modification (ou de mise à jour): La commande UPDATE 6.1. Définition Une requête de mise à jour permet de modifier la valeur d’un ou plusieurs attributs dans un ou plusieurs tuples d’une table. Le verbe utilisé est UPDATE. 6.2. Syntaxe UPDATE <Nom de la table> SET <Nom d'un champ> = {valeur}, <Nom d'un champ>={valeur}, . . WHERE <Critères de sélection>; 6.3. Exemple  Modifions la prime du contrat N°4 qui passe de 100 000 F à 90 000 F. UPDATE Contrat SET prime = 90000 WHERE N°Contrat = 4 ;
  • 48. Modèle relationnel et MS Access 2007 P a g e | 48 2e année IDA 7. Les requêtes de suppression : La commande DELETE 7.1. Définition Une requête de suppression permet de supprimer un ou plusieurs tuples dans la table. Le verbe utilisé est DELETE. 7.2. Syntaxe DELETE FROM <nom de la table> WHERE <critère de sélection> Remarque : si on n’ajoute pas la clause WHERE, tous les tuples de la table sont supprimés. 7.3. Exemple :  À supposer que le contrat numéro 6 devrait être annulé, donc à supprimer. DELETE FROM Contrat WHERE N°Contrat = 6; 8. Les requêtes paramétrées 8.1. Définition Une requête paramétrée est une variante de requête qui permet à un utilisateur de saisir une variable dans une boite de dialogue avant l’exécution. 8.2. Exemple Soit la table CONTRAT ; imaginons que de temps en temps vous vouliez établir cette liste, mais en sélectionnant les contrats signés après une date quelconque. Au lieu de modifier à chaque fois le critère de sélection en SQL, vous pouvez définir une requête paramétrée. Dans la requête paramétrée, on n’indique pas directement la date de fin comme constante, mais une variable appelée paramètre, et à chaque fois que la requête est exécuté, une boîte de dialogue demandera d’entrer une date pour l’exécution. Voici la requête à formuler avec le paramètre sur la date limite :  Cliquez sur OK
  • 49. Modèle relationnel et MS Access 2007 P a g e | 49 2e année IDA  Pour notre base de données, on obtient le résultat suivant : Remarque : une requête peut comporter plusieurs paramètres. 9. Les requêtes multitable Une requête multitable fait intervenir plusieurs tables/requêtes. Nous allons mettre en évidence cette notion en utilisant les trois tables en relation comme suit : Relations entre les tables 9.1. La jointure 9.1.1. Définition de la jointure Une jointure est une opération qui consiste en une fusion, sous condition, de plusieurs tables. Elle permet de combiner les colonnes de plusieurs tables. Pour se faire, la jointure fait des requêtes sur plusieurs tables en les mettant en relation. 9.1.2. Création d’une jointure Pour créer une jointure, on doit:  Indiquer dans la clause FROM les noms des tables impliquées  Préciser dans la clause WHERE une condition de jointure  Indiquer dans la clause SELECT les noms des champs à afficher La condition de jointure spécifie généralement, mais pas nécessairement, une égalité entre une clé étrangère d'une table et la clé primaire d'une table correspondante.
  • 50. Modèle relationnel et MS Access 2007 P a g e | 50 2e année IDA 9.1.3. Exemples  Quel est le code SQL d'une requête qui affiche pour chaque contrat, le numéro du contrat, la date, ainsi que le nom et le prénom du client concerné. SELECT N°Contrat, DateContrat, Prime,nom, prénom FROM Contrat, Client WHERE Contrat.N°client = Client.N°client;  Affichez la liste des clients qui ont un contrat dont la prime vaut au moins 100 000 F. SELECT distinct Client.N°Client, Nom, Prénom, N°Contrat, Prime FROM Contrat, Client WHERE (Contrat.N°client = Client.N°client) AND (prime>=100000);  Affichez les clients qui ont signé un contrat au cours du mois de mai 2012. SELECT client.N°Client, nom, prénom,n°contrat, prime, datecontrat FROM client,Contrat WHERE (client.n°client = Contrat.n°client) And (datecontrat Between #5/1/2012# And #5/31/2012#); 9.2. L’auto-jointure 9.2.1. Définition L’auto-jointure est une opération qui consiste à joindre une table à elle-même. Elle permet notamment de modéliser des structures de données complexes comme des arbres. Dans une auto-jointure, l’utilisation des alias est obligatoire. 9.2.2. Exemple Affichez le numéro du contrat, la prime et la date de signature pour tout contrat dont le montant de la prime est supérieur ou égal au contrat N° 4. SELECT Ct1.N°contrat, Ct1.prime,Ct1.datecontrat FROM contrat Ct1, contrat Ct2 WHERE Ct2.N°contrat = 4 AND Ct1.prime > Ct2.prime ;
  • 51. Modèle relationnel et MS Access 2007 P a g e | 51 2e année IDA 9.3. Les requêtes imbriquées 9.3.1. Introduction Nous savons qu'une requête de sélection se base sur une ou plusieurs tables pour afficher un résultat. En SQL, on peut imbriquer plusieurs requêtes, c.à.d. le résultat d'une requête imbriquée sert comme base pour une deuxième requête. Une requête imbriquée est encore parfois appelée « SELECT interne » ou « sous-requête ». 9.3.2. Quelques exemples de requêtes imbriquées  Affichez le nom, prénom, téléphone du client qui a signé le contrat N°3 SELECT nom, prénom, tel FROM client WHERE N°client = (SELECT N°client FROM Contrat WHERE N°Contrat = 3); Remarque: la requête ci-dessus est équivalente à celle-ci: SELECT nom, prénom, tel FROM client, contrat WHERE (Client.N°client =contrat.N°client) And (N°Contrat = 3); 10. Le QBE 10.1. Définition du QBE Le langage QBE est un langage visuel, très pratique d’emploi et très simple à mettre en œuvre. Il permet à un utilisateur d’opérer une interrogation visuelle d’une base de données généralement dans un environnement de travail « multi-fenêtrage » à base de fenêtres, menu, sous-menu, onglets etc. 10.2. Description du QBE QBE offre à l'utilisateur une interface graphique qui permet de :  Sélectionner une table sur laquelle la requête sera basée (SQL : FROM …).  Choisir parmi les champs de cette table ceux qui vont être affichés (SQL : SELECT …).  Définir pour un ou plusieurs champs des critères de sélection (SQL : WHERE …).  Définir un ordre de tri (SQL : ORDER BY …).  etc. Il est cependant important de savoir que les requêtes QBE sont toujours exécutées via SQL, parce qu'un SGBD ne comprend pas vraiment QBE. QBE n'est qu'une interface graphique couplée à un interpréteur, qui transforme les indications de l'écran QBE en SQL. La partie du SGBD, qui exécute la requête (appelée le moteur SQL), utilise le code SQL généré par l'interpréteur de la même façon que celui entré directement par l'utilisateur.
  • 52. Modèle relationnel et MS Access 2007 P a g e | 52 2e année IDA 10.3. Comment créer une requête via le QBE ?  Pour construire une requête à l’aide du QBE - Cliquez sur le menu Créer - Dans le sous-menu Autre, sélectionnez l’icône Création de requête - S’affiche un écran comme ci-dessous avec la fenêtre des tables Access (Tables, Requêtes, Les deux) La fenêtre « Afficher la table » permet de sélectionner la (les) table(s) / requête(s) qui doivent contenir les champs nécessaire à notre requête. - Sélectionner la table/requête et cliquez sur le bouton Ajouter. - Cliquez sur Fermer après avoir affiché les objets nécessaires. Dans la figure ci-dessous, vous constatez que nous avons ajouté les tables Contrat et Client. Cet écran présente deux niveaux : 1er niveau : les tables en relation. 2e niveau : un tableau reprenant les champs et tables sélectionnés.
  • 53. Modèle relationnel et MS Access 2007 P a g e | 53 2e année IDA  Quels sont les champs que nous souhaitons voir apparaitre dans notre requête ? Il y a plusieurs manières de sélectionner les champs de la requête. 1ère méthode : - Dans les tables en relation, faites un double clic sur chaque champ nécessaire. - Ces champs sont immédiatement visibles dans la le tableau du bas en spécifiant la table dont ils sont issus. - Les boutons d’option sont cochés en vert. 2e méthode : Dans le 2e niveau de la fenêtre - Cliquez sur l’onglet de la zone Table pour sélectionner la table. - Puis cliquez sur l’onglet de la zone Champ pour sélectionner le champ.  Comment annuler un champ ? Il suffit de désactiver le bouton d’option relatif au champ.  Comment exécuter la requête QBE ? Cliquez sur l’icône pour exécuter la requête. Résultat de l’exécution de la requête
  • 54. Modèle relationnel et MS Access 2007 P a g e | 54 2e année IDA  On peut basculer du QBE au SQL Lorsque le QBE est exécuté on se trouve dans le mode Affichage de requête. Pour basculer dans un autre mode, cliquez ici et sélectionner SQL: En sélectionnant le mode SQL, on s'aperçoit que MS Access génère automatiquement le code SQL correspondant à la fenêtre QBE : 11. La définition des données Nous avons vu plus haut que le DDL (Data Definition Language) est la partie du SQL qui permettait de décrire les éléments de base d’une base de données. 11.1. La création d’une table : CREATE TABLE L’instruction CREATE TABLE permet de définir une nouvelle table, ses champs et ses contraintes. 11.1.1. Syntaxe La structure de base simplifiée de cette instruction est du type : CREATE TABLE table Attribut, Attribut, … CONSTRAINT attribut index; CREATE TABLE : précise le nom de la table à créer, le type de données et la taille des champs. CONSTRAINT : précise l’index champ à créer. 11.1.2. Exemple Créons une nouvelle base de données à l’aide des commandes SQL. - Lancez MS ACCESS - Cliquez sur « Créer une base de données vide » - Nommez la nouvelle base de données, par exemple GESTION2 et enregistrez.
  • 55. Modèle relationnel et MS Access 2007 P a g e | 55 2e année IDA - Créez la table « Technicien » avec ses champs et comme clé primaire, le Matricule. CREATE TABLE Technicien (Matricule Integer not NULL PRIMARY KEY , Nom text(15), Prénom text(20), Cellulaire text(8), Fax text(8) CONSTRAINT Technicien UNIQUE (Matricule); Cette instruction crée une nouvelle table nommée Technicien comportant cinq champs de type numérique entier, chaîne de caractères et un index unique composé d’un seul champ (Matricule). 11.2. La création d’un index : CREATE INDEX L’instruction CREATE INDEX permet de créer un index dans une table. 11.2.1. Syntaxe La structure de base simplifiée de cette instruction est du type : CREATE [UNIQUE] INDEX nom_index ON table attribut CREATE [UNIQUE] INDEX : permet de préciser le nom de l’index à créer et la possibilité, ou non, d’avoir des doublons. ON : précise le nom de la table existante, dans laquelle l’index doit être créé, et le nom du ou des champs à indexer. 11.2.2. Exemple Créons un index sur la table Technicien en utilisant le champ Matricule. CREATE UNIQUE INDEX (indmatricule) ON Technicien (matricule); 11.3. Modification d’une table : ALTER TABLE Cette instruction permet de modifier une table existante soit en ajoutant soit en supprimant des champs. Syntaxe : ALTER TABLE table 11.3.1. Ajout de colonne : ADD ADD COLUMN : Cette structure permet d’ajouter des champs dans la table. Syntaxe : ADD COLUMN liste des champs 11.3.2. Suppression de colonne : DROP DROP COLUMN : Cette structure permet de supprimer des champs dans la table.
  • 56. Modèle relationnel et MS Access 2007 P a g e | 56 2e année IDA Syntaxe générale : DROP COLUMN liste des champs
  • 57. Modèle relationnel et MS Access 2007 P a g e | 57 2e année IDA Chapitre 6 : LES FORMULAIRES 1. À propos des formulaires 1.1. Définition Un formulaire est un objet de base de données qui permet d'entrer, de modifier ou d'afficher les données d'une table ou d'une requête. Les formulaires permettent également de contrôler l'accès aux données en n'affichant, par exemple, que certains champs ou lignes de données. Il est plus facile d'utiliser la base de données à l'aide d'un formulaire. On peut y ajouter des boutons et d'autres fonctionnalités afin d'automatiser les opérations fréquemment effectuées. Les formulaires représentent donc un autre outil de manipulation de données des SGBD. En général on utilise un formulaire pour:  Entrer des données.  Consulter des données.  Modifier des données. Vous remarquez que ce formulaire affiche un enregistrement à la fois. Un formulaire est toujours lié à une table ou bien à une requête. Il ne représente donc qu'une interface entre l'utilisateur et les tables. Toutes les données saisies sur un formulaire sont donc inscrites dans la (les) table(s) correspondante(s). 1.2. Les contrôles d’un formulaire En MS ACCESS 2007 le contenu des la barre des contrôles disponibles se présente comme suit:
  • 58. Modèle relationnel et MS Access 2007 P a g e | 58 2e année IDA Boîtes à outils en Access 2007 1.3. Description des contrôles Les contrôles Leurs descriptions L’étiquette Permet d’afficher des textes descriptifs, tels que des titres des légendes ou des instructions brèves. La zone de texte Permet d’afficher les données d’une table, d’une requête ou d’une instruction SQL. Elle permet aussi de saisir des données. La case à cocher Elle permet d’afficher une valeur Oui/Non à partir d’une table, d’une requête ou d’une instruction SQL. Le bouton d’option Permet d’afficher une valeur Oui/Non à partir d’une table d’une requête ou d’une instruction SQL. Le bouton bascule Il permet d’indiquer si une situation est vraie ou fausse à partir d’une table, d’une requête ou d’une instruction SQL. Le groupe d’options Permet d’afficher un ensemble limité d’alternatives. L’utilisateur ne peut sélectionner qu’une option à la fois. Il est composé de deux parties : un cadre de groupe et un ensemble de cases à cocher, de boutons d’options ou de boutons bascule. La zone de liste Elle affiche en permanence une liste de valeurs permettant à l’utilisateur de sélectionner une valeur de cette liste tout en limitant ainsi les saisies de données aux seules valeurs contenues dans la liste. La zone de liste modifiable Elle représente une combinaison d’une zone de texte et d’une zone de liste. Elle offre la possibilité, à la fois, de sélectionner une valeur dans une liste déroulante et de saisir de nouvelles valeurs. L’onglet Il permet de présenter plusieurs pages d’information sous forme d’un seul ensemble. Cela est particulièrement utile lorsque l’on travaille avec plusieurs contrôles pouvant être répartis en deux ou plusieurs catégories. Le bouton de commande Il permet d’exécuter une action ou un ensemble d’actions. En Access il est possible de créer plus de 30 types de boutons de commandes différents. Sous-formulaire ou Sous-état Contrôle utilisé pour afficher les données provenant de plusieurs tables dans un formulaire ou un état. Graphique (menu Insertion) Affiche les données Microsoft Access sous forme de graphique dans un formulaire ou un état.. Pour ajouter un graphique créé à partir d'une autre application, telle que Microsoft Excel ou Lotus 1-2-3, utilisez les outils Cadre d'objet indépendant ou Cadre d'objet dépendant de la boîte d'outils. Cadre d'objet indépendant Cadre servant à afficher un objet OLE indépendant – par exemple une feuille de calcul Microsoft Excel – dans un formulaire ou un état. Cet objet reste identique lorsque vous vous déplacez d'un enregistrement à un autre. Cadre d'objet dépendant Permet d'afficher des objets OLE, tels qu'une série d'images, dans un formulaire ou dans un état. Ce contrôle sert dans le cas d'objets stockés dans un champ de la source d'enregistrements sous-jacents du formulaire ou de l'état. Un objet différent apparaît dans le formulaire ou l'état à mesure que vous vous déplacez d'enregistrement en enregistrement. Logo Insère une image dans le formulaire ou l’état dans le but de l’utiliser comme logo. Titre / Page / Date et Heure Insère dans le document un titre, le numéro de page, la date et l’heure.
  • 59. Modèle relationnel et MS Access 2007 P a g e | 59 2e année IDA 1.4. Les types de contrôles Les contrôles peuvent être dépendants, indépendants ou calculés :  Le contrôle dépendant : c'est un contrôle dont la source de données est un champ de table ou de requête. Les contrôles dépendants servent à afficher des valeurs issues de champs d'une base de données. Ces valeurs peuvent consister en du texte, des dates, des valeurs numériques, des valeurs Oui/Non, des images ou des graphiques. Par exemple, une zone de texte de formulaire qui présente le nom d'un employé peut tirer cette information du champ Nom de la table Employés.  Le contrôle indépendant : c'est un contrôle qui n'a pas de source de données (comme un champ ou une expression). Les contrôles indépendants s'avèrent particulièrement utiles pour afficher des informations, des lignes, des rectangles et des images. Par exemple, une étiquette qui affiche le titre d'un formulaire est un contrôle indépendant.  Le contrôle calculé : c'est un contrôle dont la source de données est une expression, et non un champ. C'est vous qui spécifiez la valeur à utiliser comme source de données du contrôle en définissant une expression. Une expression peut être une combinaison d'opérateurs (tels que = et + ), de noms de contrôles, de noms de champs, de fonctions renvoyant une valeur unique et de valeurs de constante. Par exemple, l'expression suivante calcule le prix d'un article avec une remise de 25 % en multipliant la valeur figurant dans le champ Prix unitaire par une valeur de constante (0,75). = [Prix unitaire] * 0,75 Une expression peut utiliser les données d'un champ de la table ou de la requête sous-jacente du formulaire, ou encore les données d'un autre contrôle du formulaire. 2. Utilisation d’un formulaire 2.1. Quand faut-il utiliser un formulaire ?  Lorsqu'on ne veut pas que les utilisateurs travaillent directement dans les tables.  Les formulaires offrent généralement des mécanismes de sécurité plus sophistiqués tels que les zones de listes qui empêchent les utilisateurs d'entrer n'importe quelle valeur dans un champ etc.  Lorsqu'on veut présenter les données sous une forme plus conviviale.  Lorsqu'on désire afficher les enregistrements un à la fois. ( Formulaires Colonne Simple) Le principe de conception d'un bon formulaire est toujours de minimiser le nombre de frappes afin de minimiser les erreurs possibles. 2.2. Quelle est la base de création d'un formulaire ?
  • 60. Modèle relationnel et MS Access 2007 P a g e | 60 2e année IDA  Tout comme les tables et les requêtes, un formulaire est un composant d'une BD, qui doit être créé et défini avant de pouvoir être utilisé pour manipuler les données.  Chaque formulaire se crée à partir d'une table ou d'une requête.  Les données affichées dans un formulaire proviennent donc de tables ou de requêtes, tandis que certaines informations spécifiques à l'apparence du formulaire (p.ex. couleur de l'arrière plan …) sont stockées dans la définition du formulaire. 3. Les types de formulaires Principalement, nous distinguons trois types de formulaires : 3.1. Le formulaire colonne simple Dans un formulaire Colonne Simple, les valeurs des enregistrements sont affichées dans une seule colonne. Chaque valeur d'un enregistrement se trouve dans un champ de formulaire dédié. Un seul enregistrement est donc représenté à chaque fois. 3.2. Le formulaire tabulaire
  • 61. Modèle relationnel et MS Access 2007 P a g e | 61 2e année IDA Dans un formulaire tabulaire, les enregistrements sont représentés sur des lignes et des colonnes. Ce type de formulaire a une apparence similaire à celle de la vue d'un tableau ou d'un résultat d'une requête. 3.3. Le formulaire graphique Un formulaire graphique permet de représenter les informations d’une table, d’une requête sous la forme d’un graphique. La plupart des SGBD offrent une multitude d'options de représentations graphiques (Histogrammes 2D, Histogrammes 3D, Diagrammes circulaires …). 3.4. La création d’un formulaire 3.4.1. Avant de créer un formulaire, quelques réflexions s'imposent:  Comment est-ce qu'on veut représenter les données et quel type de formulaire est le plus adéquat ?  Est-ce que l'utilisateur aura la possibilité d'ajouter, de modifier respectivement de supprimer des données ?  Quels sont les contrôles appropriés pour représenter les différents champs de la table respectivement de la requête ? Voici quelques règles générales d'utilisation des différents contrôles standards.  Pour représenter un champ à valeur logique (Oui/Non), employez impérativement une case à cocher. Plusieurs cases à cocher peuvent être regroupées afin de représenter plusieurs champs à valeur logique.  Pour représenter un champ, qui ne peut contenir qu'un nombre très limité (max 5) de valeurs prédéfinies du type numérique, texte ou date, qui sont en plus mutuellement exclusives, utilisez un groupe de boutons d'options.  Un champ, qui peut contenir un nombre limité (> 5) de valeurs prédéfinies du type numérique, texte ou date, qui sont en plus mutuellement exclusives, devra être représenté par une zone de liste. Exemple : Le gérant peut sélectionner le numéro d’étage en sélectionnant. Exemple: le type de chambre est soit « Simple » soit « Double »
  • 62. Modèle relationnel et MS Access 2007 P a g e | 62 2e année IDA  Lorsque pour un champ, représenté normalement par une zone de liste, vous voulez donner à l'utilisateur la possibilité d'entrer des valeurs outres que celles prédéfinies, utilisez une liste modifiable.  Pour les champs ou vous ne pouvez pas du tout anticiper les valeurs, et qui ne sont pas du type logique, utilisez une zone de texte. Exemple: L'employé doit entrer le nom du client. Lors de la conception d'un formulaire, le respect de ces quelques règles garantit à l'utilisateur le principe de la saisie minimale. Partout ou une sélection de valeurs prédéfinies est possible, l'utilisateur n'a pas besoin d'entrer les données au clavier. Avantage: 1. La rapidité de la saisie des données augmente  meilleure productivité. 2. Élimination de beaucoup de sources d'erreur. 3.4.2. Les sections d’un formulaire Un formulaire peut avoir plusieurs sections distinctes, ce qui vous permet alors d'afficher les contrôles de différentes manières. Voici la définition de chaque section Section Définition En-tête d'un formulaire Elle permet, par exemple, d’afficher un titre, des instructions d’utilisation du formulaire ou des boutons de commande qui ouvrent des formulaires liés ou effectuent d’autres opérations. En-tête de page Elle permet, par exemple, d’afficher un titre, des en-têtes de colonne ou toute information souhaitée en haut de chaque page. L’en-tête de page n’apparaît que si l’on imprime le formulaire. Section détail Elle contient en général des contrôles dépendants des champs ou d’une ou plusieurs tables relationnelles. Elle permet donc d’afficher des champs provenant de ces champs. Elle peut aussi comporter des contrôles indépendants des champs des tables de la base de données, telles que des étiquettes. Pied de page Elle permet, par exemple, d’afficher la date, le numéro de page ou toute information souhaitée au bas de chaque page. Il n’apparaît que si l’on imprime le formulaire. Pied de formulaire Elle permet, par exemple, d’afficher des instructions d’utilisation du formulaire, des boutons de commande ou des contrôles indépendants, relatifs à l’acceptation des données entrées par l’utilisateur. Remarques: - On ne peut pas supprimer la section Détail du formulaire. - Pour redimensionner une section, placez le pointeur de la souris sur un bord de la section jusqu'à ce qu'il adopte la forme d'une flèche de redimensionnement gauche-droite, puis faites glisser le bord jusqu'à ce que la section prenne la taille adéquate.
  • 63. Modèle relationnel et MS Access 2007 P a g e | 63 2e année IDA Les différentes sections du formulaire 4. Les modes de création d’un formulaire Les formulaires peuvent être comparés à des fenêtres à travers lesquelles les personnes voient et atteignent votre base de données. Un formulaire efficace permet d'accélérer l'utilisation d'une base de données dans la mesure où les personnes n'ont pas besoin de rechercher les éléments dont elles ont besoin. Il améliore non seulement la convivialité et l'efficacité de la base de données, mais il permet également d'éviter la saisie de données incorrectes. Il existe plusieurs modes de création. 4.1. Pour la manipulation des formulaires : Il faut savoir  Créer un formulaire à l'aide de l'outil Formulaire  Créer un formulaire double affichage à l'aide de l'outil Formulaire double affichage  Créer un formulaire affichant plusieurs enregistrements à l'aide de l'outil Plusieurs éléments  Créer un formulaire à l'aide de l'Assistant Formulaire  Créer un formulaire à l'aide de l'outil Vide  Utilisation des contrôles  Présentation des dispositions de contrôle  Présentation des modes Page et Création  Ajuster votre formulaire en mode Page  Ajuster votre formulaire en mode Création  Ajouter des contrôles à votre formulaire  Enregistrer votre travail
  • 64. Modèle relationnel et MS Access 2007 P a g e | 64 2e année IDA 4.2. Création d'un formulaire à l'aide de l'outil « Formulaire » L'outil Formulaire permet de créer facilement et rapidement un formulaire. Lorsque vous utilisez cet outil, tous les champs de la source de données sous-jacente sont placés dans le formulaire. Vous pouvez commencer à utiliser le nouveau formulaire immédiatement, comme vous pouvez le modifier en mode Page ou Création pour l'adapter à vos besoins. Utilisons l'outil Formulaire pour créer un formulaire 1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que vous souhaitez faire figurer dans le formulaire. 2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire. Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des modifications à la conception du formulaire tout en ayant les données affichées. Par exemple, vous pouvez ajuster la taille des zones de texte en fonction des données à afficher, si nécessaire. Si Access détermine que seule une table a une relation un-à-plusieurs avec la table ou la requête qui a servi à la création du formulaire, Access ajoute une feuille de données au formulaire, basée sur la table ou la requête associée. Par exemple, si vous créez un formulaire standard à partir de la table Employés, et qu'une relation un-à-plusieurs est définie entre la table Employés et la table Commandes, la feuille de données affiche tous les enregistrements de la table Commandes se rapportant à l'enregistrement Employé actif. Vous pouvez supprimer la feuille de données du formulaire si vous jugez ne pas en avoir besoin. S'il existe plusieurs tables liées par une relation un- à-plusieurs avec la table qui a servi à créer le formulaire, Access n'ajoute pas de feuilles de données au formulaire. 4.3. Création d'un formulaire à l'aide de l'outil « Formulaire double affichage » Le formulaire double affichage est une nouvelle fonctionnalité de Microsoft Office Access 2007 qui offre deux affichages simultanés des données : un affichage Formulaire et un affichage Feuille de données. Ces deux affichages sont rattachés à la même source de données et sont toujours synchronisés. Ainsi, si vous sélectionnez un champ dans une partie du formulaire, le même champ est sélectionné dans l'autre partie du formulaire. Vous pouvez ajouter, modifier ou supprimer des données dans chacune des parties, comme en modifier ou en supprimer (à condition que la source d'enregistrement soit modifiable et que vous n'ayez pas configuré le formulaire de façon à empêcher ces opérations).
  • 65. Modèle relationnel et MS Access 2007 P a g e | 65 2e année IDA L'utilisation de formulaires double affichage offre les avantages de deux types de formulaires dans un seul et même formulaire. Par exemple, vous pouvez utiliser la partie feuille de données du formulaire pour retrouver rapidement un enregistrement, et utiliser ensuite la partie formulaire pour consulter ou modifier l'enregistrement. Pour créer un formulaire double affichage à l'aide de l'outil Formulaire double affichage : 1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que vous souhaitez faire figurer dans le formulaire. Vous pouvez également ouvrir la table ou la requête en mode Feuille de données. 2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire double affichage. Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des modifications à la conception du formulaire tout en ayant les données affichées. Par exemple, vous pouvez ajuster la taille des zones de texte en fonction des données à afficher, si nécessaire. 4.4. Création d'un formulaire affichant plusieurs enregistrements à l'aide de l'outil « Plusieurs éléments » Lorsque vous créez un formulaire à l'aide de l'outil Formulaire standard, le formulaire créé par Access affiche un seul enregistrement à la fois. Si vous avez besoin d'un formulaire qui affiche plusieurs enregistrements tout en offrant davantage de possibilités en termes de personnalisation qu'une feuille de données, vous pouvez utiliser l'outil Plusieurs éléments.
  • 66. Modèle relationnel et MS Access 2007 P a g e | 66 2e année IDA 1. Dans le volet de navigation, cliquez sur la table ou la requête qui contient les données que vous souhaitez faire figurer dans le formulaire. 2. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Plusieurs éléments. Access crée le formulaire et l'affiche en mode Page. Ce mode vous permet d'apporter des modifications à la conception du formulaire tout en ayant les données affichées. Par exemple, vous pouvez adapter la taille des zones de texte en fonction des données à afficher. Lorsque vous utilisez l'outil Plusieurs éléments, le formulaire créé par Access ressemble à une feuille de données. Les données sont disposées dans des lignes et des colonnes, et vous voyez plusieurs enregistrements à la fois. Toutefois, un formulaire Plusieurs éléments offre davantage d'options de personnalisation qu'une feuille de données, avec notamment la possibilité d'ajouter des éléments graphiques, des boutons et d'autres contrôles. 4.5. Création d'un formulaire à l'aide de l' « Assistant Formulaire » Pour être plus sélectif quant aux champs à faire figurer sur votre formulaire, vous pouvez utiliser l'Assistant Formulaire. Vous pouvez également définir la façon dont les données sont regroupées et triées, et vous pouvez utiliser les champs de plusieurs tables ou requêtes, si tant est que vous ayez préalablement spécifié les relations entre les tables et les requêtes. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Plus de formulaires, puis sur Assistant Formulaire. 1. Suivez les instructions fournies dans les pages de l'Assistant Formulaire. REMARQUE Si vous souhaitez inclure des champs de plusieurs tables ou requêtes dans votre formulaire, répétez les étapes afin de sélectionner une table ou une requête, puis cliquez sur les champs supplémentaires que vous souhaitez inclure dans le formulaire. Cliquez ensuite sur Suivant ou sur Terminer pour continuer. 2. Dans la dernière page de l'Assistant, cliquez sur Terminer. 4.6. Création d'un formulaire à l'aide de l'outil « Vide » C'est un outil qui permet de créer un formulaire en peu de temps, surtout si vous prévoyez de placer un nombre limité de champs dans votre formulaire. 1. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Formulaire vierge. Access ouvre un formulaire vide en mode Page et affiche le volet Liste de champs. 2. Dans le volet Liste de champs, cliquez sur le signe plus (+) en regard de la ou des tables contenant les champs que vous souhaitez faire figurer sur le formulaire.
  • 67. Modèle relationnel et MS Access 2007 P a g e | 67 2e année IDA 3. Pour ajouter un champ au formulaire, double-cliquez dessus ou faites-le glisser vers le formulaire. Pour ajouter plusieurs champs à la fois, maintenez la touche Ctrl enfoncée, cliquez sur plusieurs champs, puis faites-les glisser simultanément vers le formulaire. 4. Pour ajouter un logo, un titre, des numéros de page ou la date et l'heure au formulaire, utilisez les outils figurant dans le groupe Contrôles, sous l'onglet Mise en forme. 5. Si vous souhaitez ajouter une plus grande variété de contrôles au formulaire, passez en mode Création en cliquant avec le bouton droit sur le formulaire, puis en cliquant sur Mode Création . Vous pourrez dès lors utiliser les outils figurant dans le groupe Contrôles, sous l'onglet Création.
  • 68. Modèle relationnel et MS Access 2007 P a g e | 68 2e année IDA 5. Travaux pratiques sur les formulaires TP N°1 : Création d’un formulaire simple à l’aide de l’assistant Présentation MS-Access nous offre des assistants afin de nous alléger considérablement le travail d'élaboration des différents composants d'une BD. Access contient plusieurs types d'assistants:  Assistant de table  Assistant de requête  Assistant de formulaire  Assistant de rapport Ces assistants existent en différentes versions, en fonction du composant qu'on veut créer. Il existe par exemple pour les formulaires un "Assistant de Formulaire Colonne Simple", un "Assistant de Formulaire Tabulaire", un "Assistant de Formulaire Graphique", mais également par exemple un "Assistant de Bouton de commande", qui est à notre disposition sur n'importe quel type de formulaire. Beaucoup de tâches ayant atteint un certain degré de complexité peuvent donc être facilitées par l'utilisation d'un assistant. Que fait l'assistant ? Un assistant pose un certain nombre de questions en relation avec le composant qu'on veut créer. Basé sur les réponses, l'assistant crée le composant pour nous. Pour cet exercice nous allons nous baser sur la table CHAMBRES. Nous utilisons l' « Assistant de Formulaire Colonne Simple», afin de créer le formulaire suivant : Nom des champs Type de données Description N°Chambre Numérique Numéro de la chambre NumEtage Numérique Numéro de l’étage TypeChambre Texte [15] Simple /Double Standing Texte [15] Standard / Luxe /Grand luxe Prix Numérique Prix de la chambre par nuit en Fr
  • 69. Modèle relationnel et MS Access 2007 P a g e | 69 2e année IDA Ce formulaire contient des contrôles, comme par exemple les zones de texte ou les étiquettes. L'apparence ainsi que le comportement de ces contrôles sont déterminés par leurs propriétés. Une zone de texte possède par exemple une propriété « Couleur de fond », qui détermine la couleur d'arrière-plan de la zone. Nous allons analyser les propriétés plus en détail lors du prochain TP, pour l'instant, retenez uniquement la notion. Les modes d'affichage d'un formulaire En ce qui concerne les formulaires, il y a 3 modes: Mode Actions Création Définir des nouveaux formulaires ou modifier des formulaires existants; Placer les contrôles sur le formulaire et définir les propriétés des contrôles et du formulaire. Formulaire Entrer, consulter et modifier les données. Ce mode affiche un formulaire comme il a été défini en mode création. Feuille de Données Entrer, consulter et modifier les données. Ce mode affiche une "Feuille de Données" similaire à celles qui représentent directement les données des tables et des requêtes. Remarque: La création d'un formulaire à l'aide d'un assistant nous évite de créer un formulaire en mode création. Un formulaire créé par un assistant peut bien sûr être utilisé en mode formulaire, ou mode Feuille de Données, et peut même être modifié en mode création. Utilisation du formulaire Nous utiliserons en général le mode Formulaire ou le mode Feuille de Données pour entrer, consulter et modifier des données. ACTIVITÉS 1. Ouvrez la Base de Données GestionHotel.Accdb 2. Créez un formulaire du type "Colonne Simple", basé sur la table chambres en utilisant l'assistant correspondant. Voici les indications nécessaires pour répondre aux questions de l'assistant:  Tous les champs de la table apparaissent dans leur ordre original.  Utilisez le style "Promenade" ou ‘’Solstice’’ (par exemples).  Le titre du formulaire sera "Les chambres de l’hôtel".  Le formulaire sera tout de suite ouvert en mode "Formulaire" (Affichage des données). 3. Sauvegardez le nouveau formulaire sous le nom FChambres. 4. Affichez le formulaire FChambres en mode "Création".
  • 70. Modèle relationnel et MS Access 2007 P a g e | 70 2e année IDA 5. Affichez le formulaire en mode "Feuille de Données". 6. Affichez le formulaire en mode "Formulaire".