Vous êtes sur la page 1sur 33

TP informatique (access)

Comment créer une base de données avec Access 2007 (qui contient deux tables Client-Commande)

L'objectif de créer une base de données avec "Microsoft Access" est de pouvoir gérer un nombre
important de données et de ne pas répéter inutilement des informations, mais dans les tableaux Excel
par exemple, on doit afficher à chaque fois toutes les informations du Client pour chaque Commande
passée par ce client, contrairement à une base de données. Avec Access, on peut répartir les données
dans différentes tables comme une table Client et une table Commande ainsi les deux tables seront
relier par une relation, du coup nous saisirons une seule fois les informations du Client dont lesquelles
nous retrouverons les commandes correspondantes dans la table Commande.

Pour commencer, lorsqu'on démarre Access, on choisit nouvelle "Base de données vide" .

Une boite de dialogue s'affiche, on donne un nom à notre Base de données "TPINFORMATIQUE3" en
choisissant l'emplacement de l'enregistrement, puis on clique sur créer.

1
Les tables et les relations
Par défaut, Access nous bascule sur le mode d'affichage "mode feuille de données" d'une table à
créer, on change le mode d'affichage en cliquant sur l'onglet "affichage" puis on choisit "mode
création".

Une boite de dialogue s'affiche pour enregistrer la table, on donne un nom à cette table "Client" et
on clique sur "ok".

2
On remarque que par défaut Access définit le premier champ comme une clé primaire qui est de type
"numéroAuto", on nomme le premier champ par "num_client" et on garde le type proposé pour
empêcher de donner le même numéro à deux clients (ce numéro va être attribué par Access).

….

3
Pour ce champ "num_client", on ne fait aucune modification dans la zone "Propriétés du champ".

On passe à un nouveau champ à créer, qui est "civilité_client" et comme on a trois civilité possible,
on choisit le type "Assistant Liste de choix", puis on choisit "Je taperai les valeurs souhaitées" dans la
boite de dialogue qui s'affiche, ensuite on clique sur suivant.

4
Le nombre de colonnes est "1" et la liste contient trois éléments qui sont "M." (c'est l'abréviation de
monsieur), "Mme." (c'est l'abréviation de madame), et "Mlle." ( qui est l'abréviation de
mademoiselle), puis on clique sur "Terminer".

Maintenant on définit un nouveau champ de type booléen qui nous permutera de connaitre si ce client
est un commerçant ou non, donc le nom du champ sera "activité_client" et le type du champ
"OUI/NON".

5
On passe de nouveau à un autre champ, qu'on lui attribue "nom_client" comme nom, qui est de type
"Texte", dans les propriétés on limite sa taille à 20 caractères (il vaut mieux ne pas garder la taille du
champ proposée par défaut et qui est de 255 caractères, et cela pour ne pas occuper un espace
mémoire important si notre base de données est volumineuse, et de ne pas ralentir l'exécution de
notre base de données). Il est important aussi d'homogénéiser les saisies, par exemple on écrit tout le
nom en majuscule, pour cela il suffit de taper ">" dans la propriété format.

6
De la même façon on rajoute le champ "prénom_client" et on limite sa taille à 30 caractères, mais pour
pouvoir écrire juste la première lettre du prénom en majuscule et le reste en minuscule, nous ne
pouvons pas utiliser la propriété format mais nous utilisons la propriété "masque de saisie" ou on doit
taper ">?<?????????????????????????????" (29 ? à la fin).

7
Pour le champ qu'on nommera "date_naissance_client" est de type "Date/heure", ce champ est de
Format "Date, abrégé", et pour limité la taille de ce champ on lui attribue deux chiffres pour le jour,
deux chiffres pour le mois et quatre chiffre pour l'année, on utilise la propriété "Masque de saisie" et
on met "00/00/0000", on utilise cette dernière propriété qui nous empêche de dépasser au total six
caractères et qui nous indique qu'on doit taper que des chiffres.

8
Un dernier champ à créer dans cette table, qui est le champ "téléphone_client" et qui est de type
numérique et de taille "Entier long".

9
On enregistre avec "Ctrl+s" et on passe en "Mode feuille de données" pour pouvoir remplir les données
de cette table.

On remplit le tableau comme suit:

10
On ferme cette table Client en cliquant sur la petite croix sans enregistrer, car Access enregistre en
temps réel les données saisies (pour vérifier qu'il a réellement enregistré, on peut réouvrir la même
table en cliquant deux fois sur la table Client ensuite on referme).

De la même façon, on passe maintenant à la création de la nouvelle table "Commande" en cliquant sur
l'onglet "créer" puis table ensuite les mêmes étapes précédentes....

11
les champs de cette nouvelle table sont définis comme suit:

Le premier champ "num_commande" qui est la clé primaire de cette nouvelle table. Le deuxième
champ "date_commande" qui est de type Date/heure, et de format date, réduit. Le champ suivant est
"client_commande" qui représente le numéro du client qui a passé la commande (ce champ doit être
de même type que la clé primaire de la première table, donc c'est un champ qui va établir le lien avec
la table "Client").

Enfin le dernier champ est nommé "total_commande", il est de type numérique mais de Format "Réel
simple" et non pas entier long.

12
Enfin on enregistre toujours avec "Ctrl+s" et avant de remplir les données de cette deuxième table, il
vaut mieux créer d'abord la relation entre les deux tables pour éviter les erreurs de type par exemple :
on attribue un numéro de client qui n'existe pas déjà dans notre base de données.

Pour créer une telle relation il suffit de cliquer sur l'onglet "Outils de base de données" puis sur
"Relations".

Une boite de dialogue s'affiche, on sélectionne alors les deux tables "Client" et "Commande", puis on
clique sur le bouton "Ajouter".

13
On clique sur la clé de la table "Client" qui est le champ "id_client" et on la glisse dans la table
Commande, ce qui conduit l'affichage d'une boite de dialogue, ensuite on coche sur les trois cases, la
première c'est pour ne pas avoir une commande d'un client qui n'existe pas, la deuxième et la troisième
servent par exemple à effectuer des modifications sur la table Commande lorsqu'on effectue des
modifications sur la table Client :

On confirme la création de la relation avec cette flèche qui relie les deux tables.

14
On remplit la table "Commande" avec les données suivants après avoir changé le mode d'affichage:

15
Une fois que la relation est établie, on remarque bien l'apparition du symbole "+" dans la première
colonne de la table "Client", en appuyant sur ce dernier, on peut retrouver toutes les commandes
correspondantes à chaque client.

16
Les requêtes
Les requêtes interrogent les informations contenues dans les champs d'une ou plusieurs tables,
comme elles nous permettent de rajouter des options (par exemple de synthèse), dans notre TP on va
créer des requêtes qui nous affichent les informations les plus importantes sur le client et ses
commandes et aussi qui nous donnent le nombre total de ses commandes, le montant total des
commandes et ne pas afficher les clients qui n'ont passé aucune commande...

Pour commencer, on clique sur l'onglet "Créer", ensuite "Assistant requête", on choisit "Assistant
Requête simple" et enfin on clique sur le bouton "Ok".

Dans la fenêtre qui suit, on sélection pour chaque table les champs qu'on souhaite afficher (pour la
table Client on sélectionne tous les champs en cliquant sur le bouton >> et pour la table commande on
sélectionne les champs "num_commande" et "total_commande" puis on clique sur "Suivant".

17
Sur la fenêtre suivant, on choisit "Synthèse" puis clique sur "Option de synthèse" et "suivant".

18
Enfin on choisit que Access nous donne La somme de "total_commande" et aussi on accepte le
comptage des enregistrements (ce qui nous donne le nombre total des commandes passées par le
client).

On accepte l'option par défaut "Date/Heure unique" et en cliquant sur "Suivant" pour donner un nom
à notre requête qu'on vient de créer "Commandes_clients" et on finit par "Terminer".

19
On obtient comme résultat l'affichage de la requête "Commandes_clients", mais avec des champs
qu'on n’en a pas forcément besoin, par exemple le champ "Premier De num_commande".

On change le mode d'affichage (dans l'onglet Accueil on clique sur Affiche puis sur Mode Création), on
décoche les champs qu'on ne souhaite pas afficher dans le mode d'affichage qui figure en bas de la
page (par exemple, on décoche les champs activité_client, date_naissance_client, telephone_client, et
Premier De num_commande) et on exécute avec le bouton Exécuter.

20
Le résultat des procédures précédentes est un tableau qui est moins chargé et qui est le suivant:

Si on veut faire une synthèse qui trie par exemple les clients selon le total de leurs commandes, il suffit
de revenir sur le Mode Création et dans le champ et dans la zone Tri, on sélectionne "Décroissant", on
exécute de nouveau pour retrouver la liste triée des clients.

21
Un autre exemple de synthèse est de considérer que les clients fidèles (qui ont passé plus de trois
commandes), pour cela on revient sur Mode Création et dans le champ Compte De Commande et dans
la zone Critères on tape ">2" et on finit par exécuter pour voir le résultat de cette synthèse.

Résultat:

Et si on souhaite afficher les informations d'un client en tapant son nom ( et non pas le retrouver dans
une liste qui peut être très longue), on revient sur Mode Création, on supprime le critère précédent
(>2), on re-coche les champs date_naissance_client et telephone_client et on remplit la zone Critères
du champ nom_client par "[Donner le Nom du client?]".

22
Pour vérifier, on exécute et on donne un nom qui existe dans notre liste.

Un dernier exemple d'une requête qui affiche que les clients actifs (c.-à-d. qui ont passé au moins une
commande), pour le faire, dans l'onglet Créer on clique sur le bouton Assistant Requête et on choisit
Assistant requête de non-correspondance.

Et dans la fenêtre qui s'affiche par la suite on confirme qu'il s'agit de la table "Client" en appuyant sur
suivant et on confirme une autre fois que la correspondance doit se faire avec la table Commande (c.-
à-.d. il cherche les clients qui n'ont pas de relation avec la table Commande).

23
On laisse toujours le choix par défaut qui confirme que la clé primaire de la première table Client doit
être trouvée dans la seconde table Commande (autrement dit, si un identifiant d'un client "client_id"
ne se trouve pas dans le champ "client_commande" cela signifie que cet enregistrement est orphelin).

Dans la boite de dialogue qui s'affiche par la suite, on choisit l'affichage de tous les champs en cliquant
sur ">>" ensuite sur "Suivant".

24
Enfin, on donne un nom à cette requête "clients_orphelins", et le résultat s'affiche juste après
l'enregistrement.

On peut vérifier facilement que ces clients n'ont jamais passé commande (je préfère ne pas valider
pour ne pas perdre ces enregistrements qui vont être utile par la suite).

25
Pour supprimer ces clients de notre base de donneés, on revient sur Affichage , Mode Création et on
clique sur le bouton Suppression et on exécute.

Les formulaires
Les formulaires dans Access sont des objets par lesquels les utilisateurs peuvent ajouter, modifier ou afficher les données
stockées dans la base de données, et aussi on peut modifier les formats des champs pour avoir une présentation plus facile
à lire.

Comme pour les tables et les requêtes, pour créer un Formulaire (qui concerne la table Commande on prés-sélectionne la
table Commande juste en appuyant sur cette dernière), il suffit d'appuyer sur le bouton Formulaire dans l'onglet Créer.

Une fois que le formulaire est créé, on remarque qu'il y a une petite barre de navigation qui permet de passer d'une
commande à une autre.

26
Mais ce formulaire donne juste des informations sur les commandes, par exemple on ne voit pas le
nom du client qui a passé cette commande. On souhaite avoir une vue qui nous donne des informations
à la fois sur la commande mais aussi des données sur le client concerné par cette dernière, donc on
aura besoin de créer un formulaire avec un sous-formulaire, pour le faire, il a fallu prés-sélectionner
la table Client avant la création du formulaire (puisque on a déjà définit le lien entre les deux table par
la relation créée dans la deuxième partie).

27
Et à partir de ce formulaire on peut rajouter un nouveau client, en appuyant sur le bouton nouvel
enregistrement qui se trouve dans la barre de navigation mais en passant d'abord par Affichage et
Mode Formulaire.

28
Maintenant, on voit comment peut-on améliorer la présentation de ce formulaire ?

D'abord on revient sur mode Création, et on affiche la Feuille de Propriétés, là on peut modifier la taille
et l'épaisseur de la police.

Pour avoir un formulaire plus pratique avec des boutons de navigations plus visible, on crée ces
boutons de la façon suivante, mais avant on diminue la taille des zones en réduisant la taille des zones
de textes, donc on sélectionne ces zones (avec la touche "MAJ" du clavier) et on redimensionne :

29
Dans l'onglet Création, on clique sur un nouveau bouton et on le trace dans la zone libre du formulaire.
Une boite de dialogue s'affiche, on choisit Catégories Déplacements entre enreg et Actions Premier
enregistrement.

Pour le reste, on accepte les choix par défaut (On procède de la même façon pour créer les autres
boutons).

On peut aligner les boutons créés en les sélectionnant et en appuyant sur le bouton "haut" dans
l'onglet Création.

30
Et pour ajouter un bouton dont sa fonctionnalité n'est pas prédéfinit, on le trace sur le formulaire mais
on annule l'Assistant Bouton de commande.

Sur sa Feuille de Propriétés et dans l'onglet Format, on modifie la Légende et on met


"rechercher_client". Toujours dans la Feuille de Propriétés mais dans l'onglet Evenement, on clique sur
"..." de la première ligne et on choisit "Générateur de Macro".

31
On choisit l'Action "AppliquerFiltre" et remplit la zone Conditon Where par
"[Client]![nom_client]=[Donner le nom du client?]", on enregistre et on exécute pour vérifier.

Mais une fois qu'on applique ce filtre de recherche, on aura plus la possibilité d'utiliser les bouton de
navigation pour passer d'un client à un autre, pour évité ce problème on crée de la même façon un
nouveau bouton qui annule le filtre en choisissant l'action "AfficherTousEnrg".

To be continued...

32
LES ETATS
La dernière partie du TP, consiste à créer un état, à l’étudiant de faire une recherche sur le rôle d’un
Etat dans une base de données et comment le créer (prenez l’exemple d’un Etat qui nous affiche une
facture).

Dr. Daouya LAÏCHE

33