Cours Access
Cours Access
Cours Access
Cours
MICROSOFT ACCES
1
Chapitre I - Généralités
I- Base de données
Une Base de Données (BD) est un ensemble de données organisées et structurées par rapport à
un sujet précis, servant pour les besoins d'une ou plusieurs applications, interrogeables et
modifiables par un groupe d'utilisateurs travaillant en parallèle. Physiquement, une base de données
est constituée d’un ou plusieurs fichiers de données.
Un Système de Gestion de Bases de Données (SGBD) est un logiciel qui prend en charge la
structuration, le stockage, la mise à jour et la maintenance des données. On peut dire qu’un SGBD
est une interface entre la base de données et les utilisateurs ou leurs programmes. Les SGBD
prenant en charge les bases de données relationnelles sont connus sous le nom de SGBDR (Systèmes
de Gestion de Bases de Données Relationnels).
Voici quelques exemples de SGBDR : Microsoft Access, Microsoft SQL Server, Oracle, MySQL, etc.
Microsoft Access est un SGBDR faisant partie de la suite Microsoft Office. Il est donc utilisé pour la
création de bases de données et leur gestion (saisie, modification, interrogation, affichage et
impression de données). Facile et très intuitif dans son utilisation MS Access permet aux non initiés
se familiariser rapidement avec la manipulation de bases de données.
Mais pour des développements importants et complexes il ne peut pas rivaliser avec des SGBD
leaders du marché comme Oracle ou Ms SQL Server. Ses points faibles résident dans la dégradation
de la performance enregistrée:
Les notions abordées sont valables pour les différentes versions d’Access. Néanmoins la plupart des
démarches sont présentées en référant aux versions 2002 et 2007. A noter aussi que les aspects
théoriques des bases de données relationnelles restent valables pour les autres systèmes de gestion
de base de données.
2
Chapitre II - Composants de Microsoft Access
Tables
Formulaires
Requêtes
Etats
Macros
Pages
Modules
I. Tables
Une base de données dans le sens de Microsoft Access est constituée d’un ou plusieurs tableaux
de données connus sous le nom de tables. Dans une table les données sont organisées sous forme
de lignes et de colonnes. Les lignes sont appelées enregistrements et les colonnes sont appelées
champs (voir Fig.1). Une base de données de ce type est connue sous le nom de base de données
relationnelle (BDR).
Une donnée est un élément d’information que vous voulez stocker pour pouvoir le consulter à tout
moment. Dans l’environnement Microsoft Access, il peut aussi bien être du texte que des nombres,
des dates ou des images.
Fig.1
3
Dans la table Fournisseurs (voir Fig.1), un enregistrement contient toutes les informations sur un
fournisseur donné. Par exemple l’enregistrement nr 16 indique le fournisseur ayant comme numéro
d’identification 16, comme nom de société Bigfoot Breweries, un contact ayant comme nom Cheryl
Saylor et comme fonction Responsable de zone. Un champ contient le même type d’informations.
A titre d’exemple le champ Contact contient les noms des contacts des différents fournisseurs.
Physiquement, une base de données MS Access2007 est un fichier ayant le suffixe accdb.
Exemple « Personnel.accdb » est une base de données ayant le nom Personnel. Une base de données
Access 2007 n’est pas compatible avec les versions 2002 ou 2003 de MS Access. Plus tard vous verrez
d’autres fichiers (ayant un autre suffixe) rattachés à une base de données Access 2007 notamment
ACCDE et ACCDR.
i) Démarrer Ms Access 2007 et cliquer sur le bouton Office (voir Fig.2). Ce bouton sert à ouvrir,
sauvegarder, afficher, imprimer et à connaître et/ou utiliser d’autres fonctionnalités propres à MS
Access 2007.
Fig.2
ii) Choisir Ouvrir. Dans la fenêtre Ouvrir choisir comme type de fichier Microsoft Office Access.
Ce choix permet d’ouvrir des fichiers format Access 2002 ou 2003 ainsi que des bases de données
2007.
iii) Chercher la base de données Association1 et valider en cliquant sur le bouton Ouvrir.
4
iv) Un écran ressemblant à celui de Fig.3 s’affiche. Cette fenêtre contient un volet de navigation
qui permet l’affichage des différents objets existants dans la base de données.
Fig.3
Le mode Feuille de données permet l’affichage du contenu d’une table sous la forme d’un tableau.
Les lignes sont appelées enregistrements et les colonnes sont appelés champs. Pour passer dans le
mode Feuille de données il suffit de double-cliquer sur le nom de la table ou exécuter la commande
Ouvrir dans le menu contextuel.
5
Fig.4
Démarche à suivre :
i) Se positionner sur une valeur du champ selon lequel on veut faire le tri
ii) Cliquer sur le bouton pour un tri croissant ou sur le bouton pour un tri décroissant.
Annuler le tri en cliquant sur le bouton . Dans l’environnement Access 2007 ces boutons
sont disponibles sur la barre d’outils correspondant au menu Accueil.
Démarche à suivre :
i) Se positionner sur une valeur du champ sur lequel on veut faire la recherche,
ii) Cliquer sur le bouton ou exécuter la commande Rechercher. Il sera affiché la fenêtre Fig.5
iii) Indiquer la donnée à rechercher en précisant le champ sur lequel s’effectue la recherche, le
sens de la recherche (sur toute la colonne, vers le haut ou vers le bas en fonction de la position du
curseur), la position de la donnée recherchée en fonction de la valeur du champ (toute la valeur, au
début de la valeur du champ ou n’importe ou dans cette valeur). Eventuellement remplacer la
donnée trouvée avec une autre en activant l’onglet Remplacer dans la boite de dialogue Fig.5.
6
Fig.5
c) Filtres
On appelle filtrage une opération de sélection d’enregistrements selon des critères. L’ensemble de
critères utilisés dans la sélection constitue un filtre. En appliquant un filtre ne sont affichés que les
enregistrements satisfaisant aux critères.
Dans l’environnement Ms Access 2007 les commandes de filtrage sont regroupées dans le panneau
suivant :
Fig.6
Ce panneau est accessible en étant dans le mode Feuille de données et le volet Accueil.
Dans Fig.6 Sélection est l’équivalent de Filtrer par sélection et Option avancées comprend :
7
Fig.7
Exemple : Sélectionner les adhérents ayant comme spécialité Trains. La table Ami sera affichée
dans l’écran suivant :
Fig.8
Méthode 1
Dans ce tableau à chaque nom de colonne est associée une liste déroulante proposant des choix de
filtrage.
8
Se positionner quelque part sur la colonne Spécialité et dérouler la liste associée à ce champ
(voir Fig.9).
Fig.9
Méthode 2
(Fig.10)
9
Choisir « Commence par… »
Fig.11
Fig.12
Pour annuler le filtre dérouler la liste rattachée au champ Nom et exécuter la commande
Supprimer le filtre dans Nom.
Le tableau Fig.12 peut faire l’objet d’un nouveau filtrage. Par exemple : Afficher les
adhérents dont le nom commence par « A » ayant comme spécialité Voitures.
Fig.13
10
iii) Faire glisser le champ sur lequel on applique un critère dans la grille (ou double- cliquer sur le
nom du champ dans la fenêtre Ami ou le sélectionner dans la liste déroulée une fois cliqué sur l’en -
tête d’une colonne dans la grille),
iv) Définir le critère pour un ou plusieurs champs dans la rubrique horizontale Critères.
v) Pour afficher les adhérents de genre masculin ayant le jour anniversaire le mois d’août et
payant une cotisation de plus de 3000 la grille devient :
Fig.14
Remarque
Un critère est défini avec une formule (ou expression) Ms Access. Une formule Access comprend
plusieurs éléments, utilisés indépendamment ou avec d’autres, pour générer un résultat. Ces
éléments peuvent être des noms de champs, des opérateurs, des fonctions, des constantes ou des
variables.
Access dispose d’un générateur d’expression qui aide à la création de formules élaborés. Pour
comprendre son utilisation créons un filtre pour afficher les adhérents dont le nom commence par la
lettre « A ». Pour cela :
ii) Cliquer sur une cellule vide dans la grille de définition de critères. Afficher le menu contextuel
(click droit),
11
Fig.15
iii) Cliquer sur Créer. La fenêtre Générateur d’expression s’affiche (voir Fig.16).
Fig.16
Dans le panneau de gauche sont affichés les objets existants dans la base de données ainsi que les
fonctions, les constantes et les opérateurs reconnus par Ms Access.
12
iv) Double-cliquer sur la fonction Gauche$ (voir Fig.17).
Fig.17
Cette fonction renvoie les n premiers caractères comptés de gauche à droite de la chaine de
caractères « stringexpr ».
v) Remplacer « stringexpr » par le champ Nom. Pour cela sélectionner la table Ami dans Tables.
Double-cliquer sur le champ Nom. Remplacer n par 1.
Fig.18
vi) Compléter la formule en cliquant sur l’opérateur « = » et ensuite en entrant comme valeur «A».
13
Fig.19
vii) Valider en cliquant sur Ok. Dans la grille sur la colonne du critère sélectionner Nom.
Fig.20
viii) Exécuter la commande Appliquer le filtre. Vous devez obtenir le résultat suivant :
Fig.21
14
Pour appliquer un filtre formulaire procéder comme il suit :
ii) Exécuter la commande Filtre formulaire. Il s’affichera l’écran ci-dessous (fig.22). Cet écran
contient un formulaire. Notons que par formulaire on entend un mode d’affichage de données plus
agréable et plus optimal. Nous verrons par la suite (dans la section Formulaire) les différents types de
formulaire.
Fig.22
iii) Illustrons l’utilisation de ce type de filtre par l’exemple suivant : Sélectionner les adhérents du
genre masculin ayant comme centre d’intérêt Avions ou Figurines.
Pour cela dans la première cellule vide du champ Genre on sélectionne (ou on entre) « M » et dans la
première cellule vide du champ spécialité on entre « Avions » ou « Figurines ». Ici « ou » joue le rôle
d’opérateur logique.
Fig.23
15
I.3 Mise à jour du contenu d’une table
La mise à jour du contenu d’une table consiste dans des opérations de modification, de suppression
ou d’ajout de contenu.
Deux façons pour faire la saisie : directement dans la table (mode Feuille de données) ou par
l’intermédiaire d’un écran de saisie appelé Formulaire.
Fig.24
iii) Remplir la ligne vide (Nouvel enregistrement vide) avec les données correspondant à un nouvel
enregistrement (voir Fig.25).
Fig.25
16
b) Supprimer un enregistrement
Fig.26
c) Modifier un enregistrement
iii) Effectuer la modification et valider (appuyer sur la touche Entrée ou cliquer n’importe où sur la
feuille). La modification devient effective étant directement enregistrée dans la base de données.
17
I.4 Création d’une nouvelle base de données
Fig.27
Fig.28
Cette barre horizontale (voir fig.28) propose des groupes de boutons arrangés dans des onglets. Les
commandes nécessaires pour créer les différents objets d’une base de données sont regroupés dans
le menu Créer. On a des commandes pour la création d’une table, d’un formulaire, d’un état ou
d’une requête (voir fig.29).
Fig.29
18
Access 2007 propose donc 4 modes différents pour la création d’une table : Création de table,
Listes SharePoint, Modèles de tables et Table. A cela s’ajoute la possibilité d’importer ou
d’attacher une table à partir d’une source de données externe.
i) Le mode Création :
C’est la méthode la plus utilisée. Cette méthode permet de définir le nom et la structure de chaque
champ de la table.
Démarche à suivre :
Fig.30
Entrer le nom du champ et attribuer à chaque champ le type de données approprié (voir
fig.30). Ms Access propose les types de données suivants :
19
ii) Le mode Feuille de données
Ce mode permet de saisir directement des informations dans la table sans se préoccuper du nom ou
du format des champs.
20
Démarche à suivre :
Fig.31
Ms Access donne la possibilité d’importer ou de lier une source de données externe à partir de :
Dans le menu Données externes cliquer sur Access. Il sera affiché l’écran Fig.32.
21
Fig.32
Deux choix sont possibles : importer un objet (table, formulaire, requête, état, macro ou module) ou
créer une table attachée (Access créera une table qui conservera un lien avec la source de données.
Les données ne sont pas enregistrées dans la base de données active. Toutefois une modification
effectuée dans la source sera répercutée dans la base de données qui reçoit et inversement.).
Fig.33
22
Choisir l’objet à importer (dans notre exemple la table Ami). Il est possible d’importer la
structure de la table uniquement ou les données et la structure de la table.
Valider. La table Ami sera placée dans votre base de données active.
Fig.34
Trois choix sont possibles : importer les données dans une nouvelle table, ajouter les données à une
table existante ou créer une table attachée. Choisissons la première option et le fichier x.xls.
23
Fig.35
Dans l’écran qui suit cocher « La première ligne contient les en-têtes de colonnes ». Cliquer
sur le bouton Suivant.
L’assistant d’importation affiche l’écran suivant :
Fig.36
24
Dans cette fenêtre l’assistant propose pour chaque colonne un type de données. Vérifier les types
de données proposés et éventuellement opérer des modifications. Cliquer sur Suivant.
L’écran suivant demande la définition d’une clé primaire (le concept sera expliqué plus bas).
Opter pour « Pas de clé primaire ». Cliquer sur Suivant.
Dans l’écran qui suit affecter un nom à la table (Commandes par exemples). Cliquer sur le
bouton Terminer. La table Commandes sera placée parmi les objets de la base de données
active.
i) Clé primaire
On entend par clé primaire d’une table un ou plusieurs champs dont les valeurs identifient d’une
manière unique chaque enregistrement.
Exemples
La table Ami de la base de données Association a comme clé primaire le champ ID.
Effectivement toutes les valeurs du champ ID sont distinctes. Donc chaque valeur détermine
d’une manière précise chaque enregistrement (chaque adhérent a un numéro
d’identification unique ; on ne peut pas avoir deux ou plusieurs adhérents avec un même
numéro d’identification).
La table Catégorie de la base de données Gestion (voir un extrait dans la fig.37) a comme clé
primaire le champ Code Catégorie. Il est évident que chaque catégorie est identifiée par son
code et que tous les codes sont différents.
Fig.37
Maintenant analysons la table Lignes_cmd de la base de données Gestion dont vous avez un extrait
dans l’écran ci-dessous.
25
Fig.38
Il est impossible, dans ce cas, définir une clé primaire formée d’un seul champ. Quantité ne peut pas
remplir le rôle de clé primaire. Chacun de ces champs peut avoir des valeurs identiques pour
plusieurs enregistrements.
Notons que les valeurs identiques prises par un champ sont appelés doublons. Par conséquent
on ne peut pas avoir des doublons dans une clé primaire.
Les valeurs du champ N°commande se répètent aussi. Une commande (celle qui a le numéro 1 par
exemple) peut concerner plusieurs produits. Le champ Réf produit peut lui aussi avoir des valeurs
identiques, un produit pouvant concerner plusieurs commandes (le produit ayant la référence R1
concerne plusieurs commandes par exemple).
Dans ce cas la clé primaire est composée de deux champs : N°commande et Réf produit.
Effectivement, on ne peut pas avoir deux enregistrements ayant et le même numéro de commande
et la même référence de produit.
26
ii) Relations
Une relation Ms Access est un lien qui s’établit entre deux ensembles d’enregistrements (tables ou
requêtes) à l’aide d’un champ commun. Deux types de relations sont supportés par Ms Access (nous
verrons lors de l’étude du modèle relationnel qu’il y en a trois types de relations) :
Exemples
On peut définir une relation un à plusieurs entre la table Catégories et la table Produits (dans la
base de données Gestion). En effet, à chaque catégorie (donc à chaque enregistrement de la table
Catégorie) on peut faire correspondre plusieurs produits (plusieurs enregistrements de la table
Produits). Cette relation n’est qu’une traduction en plan formel d’une règle de gestion simple : toute
catégorie de produits peut contenir un ou plusieurs produits (voir aucun). Code Catégorie est le
champ commun de ces deux tables.
Considérons la base de données Mapamond où sont stockées des données sur les différents pays du
monde. Les tables Pays (Nom, Superficie, Nombre d’habitants, Nom Capitale) et Capitales (Nom
Capitale, Nombre d’habitants) sont reliées par une relation du type un à un. Un pays ne peut avoir
qu’une seule capitale (donc à un enregistrement de la première table on ne peut faire correspondre
qu’un seul enregistrement de la 2ème) et une capitale ne peut correspondre qu’à un seul pays (donc
à chaque enregistrement de la 2ème table on ne peut faire correspondre qu’un seul de la première).
Dans ce cas Nom Capitale est le champ commun.
Créer, dans chaque table, la clé primaire. La création d’une relation se base sur l’existence
d’une clé primaire.
Choisir sur le ruban Outils de base de données et ensuite cliquer sur le bouton Relations. On
aura l’écran suivant :
27
Fig. 39
Dans la fenêtre Relations choisir dans le menu contextuel (click droit) Afficher les tables.
Sélectionner toutes les tables de la base de données et valider en cliquant sur le bouton
Ajouter. Pour la base de données Gestion on obtient l’écran suivant :
Fig.40
Identifier deux tables censées d’être reliées par une relation (les tables doivent avoir un
champ en commun). Prenons à titre d’exemple les tables Catégories et Produits. Faire glisser
le champ commun d’une table sur le champ commun existant dans l’autre table. Dans
notre exemple faire glisser le champ Code Catégorie de la table Catégorie sur le champ
Code Catégorie de la table Produits. La fenêtre Modifier des relations s’affiche (Fig.41).
28
Fig.41
Fig.42
29
II. Requêtes
Une Requête est une interrogation d’une ou plusieurs tables d’une base de données. Par excès de
langage Access nomme requête un objet contenant les instructions d’interrogation de la base ainsi
que leurs résultats. Les résultats peuvent concerner l’affichage (feuille de données) ou la
manipulation (ajout, modification ou suppression) de données.
L’interrogation utilise un langage générique connu sous le nom SQL (Structured Query Language)
propre aux bases de données relationnelles. Access permet l’utilisation de ce langage dans un
format visuel simple et intuitif pour les non – initiés dans les bases de données (assistant de
requêtes).
Sélection,
Insertion, suppression et mise à jour
Création
La requête de sélection est une interrogation de la base de données et l’affichage des résultats sous
la forme d’un tableau de données.
Cette requête permet la sélection d’un ou plusieurs champs de la table. Prenons à titre d’exemple
la requête suivante :
Afficher le nom, le prénom et la date de naissance des membres de l’association. Les informations
demandées sont stockées dans la table Ami.
Fig.43
30
Cet écran (voir aussi Fig.13) contient deux parties :
Placer le curseur quelque part sur la partie supérieure et afficher le menu contextuel. Dans ce
menu choisir Afficher la table.
Dans la fenêtre Afficher la table choisir la table Ami. Valider en cliquant sur le bouton Ajouter et
ensuite fermer la fenêtre. Il sera affiché l’écran Fig.44.
Fig.44
Double cliquer sur les champs Nom, Prénom, Naissance. Ces champs apparaitront dans le
tableau de paramétrage de la requête (voir Fig.45).
31
Fig.45
Fig. 46
Cliquer sur le mode « Mode SQL ». Une feuille blanche s’affiche présentant la requête dans le
langage original SQL. Ce qui est affiché : SELECT Ami.Nom, Ami.Prenom, Ami.Naissance
FROM Ami; signifie littéralement : Sélectionnez les champs Nom, Prénom et Naissance de la
table Ami.
32
Remarque. Notons qu’une requête est présentée sous au moins trois formes :
Mode création destiné à réaliser une requête à l’aide d’un outil graphique,
Mode Feuille de données destiné à présenter les résultats,
Mode SQL permettant d’élaborer une requête en langage SQL.
L’accès à un de ces trois modes se fait en cliquant sur la flèche placée en dessous de l’icône Affichage
du ruban (Fig.46).
Une requête de filtrage sélectionne les enregistrements satisfaisant à des critères. Les tableaux
suivants contiennent les opérateurs utilisables pour définir un critère.
Opérateurs de comparaison
33
Opérateurs arithmétiques
Opérateurs logiques
Un critère est défini à l’aide d’une formule Ms Access (voir la section Tri/Filtre avancé). Une formule
se crée en utilisant des opérateurs, des noms d’objets existants dans la base (champ, table, requête,
etc..) ou des fonctions.
Exemples
i) Afficher le nom, le prénom et la date de naissance des membres de l’association ayant comme
centre d’intérêt « Avions ». Les informations demandées sont stockées dans la table Ami.
Pour cela :
Ouvrir la base de données Association et exécuter la commande Créer une nouvelle requête
(requête dans le mode création). Ajouter la table Ami. Vous devez obtenir l’écran Fig.44.
Faire glisser dans la grille les champs Nom, Prénom, Naissance, Spécialité (Remarque : nous
avons préférés attribuer aux champs des noms ne contenant pas des caractères accentués.
34
En effet certaines manipulations effectuées sur des objets ayant des noms contenant des
tels caractères conduisent à des résultats erronés !).
Fig.45
Exécuter la requête.
ii) Afficher le nom, le prénom et la date de naissance des membres de l’association ayant comme
centre d’intérêt « Avions » dans l’ordre alphabétique de leur nom. Les informations demandées sont
stockées dans la table Ami.
Fig.46
35
iii) Afficher les membres de l’association ayant comme centre d’intérêt « Avions » et dont le nom
commence par la lettre « A ». Les informations demandées sont stockées dans la table Ami.
Considérons la requête suivante : Quels sont les différents centres d’intérêts choisis par les
membres de l’association ?
Passer dans le mode création et dans la grille sélectionner la première colonne.
Dans le menu Outils de requête/Créer cliquer sur le bouton Feuille des propriétés (voir Fig.47).
Fig.47
Dans la fenêtre Feuille des propriétés affecté pour Valeurs distinctes la valeur« Oui »
Dans la première colonne de la grille sélectionner le champ SPECIALITE,
Exécuter. Access affiche les valeurs distinctes existantes dans le champ SPECIALITE (voir
Fig.48).
Fig.48
36
iv) Requêtes basées sur l’utilisation d’une fonction Access.
Les critères sont définis en utilisant des fonctions Access. Voici un tableau récapitulatif concernant
quelques fonctions Access :
37
38
39
v) Requêtes paramétrées.
Une requête paramétrée intègre un ou plusieurs paramètres fournis par l’utilisateur lors de son
lancement.
Ouvrir la base de données Association et exécuter la commande Créer une nouvelle requête
(requête dans le mode création). Ajouter la table Ami.
Faire glisser dans la grille les champs ID et Nom,
Dans la rubrique Nom et la ligne Critères entrer le texte « [Indiquer un nom pour en
connaitre le code] »,
Basculer dans le mode « Feuille de données ». Une boite de dialogue s’ouvre en contenant
la question posée.
Entrer le nom. La requête renvoie le code correspondant au nom saisi.
40
vi) Requêtes de regroupement
Pour réaliser des synthèses ou pour faire des calculs, il est nécessaire de regrouper des données.
Dans ce cas on utilise des critères de regroupement.
Pour cela :
Ouvrir la base de données Association et exécuter la commande Créer une nouvelle requête
(requête dans le mode création). Ajouter la table Ami.
Faire glisser dans la grille les champs ID et SPECIALITE,
Activer la commande Totaux ( ). Une ligne supplémentaire nommée Opération s’insère
dans la grille :
Fig.49
L’opération Regroupement insérée sur la colonne SPECIALITE regroupe les valeurs de ce champ en 5
groupes différents : les enregistrements pour lesquels le champ SPECIALITE a comme valeur Avions,
les enregistrements pour lesquels le champ SPECIALITE a comme valeur Bateaux, ensuite Trains,
Voitures et Figurines. L’opération Compte calcule le nombre d’ID différents existant dans chaque
groupe d’enregistrements autrement dit le nombre d’enregistrements de chaque groupe (voir
Fig.50).
Fig.50
Pour une meilleure lisibilité de la synthèse, remplacer CompteDeID (proposé par défaut) en entrant
un nom de rubrique personnalisé (voir Fig.51).
41
Fig.51
Fig.52
42