Vous êtes sur la page 1sur 40

Cours Access

1 sur 40

<09coursaccess.htm>

Initiation lUtilisation de lInformatique 2009-2010


Introduction Access 2003 (sur Windows 2000), cration des tables
Le contenu de ce document, ainsi que tous les fichiers pdagogiques lis ce document se trouvent sur le site de
notre service MATsch l'adresse www.ulb.ac.be/soco/matsch/info-d-203 . Vous y trouverez aussi des exemples de
travaux (projets de bases de donnes, bases de donnes, descriptions Word du travail) raliss par des tudiants
des annes prcdentes.
Ce document reprend les tapes de conception et de cration d'une base de donne relationnelle. Il permet la
cration des principaux objets de la base de donnes "9e Art"'. Ce document sert donc de prise de contact avant la
construction proprement dite de la base de donnes.

Table des matires


1. Introduction aux bases de donnes
1.1. Objets de la base de donnes
1.2. Conception ou modification d'une base de donnes
1.3. Dfinition de relations entre tables
1.4. Quelques exemples de relations
1.5. Description gnrale de la base de donnes
1.6. Quelques exemples d'objets (Requtes, Formulaires, ...)
1.6.1. Les requtes
1.6.2. Les formulaires
1.6.3. Les tats
1.6.4. Les macros
1.7. En Conclusion
2. Cration dune nouvelle base de donnes
3. Cration des tables de la base de donnes
3.1. La table Tomes
3.2. La table Clients
3.3. Les autres tables
4. Cration des relations
4.1. Les relations " un plusieurs "
4.2. Les relations " plusieurs plusieurs "
4.3. Les relations avec une table de "Dtails de Ventes"
4.4. La "transitivit" des relations
4.5. Voir les relations de type "un plusieurs" dans les tables parents
5. Cration des requtes
5.1. Les requtes de type slection

5.1.1. Les requtes filtre


5.1.2. Les requtes paramtres (requtes paramtre)
5.1.3. Les requtes avec champs calculs
5.1.4. Les requtes opration
5.2. Les requtes de type action
5.2.1. Les requtes Mise A Jour (Update Query)
5.3.Les autres requtes
6. Cration de formulaires
6.1. Cration de formulaires classiques
6.2. Cration de formulaires sous-formulaire
6.3. Les autres formulaires
6.4. Quelques proprits des contrles dans les formulaires
6.5. Construction dun formulaire Menu
7. Construction des macros
7.1. La macro Ouvrir Encodage Ventes
7.2. La macro Fermer
7.3. La macro Autoexec
7.4. Les autres macros
7.4.1. La macro Ouvrir
7.5. Les actions les plus usuelles
8. Cration dtats

Cours Access

2 sur 40

8.1. Les tats publipostages


8.2. Les tats de regroupements
8.3. Les autres tats
9. L'outil de compactage Access
10. Les F.A.Q. (Frequently Asked Questions, La Foire Aux Questions)
Fichiers de travail :
<08-9eArt-t.mdb> qui contient les tables de la base de donnes "9eArt".
<08-9eArt-tr.mdb> qui contient les tables et les relations de la base de donnes "9eArt".
<08-9eArt-trr.mdb> qui contient les tables, les relations et les requtes de la base de donnes "9eArt".
<08-9eArt-trrf.mdb> qui contient les tables, les relations, les requtes et les formlaires de la base de donnes
"9eArt".
<08-9eArt-trrfm.mdb> qui contient les tables, les relations, les requtes, les formulaires et les macros.
<08-9eArt.mdb> qui contient les tables, relations, requtes, formulaires, macros et tats.

1. Introduction aux bases de donnes


1.1. Objets de la base de donnes
Le logiciel Access contient plusieurs types d'objets. Les objets de la base de donnes sont des objets qui
apparaissent dans la fentre Base de donnes. C'est l'utilisateur qui cre ces objets. Nous utiliserons les objets
suivants:

Table:

Requte:
Formulaire:

Etat:

Structure fondamentale du systme de gestion de bases de donnes relationnelles. Dans


Access, une table est un objet qui stocke des donnes dans des enregistrements (lignes) et
des champs (colonnes). Les donnes sont gnralement relatives une catgorie particulire,
par exemple des contacts dans vos agendas, ou des coordonnes dans le botin.
Une requte permet:
- de poser une question sur les donnes stockes dans les tables
- d'accomplir une action sur ces donnes.
Objet de base de donnes Access dans lequel vous placez des contrles servant saisir,
afficher et modifier des donnes dans les champs.
Objet de base de donnes Access qui prsente des informations mises en forme et
organises selon vos spcifications, par exemple
- des rcapitulatifs de ventes,
- des listes de numros de tlphone
- des tiquettes pour publipostage.
Une action ou un ensemble d'actions destines automatiser certaines tches.

Macro:
Il existe aussi des Pages, pour la mise en commun des donnes sur rseau Intranet, et des Modules, pour la
programmation. Nous ne verrons pas ces deux objets.

Cours Access

3 sur 40

Les relations entre les objets, et leurs fonctions, sont reprsentes de manire simplifie dans lillustration
ci-dessus. Les macros ny sont pas reprsentes, car elles ne remplissent aucune fonction affectant lorganisation
dune base de donnes Access.

1.2. Conception ou modification d'une base de donnes


Dans une base de donnes relationnelle, telle qu'une base Access, les donnes sont regroupes, par entits, dans
des tables. Pour qu'Access associe correctement les donnes rparties dans les tables, les liaisons entre les
diffrents sujets doivent tre prcises.
Pour concevoir une base de donnes
1. Dfinissez l'objectif de la base de donnes.
C'est au cours de cette phase que vous dterminez l'information que contiendra la base de donnes: Nos
exemples et illustrations sont tirs de <08-9eArt.mdb> qui sera lexemple type lors du cours. La base de
donnes 9eArt se concentre sur la gestion dun stock de bandes dessines vendues en magasin
spcialis. Dans le cadre de vos travaux, vitez les sujets "passe-partout" tels que la gestion d'un stock de
vins, de disques, de livres, ....
2. Dfinissez les tables.
Divisez l'information en entits principales. Chaque thme fera l'objet d'une table dans la base de donnes:
La gestion de nos bandes dessines se fait tome tome. Nous nous restreignons un ensemble denviron
250 tomes. Afin de classer ces tomes, nous les regroupons en sries. De mme, afin de classer ces sries,
nous les regroupons en 8 maisons ddition dont sont issus les tomes. Nous grons les sorties dalbums: le
tome vendu, la date de vente, et le client. Les donnes concernant ce client sont entirement dcrites dans
la table Clients.
3. Dfinissez les champs.
Dterminez les donnes stocker dans chaque table. Chaque champ correspondra une colonne dans la
table. Nom et Prnom du client, par exemple, seront deux champs de la table Clients.
4. Dfinissez les relations entre les donnes et entre les tables.
Examinez chaque table de la base de donnes et dterminez les liaisons qui peuvent exister entre les
donnes des diffrentes tables. Au besoin, ajoutez des champs aux tables ou crez de nouvelles tables.
Dans notre cas, il faut indiquer, pour chaque tome, de quelle srie il est issu; pour chaque srie, chez quel
diteur elle parat; pour chaque vente, quel tome elle correspond, et quel client elle correspond. Une fois
que vous avez cr les tables qui constituent une base de donnes, vous devez dfinir des relations entre
ces tables. Ces relations indiquent Access comment les donnes des diffrentes tables sont relies entre
elles ; elles facilitent galement la cration de requtes, de formulaires et d'tats qui incluent des tables
multiples.
Les structures de bases de donnes sont varies. Des cas classiques de structures sont les structures
hirarchiques et structures en toiles, mais dautres types sont possibles. Des combinaisons de ces deux
structures sont galement permises. Mfiez-vous toutefois des relations cycliques: dans le cas gnral, il
nexiste quun seul chemin pour passer dune table lautre.

Cours Access

4 sur 40

Structure hirarchique

Structure en toile

1.3. Dfinition de relations entre tables


Si, par exemple, vous avez une table Clients et une table Ventes, la dfinition d'une relation par dfaut entre ces
deux tables vous fait gagner du temps lorsque vous crez des formulaires ou des tats qui relient les informations
de ces tables.
Pour dfinir des relations, vous faites correspondre les champs Cl primaire de la table parent aux champs
correspondants de la table enfant (terminologie utilise dans le cas d'une relation de un plusieurs).
Pour voir les relations dfinies entre les tables, choisissez dans la barre d'outils le bouton Relations (Relationships)
reprsent par trois petites tables lies. Access affiche la bote de dialogue Relations avec les reprsentations de
toutes les tables, ainsi que les relations sous forme de traits entre les tables.

1.4. Quelques exemples de relations


1. La gestion du service des inscriptions d'une Facult. Structure en toile autours de la table des inscriptions.

2. La gestion de la distribution des billets de cinma. Structure en toile autour de la table des sance, plus la table
des ventes

Cours Access

5 sur 40

3. La gestion des traitements administrs dans un service hospitalier. Structure en toile autours de la table des
traitements, plus la table des mutuelles.

4. La gestion des locations pour des clients d'une agence immobilire. Structure en toile autours de la table des
locations, plus la table des propritaires.

Cours Access

6 sur 40

5. La gestion d'un stock de cassettes vidos personnelles reprenant des films, tlfilms et sries. Structure de
plusieurs plusieurs entre les mtrages et les cassettes, plus une table reprenant les titres de sries, plus une table
reprenant les compositeurs de musiques. Attention la "relation cyclique" entre Metrages, Series et Compositeurs!
Elle est justifie dans ce cas-ci.

Aprs avoir cr des tables, vous pouvez crer des requtes, des formulaires, des tats et d'autres objets base de
donnes qui faciliteront l'utilisation des donnes.

1.5. Description gnrale de la base de donnes


Lexemple dvelopp est bas sur la gestion dun stock de bandes dessines vendues en magasin spcialis. Il
sagit de la base de donnes "9eArt" (<08-9eArt.mdb>). On se restreindra un ensemble denviron 250 tomes, que
lon appellera aussi parfois albums , dcrits dans la table Tomes. Afin de classer ces tomes, on crera une table
Sries reprenant les donnes relatives aux 31 sries composes par les tomes. De mme, afin de classer ces
sries, on crera la table Editeurs reprenant les donnes relatives aux 8 maisons ddition dont sont issus les
tomes. On supposera, pour simplifier lexemple, quune srie dalbums na t dite que par un seul diteur. Pour
grer les ventes dalbums, on disposera dune table Ventes reprenant le tome vendu, la date de vente, et le client.
Les donnes concernant ce client seront dcrites dans la table Clients.
Lutilisateur de la base de donnes nest peut-tre pas expert dans le maniement d'Access. Ainsi, une srie de
formulaires faciles demploi serviront encoder les nouvelles sries, nouveaux tomes, nouveaux clients et

Cours Access

7 sur 40

nouvelles ventes. Lutilisateur na qu se laisser guider par les diffrents boutons, messages, ... Nos formulaires de
la base de donnes sont Menu des Formulaires , Encodage Clients , Encodage Ventes , Encodage
Tomes , Encodage Sries , Acheteurs dun Tome , Sries dun diteur , Tomes dune srie ,
Sous-formulaire1 , Sous-formulaire2 .
On proposera une srie de requtes filtrant les tomes selon des critres bass sur le titre, le scnariste, la date de
parution,... Des requtes " regroupement " permettent d'extraire des donnes numriques partir des donnes
initiales, et permettront ensuite de crer des graphiques. Un autre type de requtes, les requtes action, permettra
par exemple de mettre les prix des albums jour chaque anne. Les requtes de la base de donnes sont Rq
Ventes , Rq Van Hamme ou Rosinsky , Rq Age dArgent (1955-1970) , Rq Tomes en Les ... , Rq
Tomes en ... , Rq Ventes Mois , Rq Compte Tomes par Srie , Rq Cote Moyenne Srie , Rq Inflation ,
Rq Inflation (Annuler) , Rq Anciens Clients , Rq Ventes par Client , Rq Catalogue des Editeurs , Rq
Editeurs , Rq Sries , Rq Tomes .
Le grant de la librairie aimerait avoir le rapport de ses ventes dalbums mois aprs mois. Ceci se fera grce un
Etat appropri. Le grant disposera dautres Etats, comme les ventes par client, le catalogue des albums par
diteur, et les tiquettes de publipostage pour les commandes des clients, le double graphique des ventes par
mois.
Un souci de prsentation mnera lutilisation de boutons faisant appel des macros trs simples (ouvrir ou fermer
un formulaire, diminuer le nombre dalbums en stock ds quun album est vendu, ..).

1.6. Quelques exemples d'objets (Requtes, Formulaires, ...)


1.6.1. Les requtes
Une requte permet de poser une question sur les donnes stockes dans les tables ou daccomplir une action sur
ces donnes.

1. Les requtes slection


posent des questions sur les donnes stockes dans les tables et renvoient
une feuille de rponses dynamique sans modifier les donnes. Une fois la feuille de rponse dynamique
affiche, vous pouvez examiner et modifier les donnes. Toute modification sera immdiatement enregistre
dans les tables source.
Par exemple, Rq Ventes: Elle reprend les donnes de la table Ventes et les donnes correspondantes dans
les tables Tomes et Clients. Elle permet ainsi de retrouver sans se proccuper des codes "qui a achet quoi"
et "ce qui a t achet par qui".
Par exemple, Rq " Van Hamme " ou " Rosinski " : Cette requte affiche tous les tomes crits par Van
Hamme ou dessins par Rosinski, quelles que soient les sries, quels que soient les diteurs. Il est ais de
changer le critre et de retrouver les tomes crits et/ou dessins par dautres auteurs.

2. Les requtes action


modifient ou dplacent les donnes. Ajout, Suppression, Cration de table
et Mise jour sont des requtes action.
Par exemple, Rq Inflation: Cette requte, une fois excute, met la table " Tomes " jour en augmentant
(chaque anne) les prix de 5%. Cette requte ne doit tre utilise quune fois par an sous risque de voir les
prix tre fausss.
Par exemple, Rq Anciens Clients: Cette requte, une fois excute, cre une nouvelle table rptant tous
les champs de la table Clients, mais ne reprend pour enregistrements que les clients n'ayant plus fait d'achat
depuis fin 1999.

3. Les requtes analyse croise


effectuent des totaux partir des valeurs de chaque ligne et de chaque
colonne. Ce sont les valeurs de deux champs (gnralement) qui servent d'en-ttes de lignes et de colonnes
de cette requte.
Par exemple, Rq AC nombre de ventes par client par srie: On retrouve les sries classes sur les
lignes, et les clients classs en colonnes. Les cellules du tableau indiquent le nombre d'achats rpartis par
sries de chacun des clients.
4. Les requtes paramtre optimisent la souplesse demploi des autres requtes en vous demandant de

Cours Access

8 sur 40

modifier certains critres chaque fois que vous excutez la requte.


Par exemple, Rq Tomes en *** :Cette requte demande un mot-cl devant apparatre dans tous les
enregistrements. Chaque nouvelle ouverture de cette requte permettra dentrer un nouveau mot-cl.

1.6.2. Les formulaires


Il s'agit d'un objet Access dans lequel vous placez des contrles servant saisir, afficher et modifier des donnes
dans les champs. Lorsque vous faites appel un Assistant pour vous seconder dans la cration d'un formulaire,
celui-ci vous pose un certain nombre de questions pour connatre les caractristiques du formulaire souhait, puis
construit ce dernier sur la base de vos rponses.
Il existe plusieurs types de formulaires et plusieurs assistants:
1. Colonne Simple: Formulaire ou Etat affiche les valeurs de chaque enregistrement dans une seule colonne.
Chaque valeur apparat sur une ligne diffrente. Les enregistrements apparaissent les uns aprs les autres.
Par exemple, Encodage clients: Formulaire contenant les renseignements sur un client. Ce formulaire
permet dencoder les nouveaux clients. La photo du client sinsre grce la liaison Ole.
2. Tableau: Formulaire qui affiche les valeurs d'enregistrements dans des colonnes. Des intituls sont affichs
en haut de chaque colonne, et chaque ligne reprsente un enregistrement.
Par exemple, Acheteurs dun tome: Listing des acheteurs dun tome quelconque.
3. Graphique: Contenant un graphique bas sur des donnes numriques ou sur traitement de donnes
textuelles.
Par exemple, Graphe nombre de ventes par client
4. Formulaire Sous-formulaire: Les sous-formulaires peuvent servir afficher une relation un--un ou
un--plusieurs entre les donnes de tables ou de requtes. Vous pouvez, par exemple, afficher le nom d'une
catgorie de produit dans le formulaire principal et afficher la liste de tous les produits de cette catgorie
dans un sous-formulaire.
Par exemple, Tomes dune srie: Dans le formulaire principal figurent les donnes concernant la srie
sous forme de colonne simple. Dans le sous-formulaire sont lists les tomes de cette srie. Cest le champ
[Code Srie], lien entre les tables Sries et Tomes, qui permet dafficher les tomes correspondants.
Par exemple, Sous-formulaire2: Listing de tous les tomes. Ncessaire comme sous-formulaire pour le
formulaire " Tomes dune srie ".
Avec la version 2003 d'Access, il existe aussi des Formulaires Tables Pivots et des Formulaires Graphes Pivots,
dont l'aspect se modifie directement selon vos choix de critres de tri, de filtre, de regroupement, ...
Mme si l'Assistant n'offre pas exactement la prsentation que vous voulez, il est cependant souvent plus rapide de
l'utiliser pour crer un formulaire de base que vous modifiez ensuite.
Si l'utilisation d'un Assistant pour crer un formulaire reste la mthode la plus simple, elle risque cependant de ne
pas produire la structure souhaite. Si vous voulez concevoir vous-mme un formulaire, crez un formulaire vierge,
puis ajoutez les contrles et les autres lments dont vous avez besoin.
Vous pouvez demander Access d'afficher un formulaire chaque fois qu'un utilisateur excute une action
dtermine, qu'il s'agisse d'ouvrir un autre formulaire ou un autre tat, de cliquer sur un bouton de commande, ou
de changer de champ actif. Un tel formulaire est alors appel formulaire indpendant et ressemble fort une bote
de dialogue. Un formulaire indpendant vous permet d'afficher un message ou de demander des informations
complmentaires.
Ce formulaire peut tre constitu d'une combinaison quelconque de textes, de contrles ou d'images qui vous
permettront d'afficher un message ou de demander l'utilisateur de taper certaines informations. Par exemple,
vous pourriez demander l'utilisateur de fournir les dates de dbut et de fin pour un tat, ou de fournir certaines
donnes requises si les donnes contenues dans un champ dtermin ont t modifies dans un formulaire.
Un formulaire indpendant contient gnralement un ou plusieurs boutons de commande qui excutent des
macros, qui engendrent leur tour d'autres actions partir des informations saisies dans le formulaire indpendant.
Vous pouvez galement prvoir des boutons qui proposent l'utilisateur des options spcifiques.

Cours Access

9 sur 40

Par exemple, Menu des Formulaires: Certains des formulaires de 9eArt ne sont pas destins
tre ouverts directement. Ainsi, ce formulaire de prsentation aura pour simple but de proposer de
nouvrir que les formulaires intressants: deux de listings, quatre dencodage. Ce formulaire contient
au total six boutons de commande renvoyant la macro Ouvrir.

1.6.3. Les tats


Lorsque vous faites appel un Assistant pour vous seconder dans la cration d'un tat, celui-ci vous pose un
certain nombre de questions pour connatre les caractristiques de l'tat souhait, puis construit ce dernier sur la
base de vos rponses. Bien que les noms suivants ne soient pas officiellement utiliss, Access offre plusieurs types
d'assistants:
1. Assistant Colonne simple: Assistant Formulaire ou Assistant Etat qui sert afficher les valeurs de chaque
enregistrement dans une seule colonne. Chaque valeur apparat sur une ligne diffrente appose d'une
tiquette sa gauche. Les enregistrements apparaissent les uns sous les autres et du haut en bas de la
page.
2. Assistant Regroupements/totaux: Assistant Etat qui sert organiser les donnes en groupes affichs sous
forme de tableau. Vous pouvez calculer la somme de chaque groupe et celle de tous les groupes. Des
intituls apparaissent en haut de chaque colonne de donnes.
Par exemple, Etat Catalogue des Editeurs: bas sur la requte Rq Catalogue des Editeurs.
Les enregistrements sont regroups selon lditeur, puis selon la srie Le tri se fait ensuite sur le champ
[NTome].
3. Assistant Publipostage: Assistant Etat qui sert crer des tiquettes de publipostage.
Par exemple, Etat Etiquettes: bas sur la table Clients. Cet tat permet d'envoyer des colis contenant la
commande des clients grce l'impression d'tiquettes personnalises.
Par exemple, Etat Etiquettes Parametre: Le mme tat, mais ne propose que l'tiquette d'un client slection
(bas sur une requte paramtre).
4. Assistant Graphique: Assistant qui cre un tat contenant un graphique.
Par exemple, Etat Graphique des Ventes par Mois: bas sur la requte Rq Ventes. Cet tat prsente en
vrit deux graphiques. Il propose une reprsentation graphique des ventes par mois, sous forme de
nombre de tomes vendus, et sous forme de chiffre d'affaire.
Si l'tat cr par l'Assistant ne correspond pas exactement ce que vous dsirez, vous pouvez le modifier en mode
Cration ou recommencer l'opration en rpondant diffremment l'Assistant.
Les Assistants facilitent grandement la cration des tats, mais ils n'offrent pas la mthode de cration la plus
flexible. Pour construire un tat de toutes pices, vous crez un tat vierge, y ajoutez les niveaux de tri et de
regroupement voulus, puis y placez les contrles et les autres lments de structure.

1.6.4. Les macros


Une macro est une liste d'instructions que vous crez dans le but d'excuter automatiquement certaines tches.

Cours Access

10 sur 40

Dans Access, chaque instruction s'appelle une action. Lorsque vous excutez la macro, Access ralise les actions,
dans la squence indique, en utilisant les objets et les donnes que vous avez spcifis en tant qu'arguments des
actions. Les macros servent automatiser les tches rptitives et enrichir les possibilits de votre base de
donnes.
Les actions sont dj dfinies. Il suffit de les choisir dans la liste de propositions. Dans la partie infrieure de la
fentre, spcifiez les arguments de l'action.
Par exemple, La macro Fermer:
Elle permet de fermer le formulaire " 1: Menu " et de retourner la fentre Base de donnes.
action
Fermer

type objet: Formulaire


nom objet: 1: Menu Formulaires

1.7. En Conclusion
Malgr laspect trs construction quimpose la cration de la base de donne, il na t utilis aucune notion de
programmation. Vous serez capable, et serez tenu, dici la fin du cours, de crer et remettre une base de donne
semblable, selon les critres dfinis, celle propose ici.
La mise en forme de la base de donne est telle que la base est utilisable, dune part par ses concepteurs ou par
des connaisseurs d'Access, dautre part, et plus intressant, par des utilisateurs ignorant tout d'Access. Ceci est d
aux formulaires indpendants, aux liste modifiables, aux messages dinformations, ...

2. Cration dune nouvelle base de donnes


La premire chose faire est bien entendu de lancer Access par le menu Dmarrer (Start). Access est le logiciel
reprsent par une cl mauve/rose.
Attention, il est possible d'obtenir au lancement d'Access un message d'avertissement prvenant que certaines
expressions pourraient permettre certains virus de pntrer les bases de donnes Access. Le message est du
type "Warning, unsafe expressions are not blocked. Do you want to block unsafe expressions?" Il suffit de choisir
"No" pour continuer travailler avec toutes les fonctionnalits d'Access. Lorsque la machine demande la
confirmation de l'ouverture du fichier, "Do you want to open this file?", il faut confirmer par "Yes", et/ou par "Open".
Pour supprimer ces messages d'avertissements, et rendre moindre le niveau de scurit d'Access, passez par le
menu Outils/Macro/Scurit (Tools/Macro/Security). Mettez le niveau de scurit sur Bas (Low).
Office n'affiche par dfaut que les commandes les plus souvent utilises dans les menus. Les commandes moins
utilises peuvent tre obtenues en attendant quelques instants dans le menu, ou en cliquant sur la flche vers le
bas dans la partie infrieure du menu. Cette option ralentit le travail de celui qui utilise souvent les menus. Il est
possible pourtant d'afficher immdiatement toutes les commandes du menu en se rendant dans le menu
Otions/Personnaliser (Options/Customize) en choisissant l'onglet Options, et en cochant la case "Always Show Full
Menus". Cette manipulation est valable pour les logiciels Access, Excel, Word, PowerPoint.
Une fois Access compltement lanc, on choisit soit le bouton Nouveau Document de la barre d'outils, soit la
commande Crer un Nouveau Document (Create New Document) dans le volet de droite. On choisit ensuite de
crer une nouvelle base de donnes (Blank Database) dans le menu droite. Access demande un nom de fichier
pour la base. En prvision de la suite du travail, on proposera <08-9eArt0.mdb>. Ne pas oublier de crer ce fichier
dans le dossier de travail (Save In: H:\DossierPersonnel). Plutt que dentrer le chemin soi-mme, il est possible de
voyager dans larborescence et de retrouver ce dossier personnel. Lorsque cela est fait apparat la fentre base de
donnes, lobjet qui caractrise en soi toute la base de donnes.

Cours Access

11 sur 40

3. Cration des tables de la base de donnes


La premire chose faire est de fournir Access un minimum de donnes. Ces donnes seront mmorises dans
de grands tableaux, appels tables. En appuyant sur le bouton Nouvelle (New), on nous propose de construire une
nouvelle table en mode feuille de donnes (Datasheet View), en mode cration (Design View), laide dun
Assistant (Table Wizard), dimporter une table (Import Table) ou de lier une table dune autre base de donnes
(Link Table).On choisit le mode cration (Design View), permettant de personnaliser entirement notre travail.

3.1. La table Tomes


Dans la suite de ce texte, les noms de champs sont indiqus entre crochets, et les mots techniques propres
linformatique sont en italique.
La premire table que lon construit (en mode cration (Design View)) est la table des Tomes. Elle doit contenir les
donnes relatives aux albums dont dispose le vendeur. Dans la colonne Champ (Field Name) on entre
successivement les champs [N Tome], [Titre Tome], [Scnariste], [Dessinateur], [Anne Parution], [Prix],
[Couverture]. Si on prcise quelle srie appartient lalbum, on aura des rptitions (des dizaines de Tintin, des
dizaines dAstrix, ). On rservera une table pour ces sries, et pour les donnes y rfrant. Pour linstant, il
suffira dun code de srie de trois lettres quon encodera dans le champ [Code Srie].
Cette notion de code savre utile pour la mise en relation des tables, et pour lutilisation de la cl primaire. La cl
primaire est un champ ou une combinaison de champs qui dsigne, de faon unique, chaque enregistrement dans
une table. Elle fait office d'index principal de la table tout en permettant d'associer des donnes appartenant des
tables diffrentes. Notre cl primaire sera le [Code Tome] que lon introduit en premire position dans notre table
grce au bouton dinsertion de ligne. On y dfinit la cl primaire en slectionnant la ligne de ce champ (en cliquant
dans la colonne-marge) et en cliquant sur le bouton reprsentant une cl.
On remarque que la machine a automatiquement choisi le type de donnes texte pour nos champs. On modifie le
[N Tome] par un type numrique (Number), l [Anne Parution] par un type Date/Heure (Date/Time), le [Prix] par un
type Montaire (Currency), et la [Couverture] par Liaison OLE (OLE Object). La Liaison OLE permet d'insrer dans
le formulaire appropri une "miniature" (thumbnail) de la couverture.
Chacun de ces types peut tre encore dtaill. Le champ [N Tome] et le champ [Nb Exemplaires] sont choisis de
format Octet (Byte). Leurs valeurs sont comprises entre 0 et 255. Ceci permet de ne pas perdre inutilement de la
place en mmoire. Le champ [Anne Parution] est choisi de format yyyy (en franais aaaa), ne laissant ainsi
paratre que lanne de parution (par exemple, 9/12/96 s'affiche comme 1996). Le champ [Prix] est choisi de format
#" ", faisant apparatre le nombre suivi du symbole " " (Ce symbole est obtenu par la combinaison de touches
[Alt Gr]+[e]). Ou alors on choisit le format "Euro" dans la liste prdfinie, mais le symbole est alors affich devant le
montant. La taille (Field Size) du champ [Code Srie] est rduite 3 caractres. La taille du champ [Code Tome]
est rduite 6 caractres. On y entrera les trois lettres du code de srie, et trois chiffres rappelant le numro de
lalbum. La Cl Primaire (Primary Key) est sur le champ [Code Tome].

Cours Access

12 sur 40

Concernant les formats de dates, voici les interprtations actuelles des formats abrgs pour les annes.
Du 1/1/00 jusqu'au 12/31/29 est interprt comme du 1/1/2000 jusqu'au 12/31/2029
Du 1/1/30 jusqu'au 12/31/99 est interprt comme du 1/1/1930 jusqu'au 12/31/1999
Il est vivement conseill d'entrer les dates sans abrviations. Par ailleurs, bien que le format soit yyyy, il faudra
encoder les annes sous la forme 1/1/1992. Une date telle que 1992 (sans prcision de jour et de mois) ne sera
pas accepte.
On affecte une valeur par dfaut (Default Value) au champ [Date Parution] dans le but de minimiser lencodage des
dates de parution des nouveaux albums parus. Le gnrateur dexpressions permet de construire ce genre de
donnes. Pour obtenir le gnrateur dexpressions, on clique au niveau de la proprit valeur par dfaut, puis sur le
bouton points de suspensions. Dans l arborescence propose, on choisit successivement Functions,
Build-in-Functions, Date/Time, Date. En cliquant sur le bouton Coller (Paste), la fonction Date(), renvoyant la date
actuelle, sinscrit dans la partie suprieure de la fentre (vrifier que rien dautre napparat). On clique sur OK pour
confirmer cette valeur par dfaut.
Aprs avoir encod une description dans la colonne du mme nom, la table apparat sous la forme suivante.
Champ

Type de champ

Code Tome

Texte

N Tome

Numrique

Titre Tome

Texte

Scnariste

Texte

Dessinateur

Texte

Anne Parution

Date/Heure

Prix

Montaire

Couverture

Liaison OLE

Nb Exemplaires

Numrique

Code Srie

Texte

Description
Code reprsentant la srie et le numro de tome. exemple: tin001

En appuyant sur le bouton feuille de donnes (premier bouton de la barre d'outils), la table passe en mode feuille de
donnes, et est prte pour un premier encodage. A noter que lors de ce premier passage dun mode lautre,
Access demande sous quel nom sauver la table. Le nom de la table est Tomes. Notons aussi que le bouton feuille
de donnes est alors remplac par le bouton cration. Pour faciliter lencodage, on rtrcit les colonnes [Code
Tome], [N Tome] et [Anne Parution] en cliquant-glissant sur les sparations de colonnes (lorsque le pointeur a
pris la forme dune double flche).
La mthode utilise pour lencodage consiste saisir un nombre suffisant denregistrements (une dizaine) dans
chaque table pour vrifier que les objets que lon construira (formulaires, requtes, ) fonctionnent
convenablement. Le reste de lencodage se fera partir des formulaires.
Notons entre autres choses que les champs numriques contiennent dj une valeur 0 , que la date par dfaut
est bien prsente, ainsi que le symbole "" pour le prix. Lencodage nous confrontera au problme suivant: une date
de parution comme 1950 sera refuse car il ne sagit pas dune date complte. Les dpts lgaux de parution de
bandes dessines se font (souvent) par trimestre. Le mieux est alors dentrer des dates comme 1/1/1950, 1/4/1950,
... Le rsultat affich sera le mme ( savoir 1950) mais ce type de donnes pourrait savrer utile pour la
construction de certains tats (un regroupement par trimestre par exemple).
Voici quelques exemples dencodage. On laisse le champ [Couverture] vide jusqu' l'encodage dans les
formulaires.
Code

Titre Tome

Scenariste

Dessinateur

Date

Prix

Couverture

Nb

Code Srie

ast001

1 Astrix le Gaulois

Goscinny

Uderzo

1961

350 FB

18 ast

ast002

2 La Serpe d'or

Goscinny

Uderzo

1962

300 FB

20 ast

ast003

3 Astrix et les Goths

Goscinny

Uderzo

1963

300 FB

20 ast

tin001

1 Tintin au Congo

Herg

Herg

1946

400 FB

19 tin

tin002

2 Tintin en Amrique

Herg

Herg

1945

400 FB

20 tin

tin003

3 Les Cigares du Pharaon

Herg

Herg

1955

350 FB

20 tin

Cours Access

13 sur 40

3.2. La table Clients


Cette table contient les coordonnes et informations sur les acheteurs potentiels. Les tudiants construisent cette
table de manire plus autonome que la prcdente. Le principe est le mme. La Cl Primaire est place sur le
champ [Code Client]. La taille (Size Field) du champ [Code client] est rduite trois caractres. Le numro de
tlphone est de type texte ; cela laisse une plus grande libert pour le format si on dsire le modifier.
Champ

Type de champ

Code Client

Texte

Nom Client

Texte

Prnom Client

Texte

Adresse Rue

Texte

Adresse No

Texte

Adresse CP

Texte

Adresse Commune

Texte

Tlphone

Texte

Description
premire lettre du prnom + 2 premires lettres du nom

Lors du passage en mode feuille de donnes, la table est sauve sous le nom Clients .
Voici quelques exemples dencodages.
Code Client

Nom Client

Prnom Client

Tlphone

aaa

Aaron

Albert

0474 34 56 78

bba

Ballard

Bernadette

0478 45 67 89

cca

Calais

Caroline

0495 22 33 44

3.3. Les autres tables


Les autres tables de la base de donnes se construisent de la mme faon. Il est donc inutile de passer la
cration de chacune delles puisque le fichier <08-9eArt-t.mdb> les contient toutes. A ce stade, on ferme
<08-9eArt0.mdb> et on ouvre <08-9eArt-t.mdb>. Ce fichier est complet au niveau de la structure des tables, ce qui
permet aux tudiants perdus ou en retard de se remettre jour. En outre, <08-9eArt-t.mdb> contient un
nombre denregistrements suffisant, fournissant pour la suite du travail des rsultats intressants. La description
des tables que lon na pas construites est prsente ci-dessous.
Une visite rapide de chacune des tables permet davoir une ide des donnes avec lesquelles on va travailler.
Surtout concernant la table Ventes qui fait appel deux cls primaires. La transformation de <08-9eArt-t.mdb> va
consister lui appliquer des relations.
La table Ventes est relie (cf paragraphe suivant sur les relations) aux tables Tomes et Clients et gre les
ventes des albums:
Champ

Type de champ

Code Vente

Autonumber

Code Client

Texte

Code Tome

Texte

Date Vente

Date/Heure

Description

Le champ [Code Client] tablit le lien avec la table Clients, et le champ [Code Tome] tablit le lien avec la table
Tomes. On tudiera le rle de cette table dans les relations dcrites ci-dessous.
La table Clients (Archive) reprend les mmes champs que dans la table Clients, mais uniquement pour les clients
n'ayant plus fait d'achat depuis fin 1999. Cette table nest pas construite par le concepteur, mais par une requte de
type action que nous tudierons plus loin.
La table Sries contient les donnes relatives aux 31 sries publies.

Cours Access

14 sur 40

Champ

Type de champ

Code Srie

Texte

Srie

Texte

Crateur

Texte

Date Cration

Date/Heure

Description

Memo

Code Editeur

Texte

Description
3 premires lettres du nom de la srie

Code de lditeur publiant la srie

Le format du champ [Date Cration] est lui aussi yyyy. Le champ [Code Editeur] permet de faire le lien avec la table
" Editeurs ". Le nombre de caractres du champ [Code Srie] est rduit 3. La Cl Primaire est sur le champ [Code
Srie].
La table Editeurs contient les donnes relatives aux 8 diteurs considrs:
Champ

Type de champ

Code Editeur

Texte

Editeur

Texte

Adresse

Memo

Tlphone

Texte

Responsable

Texte

URL

Lien Hypertexte

Description
3 premires lettres du nom de lditeur

Le nombre de caractres admis pour le type texte a t modifi de 50 25 caractres. Pour le champ [Code
Editeur], ce nombre a t rduit 3. La Cl Primaire est sur le champ [Code Editeur]. Un lien hypertexte permet
d'aller visiter le site de l'diteur.

4. Cration des relations


Une relation est une connexion tablie entre des champs communs deux tables. Une relation peut tre du type
un--un, un--plusieurs ou plusieurs--plusieurs. La cration des relations de notre base a commenc lorsque lon a
dcid de mettre les donnes relatives aux sries dans la table Sries et dutiliser un champ [Code Srie] dans la
table Tomes.
Les relations sont cres grce la commande Relations (Relationships) du menu Outils (Tools), ou en appuyant
sur le bouton reprsentant trois tables lies par deux traits.
Une fentre grise apparat. Pour ajouter des tables
aux relations, il faut cliquer sur le bouton reprsentant une table et un "+" jaune (Show Table). On ajoute alors les
diffrentes tables lier en double-cliquant sur chacune. Dans notre cas, il sagit dans lordre des tables Editeurs,
Sries, Tomes, Ventes et Clients. Les relations instaurer sont de type " un plusieurs ". Elles se crent en
cliquant-glissant du champ de la table contenant lenregistrement parent , jusquau champ quivalent dans la
table contenant les enregistrements enfants . Access demande une confirmation avant de crer la relation. On
confirme en cliquant sur le bouton Crer (Create).

Cours Access

15 sur 40

Access propose avant la confirmation de choisir lintgrit rfrentielle (Referential Integrity). Il sagit de rgles
suivre pour maintenir les relations dfinies entre les tables lorsquon ajoute ou supprime des enregistrements. Si on
applique l'intgrit rfrentielle, Access empche
a. d'ajouter de nouveaux enregistrements dans une table relie pour laquelle il n'existe pas d'enregistrement
parent ,
b. de procder la modification de valeurs dans une table source qui entranerait des enregistrements
orphelins dans une table relie,
c. de supprimer des enregistrements d'une table source dans le cas o il existe des enregistrements
enfants correspondants.
Les diffrentes relations entre les tables sont motives comme suit.

4.1. Les relations " un plusieurs "


Une relation un--plusieurs est une relation entre des tables selon laquelle chaque enregistrement de la table
source peut tre associ plusieurs enregistrements de la table relie (chaque valeur de cl primaire peut figurer
plusieurs fois dans la table relie).
Un diteur publie diffrentes sries Exemple: Casterman publie Tintin, Le Chat, ... On cre une relation " un
plusieurs " entre les tables Editeurs et Sries grce au champ [Code Editeur].
Une srie est compose de plusieurs albums. Exemple pour Tintin: Tintin au Congo, Tintin en Amrique, ...
On cre une relation " un plusieurs " entre les tables Sries et Tomes grce au champ [Code Srie].
Un album pourra tre vendu en plusieurs exemplaires. On cre une relation " un plusieurs " entre les tables
Tomes et Ventes grce au champ [Code Tome].
Un client pourra effectuer plusieurs achats. On cre une relation " un plusieurs " entre les tables Clients et
Ventes grce au champ [Code Client].

4.2. Les relations " plusieurs plusieurs "


Dans une relation de type plusieurs--plusieurs entre deux tables, les enregistrements de chaque table peuvent tre
associs plusieurs enregistrements de l'autre table. Pour dfinir une relation plusieurs--plusieurs entre deux
tables, on doit crer une troisime table, appele table de jonction, qui relie les deux premires. La table de jonction
doit contenir les cls primaires des deux autres tables, et peut contenir de nouveaux champs.
Les deux relations entre Tomes & Ventes et entre Clients & Ventes permettent de dfinir un autre type de
relation: la relation " plusieurs plusieurs " entre Tomes et Clients. Grce cette relation, il est ais de
dterminer tous les acheteurs dun mme album, ainsi que tous les albums vendus un mme client. La
table Ventes sert de " jonction " entre les tables Tomes et Clients. Mise sous forme de formulaire, cette table
Ventes est donc intressante pour le libraire qui gre ses stocks grce elle.
Voici une reprsentation schmatique de nos relations.

Cours Access

16 sur 40

4.3. Les relations avec une table de "Dtails de Ventes"


Nous vous proposons ci-dessous un schma de la structure de la base de donnes dans le cas o nous dtaillons
les ventes. La table des ventes telle que nous l'avons conue ne permet en effet la vente que d'un album la fois.
Le formulaire des ventes doit tre utilis plusieurs fois si un client achte plusieurs albums, ou plusieurs
exemplaires d'un mme album. Le nom du client, en particulier, doit tre chaque fois r-encod.
La structure que nous proposons ci-dessous corrige ces maladresses. Les ventes sont distingues selon deux
tables: la table Ventes et la table DetailsVentes. La table Ventes ne reprend plus que le Code Vente (cl primaire),
le Code Client (encod une seule fois si le client achte plusieurs albums), la date de la vente, et le Prix de Vente
(calcul par Access comme la somme des prix partiels provenant de la table des dtails). La table DetailsVentes
reprend les champs Code Dtail (cl primaire), Code Vente, Code Tome (pour les liens avec les tables Ventes et
Tomes), la quantit de chaque album achet (mise "1" par dfaut), et le Prix Partiel (calcul par Access comme le
produit du prix du Tome (provenant de la table Tomes) et de la quantit (encode lors de la vente)).

C'est prsent la table DetailsVentes qui sert de jonction entre les tables Tomes et Ventes. Il y a donc une relation
"plusieurs plusieurs" entre ces deux tables. Par extension, nous pouvons aussi dire qu'il existe une relation
"plusieurs plusieurs" entre Tomes et Clients.
Ce type de structure se retrouve souvent dans des bases de donnes de type commercial. Pensez vos tickets de
supermarchs ou autres factures: chaque ligne du ticket correspond un enregistrement de la table DetailsVentes
(l'objet, sa quantit, le prix partiel, ...), et l'en-tte et le pied du ticket correspondent aux donnes d'un
enregistrement de la table Ventes (ventuellement le nom du client, la date, le prix total, ...).
En remarque, les champs [Prix Partiel] et [Prix Vente] ne sont pas ncessaires. Ils peuvent tre calculs tout
moment par Access ( l'aide d'une requte par exemple) partir du prix du tome et de la quantit achete (en
fonction du client, en fonction de la date, ...). Des tats ou des formulaires qui rcapituleraient les ventes d'un client
ou les ventes par trimestres (par exemple) pourraient tre conus sans l'existence de ces champs. Leur prsence
n'est cependant pas interdite. Elle facilitera peut-tre la cration des tats ou formulaires en question.
Nous laissons au lecteur le soin de chercher les "trucs" (requtes, macros, calculs partir des champs de
formulaires, ...) qui permettent de mettre jour les valeurs de ces champs calculs.
Par ailleurs, une macro de "9eArt" enlve un exemplaire du stock chaque vente d'un album. Avec cette nouvelle

Cours Access

17 sur 40

structure, la macro devrait tre adapte pour dcompter le nombre d'exemplaires vendus lors de chaque vente.

4.4. La "transitivit" des relations


Si une premire table est lie une seconde par une relation "un plusieurs", et que cette seconde table est lie
une troisime par une relation "un plusieurs", il n'est pas ncessaire de crer explicitement une relation "un
plusieurs" entre la premire et la troisime.
Par exemple, imaginons un base contenant les tables Continents, Pays, Villes. Les relations "un plusieurs" sont
clairement tablies entre Continents et Pays, et entre Pays et Villes. Il est clair qu'un continent contient galement
plusieurs villes. Toutefois, Access ne demande pas de matrialiser cette dernire relation. Elle sera prise en
compte, implicitement, par l'intermdiaire des deux relations Continents/Pays et Pays/Villes.
En application, dans notre base "9eArt", un diteur publie de nombreux tomes. Nous n'avons toutefois pas cr de
lien entre les tables Editeurs et Tomes, car cette relation ("un plusieurs") est prise en compte par l'intermdiaire
de la table Sries.

4.5. Voir les relations de type "un plusieurs" dans les tables parents
Lorsque vous tes dans une table parent, chaque enregistrement est prcd d'un signe "plus". Lorsque vous
cliquez sur ce signe, des enregistrements supplmentaires s'affichent. Ces enregistrement sont les enfants de
l'enregistrement parent slectionn. Ce mode de visualisation permet d'avoir une vue d'ensemble plus large sur les
donnes et les relations entre deux tables. Ce mode s'apparente celui des formulaires sous-formulaires.
Si une table est le parent de deux autres tables, Access vous demande dans une boite de dialogue, lorsque vous
cliquez sur le signe "plus", de quelle table enfant vous voulez voir les enregistrements.

5. Cration des requtes


Une requte permet de poser une question sur les donnes stockes dans les tables ou d'accomplir une
action sur ces donnes. Il existe diffrents types de requtes: les requtes slection ( filtre, paramtres,
analyse croise, champs calculs, oprations) et les requtes actions (ajout, suppression, mise jour,
cration de tables).
Les requtes filtres extraient les donnes dune ou plusieurs tables et affichent les rsultats (un
sous-ensemble denregistrements) dans une feuille de donnes dans laquelles les donnes peuvent tre
modifies.
Les requtes paramtres affichent une bote de dialogue demandant lutilisateur des informations,
donnes, valeurs, ncessaires lextraction des donnes dsires.
Les requtes analyse croise affichent des valeurs calcules (somme, compte, moyenne) dun champ dune
table, et les regroupent selon un champ commun class verticalement dans la premire colonne de la feuille
de donnes et un autre champ class horizontalement dans la premire ligne.
Les requtes champs calculs affichent dans leur feuille de donnes un champ nouveau dont le contenu
est le rsultat de calculs (pas uniquement numriques) effectus partir dautres champs.
Les requtes oprations regroupent des enregistrements selon un critre commun et calculent des sommes,
comptes, moyennes et autres types d'oprations.
Les requtes actions modifient les donnes de plusieurs enregistrements en une seule opration. Elles
permettent de supprimer des enregistrements d'une ou plusieurs tables, d'en ajouter, d'en mettre jour, de
crer une nouvelle table.

5.1. Les requtes de type slection


Les requtes de type slection posent des questions sur les donnes stockes dans les tables et renvoient
une feuille de rponses dynamique sans modifier les donnes. Une fois la feuille de rponses dynamique
affiche, on peut examiner et modifier les donnes. Toute modification sera galement enregistre dans les
tables sources.

5.1.1. Les requtes filtre

Cours Access

18 sur 40

des premiers rles dune requte est de rassembler des champs slectionns dans plusieurs tables.
Ensuite, ce type de requtes consiste filtrer les enregistrements qui satisfont un critre prdfini. Pour
crire ces critres, il suffit de se familiariser avec quelques symboles ou oprateurs dont certains sont
peut-tre connus: <, >, *, [ ], Et (And), Ou (Or), Comme (Like), ... (Voir la fin de la partie sur les requtes
pour un tableau rcapitulatif des symboles et oprateurs intressants.)
Quand on tape des critres dans plusieurs cellules, Access les combine au moyen de l'oprateur Et (And)
ou Ou (Or). Si les expressions occupent des cellules diffrentes mais dans la mme ligne, Access utilise
l'oprateur Et (And). Si des expressions ne se trouvent pas dans la mme ligne de la grille d'interrogation,
Access utilise l'oprateur Ou (Or)
Rq " Van Hamme " ou " Rosinski " : Requte slection, tables Tomes et Sries.
Comme premier exemple, on construit une requte qui rassemble la liste de tous les albums auxquels le
scnariste Van Hamme ou le dessinateur Rosinski ont particip, ensemble, ou indpendamment.
Pour crer cette requte, on clique sur lobjet Requtes (Queries), puis sur Nouvelle (New). Les requtes de
cette base seront cres partir du mode cration (Design View). Les tables utiliser sont Tomes et
Sries. Les champs utiliser sont [Code Tome], [N Tome], [Titre Tome], [Scnariste], [Dessinateur], et le
champ [Srie] de la table Sries. En appuyant sur le bouton feuille de donnes, on remarque que la relation
entre les deux tables est bien comprise par la requte (le champ [Code Srie] est remplac par le nom
complet de la [Srie]). On retourne au mode Cration pour saisir nos critres. Sur la ligne Critres (Criteria),
on entre Van Hamme dans le champ [Scnariste] et Rosinski dans le champ [Dessinateur]. Ds que lon
quitte une cellule, des guillemets se positionnent autours des critres. En mode feuille de donnes, on
dcouvre les albums Thorgal produit par les deux artistes. Pour obtenir les albums produits par lun ou
par lautre, il faut entrer le premier critre sur la ligne Critres (Criteria) et le second sur la ligne Ou (Or). En
mode feuille de donnes, on redcouvre les albums Thorgal auxquels s'ajoutent les albums Largo
Winch et XIII . On peut utiliser les oprateurs Et (And) et Ou (Or) pour gnrer des critres plus
pousss.
Lors de la fermeture de la requte, on lenregistre sous le nom Rq " Van Hamme " ou " Rosinsky " .
Rq Age dArgent (1955-1970): Requte slection, tables Tomes et Sries.
Les critres ne sont pas rservs au type texte. La requte suivante les utilise sur un champ de type
Date/Heure. Cette requte extrait tous les albums parus entre 1955 et 1970.
Pour crer cette requte, on clique sur Nouvelle (New), puis sur Cration (Design View). Les tables utiliser
sont Tomes et Sries. Les champs utiliser sont [Code Tome], [N Tome], [Titre Tome], [Scnariste],
[Dessinateur], [Date Parution], et le champ [Srie] de la table Sries. Il faut extraire les albums parus aprs
le 1/1/1955 mais avant le 1/1/1970 (2 critres). Le multi-critre agit cette fois sur le mme champ. On utilise
loprateur Et (And) sous la forme <1/1/1970 Et (And) >=1/1/1955. Des caractres dises apparaissent
lorsquon quitte la cellule : <#01/01/1970# Et (And) >=#01/01/1955#. En demandant le tri croissant (Sort :
Ascending) sur le champ [Date Parution], la requte affiche ces tomes dans lordre chronologique de leur
parution.
Il est possible que les dates figurant en salle Renaissance ou sur d'autres machines que vous utiliserez
soient les dates au format amricain. Ceux-ci inversent le jour et le mois. Ainsi, le 12/10/1999 doit alors tre
interprt comme le 10 dcembre et non le 12 octobre. Cela ne cause pas de problme lors du passage
d'une machine l'autre, Windows interprtant automatiquement la date de manire correcte, ou la
corrigeant mme lors de l'encodage.

5.1.2. Les requtes paramtres (requtes paramtre)


Les requtes paramtre, qui ne constituent pas un type de requte diffrent, optimisent la souplesse
d'emploi des autres requtes en vous demandant de modifier certains critres chaque fois que vous
excutez la requte.
Rq Tomes en *** : Requte slection, tables Tomes et Sries
On commence par construire une requte qui permet de retrouver tous les albums qui contiennent le mot
"chat".
Pour crer cette requte, on clique sur Nouvelle (New), puis sur Cration (Design View). Les tables utiliser
sont Tomes et Sries. Les champs utiliser sont [Code Tome], [N Tome], [Titre Tome], [Scnariste],
[Dessinateur], et le champ [Srie] de la table Sries. Sur la ligne Critres (Criteria), dans la champ [Titre], on

Cours Access

19 sur 40

entre le critre chat (les guillemets apparaissent automatiquement). Le mode feuille de donnes naffiche
aucun enregistrement, car aucun album ne sappelle Chat .
Pour prciser que chat nest quun mot du titre, on utilise lastrisque qui remplace nimporte quel
caractre. Le nouveau critre est *chat* (la machine affiche Like *chat*). Le rsultat en mode feuille de
donnes est un ensemble dalbums contenant le mot chat .
Pour automatiser cette recherche avec un mot-cl quelconque sans chaque fois modifier le critre de la
requte en mode modification, on remplace le critre par Like *&[Entrez le mot cl]&*. Le champ [Entrez le
mot-cl !] est un champ inconnu pour Access. Access demande alors une valeur pour ce paramtre
lutilisateur. Chaque nouvelle ouverture de cette requte permettra dentrer un nouveau mot-cl.
En fermant la requte, on la sauve sous le nom Rq Tomes en ***

5.1.3. Les requtes avec champs calculs


Les champs extraits dune requtes ne se limitent pas aux champs des tables. Il est possible den
" calculer " dautres partir de ceux existant. La syntaxe utiliser pour le nom du champ calcul consiste
entrer un nom pour le nouveau champ, suivi dun double point, suivi de la formule de calcul. Les noms de
champs dans le calcul doivent apparatre entre crochets.
Rq ventes mois: Requte slection, tables Tomes, Ventes, Clients.
Nous cherchons construire le listing des ventes des 31 derniers jours. La machine construira ce listing en
cherchant les albums dont la diffrence entre la date de vente et la date actuelle est infrieure 31 jours.
Cette diffrence est un champ que la machine peut calculer.
Pour crer cette requte, on clique sur Nouvelle (New), puis sur Cration (Design View). Les tables utiliser
sont Tomes, Sries, et Clients (en prvision dun prochain tat). Les champs utiliser sont [Titre Tome], [N
Tome], [Nom Client], [Prnom Client], et [Date Vente]. On y cre un champ supplmentaire appel [nb
jours] indiquant le nombre de jours qui se sont couls depuis la vente de lalbum. Ce champ est un champ
calcul selon la formule nb jours : Date( )-[Date Vente]. Lexpression Date( ) est une fonction indiquant la
date courante (dj utilise dans la table Ventes) et changeant de jour en jour. [Date Vente] est la valeur
entre dans le champ [Date Vente]. Ainsi, Date( )-[Date Vente] reprsente le nombre de jours couls
depuis les ventes. Sous ce champ, sur la ligne Critres (Criteria), on saisit <31, ne laissant plus figurer que
les ventes dsires dans la feuille de donnes.
Si aucune nouvelle vente na t encode durant les 31 jours prcdant lutilisation actuelle de la base de
donnes, cette requte se trouvera tout naturellement vide denregistrements. En fermant la requte, on la
sauve sous le nom Rq ventes mois .

5.1.4. Les requtes opration


Les requtes Opration permettent de raliser un certain nombre de calculs sur tous ou partie des
enregistrements. On peut par exemple regrouper les tomes dune mme srie, faire des sommes, des
moyennes, des comptes, extraire la premire ou dernire valeur du groupe, ... Le bouton Oprations
(Totals) est celui comportant un symbole de sommation

Rq Compte Tomes par Srie: Requte Opration, base sur les tables Sries et Tomes.
Nous cherchons les sries durables , cest dire celles qui ont vu paratre un grand nombre de tomes.
Pour cela, Access devra calculer le nombre de tomes parus dans chaque srie.
Pour crer cette requte, on clique sur Nouvelle (New), puis sur Cration (Design View). Les tables utiliser
sont Tomes et Sries. Les champs faire apparatre sont [Srie] et [N Tome]. On clique sur le bouton
Oprations (Totals). Lopration par dfaut est le Regroupement (Group By). On dsire le Regroupement
pour la [Srie], mais le Compte (Count) pour le [N Tome]. On en profite pour voir les autres oprations :
Somme (Sum), Moyenne (Avg), Minimum (Min), Maximum (Max), En passant en mode feuille de
donnes, on vrifie que les 250 enregistrements sont regroups en 31 sries avec chaque fois le nombre
dalbums parus dans la srie.
En fermant la requte, on la sauve sous le nom Rq Compte Tomes par Srie

Cours Access

20 sur 40

5.2. Les requtes de type action


Cette catgorie de requtes comprend les requtes Ajout (Append Query), Suppression
(Delete Query), Cration de table (Make-Table Query) et Mise jour (Update Query).
Les requtes Suppression et Mise jour modifient les donnes existantes ; les
requtes Ajout et Cration de table dplacent les donnes existantes.

5.2.1. Les requtes Mise A Jour (Update Query)


Access permet d'augmenter les prix de 5% pour tous les albums au moyen dune simple requte de type
action.
Rq Inflation: Requte action, Mise A Jour, base sur la table Tomes.
Pour crer cette requte, on clique sur Nouvelle (New), puis sur Cration (Design View). La table utiliser
est la table Tomes. Les champs faire apparatre sont [Code Tome] et [Prix]. Pour modifier le type de
requte (Query Type) on droule la liste sous le bouton reprsentant deux feuilles de donnes superposes.
On choisit le type Mise A Jour (Update Query). Dans le champ [Prix], sur la ligne Mise A Jour (Update To),
on entre la formule de mise jour : [Prix] + [Prix] * 0.05 (le prix de dpart plus 5% de ce prix). La requte
agit lorsquon appuie sur le bouton Excuter (Run) symbolis par un point dexclamation. Un message nous
avertit que les donnes vont tre modifies. On confirme. On vrifie en mode feuille de donnes que les prix
ont t mis jour. Notons que cette requte ne doit tre utilise quune fois par an sous risque de voir les
prix rapidement fausss! A cet effet, nous avons construit la requte "Rq Inflation (Annuler)" qui effectue
l'opration inverse
En fermant la requte, on la sauve sous le nom "Rq Inflation".

5.3. Les autres requtes


A ce stade, on ferme <08-9eArt-t.mdb> et on ouvre <08-9eArt-trr.mdb>. Ce fichier est complet au niveau
des tables et des requtes, ce qui permet aux tudiants perdus ou en retard de se remettre jour.
On ne cre donc pas les requtes qui suivent, mais on peut les visiter. Leur cration tant semblable un
des types de requtes rencontr ci-dessus, on ne les dcrit que trs brivement.
Rq Tomes " Les ... " : Requte slection, tables Tomes et Sries.
Cette requte affiche tous les tomes dont le titre commence par " Les ". Le critre entr sur la ligne
" Critres " de la requte, sous le champ [Titres], est Comme "Les *" (Like "Les *"). Loprateur Comme
(Like) trie les titres semblables ce qui suit entre guillemets. Lastrisque remplace nimporte quels
caractres; elle sert de carte Joker Le champ [Srie] de la table Sries permet de retrouver les sries
dont sont tirs les albums slectionns.
Rq Ventes par Clients: Requte regroupement utilise comme source de ltat correspondant.
Rq Catalogue des Editeurs: Requte regroupement utilise comme source de ltat correspondant.
Rq Prix Moyen Srie: Requte Opration, base sur les tables Sries et Tomes.
Le premier effet de la requte est dextraire les tomes dont un prix est affich (certains albums ne sont pas
entirement encods, ou leur prix est laiss l'apprciation du vendeur) en entrant comme critre pour le
prix lexpression Est Pas Null (Is Not Null). Ensuite, les oprations sont le regroupement (Group By) sur
le champ [Srie], la moyenne (Avg) sur le champ [Prix], le compte (Count) sur le champ [N Tome].
Rq Editeurs: Requte slection, base sur la table Editeurs.
Elle contient les champs [Editeur] et [Code Editeur]. Elle na pas dintrt direct, mais est utilise comme
liste modifiable dans le formulaire " Encodage Sries ".
Rq Sries: Requte slection, base sur la table Sries.
Elle contient les champs [Srie] et [Code Srie]. Elle na pas dintrt direct, mais est utilise comme liste
modifiable dans le formulaire " Encodage Tomes ".
Rq Tomes: Requte slection, base sur les tables Sries et Tomes.
Elle contient les champs [Srie], [NTome], [Titre Tome] et [Code Tome]. Elle na pas dintrt direct, mais
est utilise comme liste modifiable dans le formulaire " Encodage Ventes ".

Cours Access

21 sur 40

Le tableau ci-dessous reprend les syntaxes principales utilises dans les critres de requtes.
Like "S*"

Fournit tous les enregistrements pour lesquels le champ commence par S.

Like "*Imports"

Fournit tous les enregistrements pour lesquels le champ termine par le mot
"Imports".

Like "[A-D]*"

Fournit tous les enregistrements pour lesquels le champ commence par une
lettre entre A et D.

Like "*ar*"

Fournit tous les enregistrements pour lesquels le champ contient la


squence "ar".

Like "Acc?"

Fournit tous les enregistrements pour lesquels le champ commence par


"Acc" et pour lesquels la quatrime et dernire lettre est inconnue.

Like
[forms]![NomForm]![NomChamp]

Fournit tous les enregistrements pour lesquels le champ est identique au


champ "NomChamp" du formulaire "NomForm".

< 100

Fournit tous les enregistrements pour lesquels le champ contient une valeur
numrique infrieure 100.

< 1/1/2000

Fournit tous les enregistrements pour lesquels le champ contient une date
antrieure au 1/1/2000.

A And B

Fournit tous les enregistrements pour lesquels le champs satisfait le critre A


et le critre B.

A Or B

Fournit tous les enregistrements pour lesquels le champs satisfait le critre A


ou le critre B.

A Xor B

Fournit tous les enregistrements pour lesquels le champs satisfait le critre A


ou le critre B de manire exclusive.

Null

Fournit tous les enregistrements pour lesquels le champs est vide.

Is not null

Fournit tous les enregistrements pour lesquels le champs n'est pas vide.

6. Cration de formulaires
Maintenant que les donnes sont encodes et que des outils pour les analyser et modifier ont t crs, on
va faciliter le travail de gestion de lutilisateur grce aux formulaires. On dsire prsent faciliter lencodage
et soigner la prsentation des donnes. En exemple, on va faire en sorte que la couverture des albums soit
visible sur une fiche reprenant ses caractristiques. En termes techniques, la transformation de
<08-9eArt-trr.mdb> va consister crer des formulaires, puis au cours suivant, y ajouter des macros.
Il existe diffrents types de formulaires. Parmi les types principaux, on retiendra les formulaires colonnes,
les formulaires tabulaires, les formulaires sous-formulaires, les formulaires graphiques, les formulaires
tables pivots, les formulaires indpendants.
Les formulaires colonnes affichent les valeurs des champs les unes sous les autres, un enregistrement la
fois.
Les formulaires tabulaires affichent les donnes telles que dans une table: les champs en colonnes, les
enregistrements en lignes. La prsentation des donnes est plus soigne que dans les tables.
Les formulaires sous formulaires sont composs d'un formulaire principal contenant les enregistrements
parents d'une relation "un plusieurs", et d'un sous-formulaire contenant les enregistrements enfants de
cette relation.
Les formulaires graphiques affichent les donnes sous formes de graphiques varis.
Les formulaires tables pivots font les calculs que vous dsirez, tels que la somme et le compte, bass sur la
manire dont les donnes sont arranges dans le formulaire. Par exemple, un formulaire table pivot peut
afficher les valeurs d'un champ horizontalement ou verticalement, et ensuite calculer le total de la ligne ou de
la colonne.
Les formulaires indpendants ne contiennent pas de donnes provenant des tables et requtes. Ils
permettent l'utilisateur de se guider dans la base de donnes, ou d'entrer des paramtres ncessaires aux
fonctionnements des objets de la base.

Cours Access

22 sur 40

6.1. Cration de formulaires classiques


Encodage clients: Colonne simple, table Clients.

Pour crer un nouveau formulaire, il faut avant tout cliquer sur lobjet des formulaires, puis sur le bouton
Nouveau (New). Regardons d'abord les diffrents Assistants disponibles. On choisit ensuite lAssistant
Formulaire (Form Wizard). La table utiliser est la table Clients. Tous les champs sont faire apparatre.
Les champs apparatront en colonne (Columnar). Pour ce qui est du style, le choix est libre. Notons
toutefois qu'un style est compos d'une image de fond. Une image de fond est soit encastre, soit lie au
formulaire. Dans le cas de l'encastrement, la taille de la base de donne augmente en fonction de la taille
de l'image. Dans le cas du lien, la base de donne garde sa taille d'origine, mais l'image lie doit suivre la
base de donnes lors de tous ses dplacements (disquette, autre PC, ). Cette distinction se fait dans la
proprit Type d'Image (Picture Type) du formulaire: Encastre (Embedded) ou Lie (Linked).
Lintrt dun tel formulaire est un encodage ais : il suffit datteindre la fiche vierge (5e bouton en bas du
formulaire)
et de saisir les nouvelles donnes.
Acheteurs dun tome: Tabulaire, requte Rq Ventes.

Les formulaires tabulaires prsentent les donnes sous forme de tableaux, comme dans les tables, mais
avec une mise en forme choisie par le concepteur. On va par exemple afficher le listing de tous les achats
avec le code de lalbum et les coordonnes de lacheteur. Ce formulaire sera utilis par la suite, lors de la
cration du formulaire des tomes (Il permettra de voir tous les acheteurs d'un tome choisi).
Pour crer ce formulaire, on clique sur le bouton Nouveau (New). On choisit lAssistant Formulaire (Form
Wizard). La requte utiliser est la requte Ventes. Les champs utiliser sont [Code Tome], [Nom Client],
[Prnom Client] et [Tlphone]. Les donnes sont trier par vente. Les champs apparatront en tableau
(Tabular). Pour le style, le choix est libre. Une fois le formulaire cr, on le personnalise partir du mode
cration (modification des couleurs, polices, largeur des zones de texte, ).
Encodage sries: Colonne simple.

Cours Access

23 sur 40

Ce formulaire permettra dencoder les renseignements concernant une nouvelle srie. Le formulaire
contiendra une liste modifiable pour encoder lditeur. Le contenu de cette liste est le contenu de la requte
" Rq Editeurs ". Ainsi, il ne faudra pas entrer le code de lditeur soi-mme (le code tant la seule
information disponible dans la table des sries, et ces codes n'tant pas toujours facilement mmorisables),
mais simplement cliquer sur le bon nom dans la liste (issue de la table des diteurs). Grce aux relations, la
machine identifie correctement l'diteur partir de son code.
Pour crer ce formulaire, on clique sur le bouton Nouveau (New). On choisit lAssistant Formulaire (Form
Wizard). La table utiliser est la table Sries. Tous les champs sont utiliser. Les champs apparatront en
colonne (Columnar). Une fois le formulaire cr, on le personnalise partir du mode cration (dplacement
de la zone de texte [description] et de son tiquette).
Pour obtenir la liste modifiable (Combo Box), on supprime la zone de texte [Code Editeur] et on la remplace
par une liste modifiable. Pour une construction assiste, il faut dabord avoir enfonc l'outil reprsentant la
baguette magique (outil Assistant Outils). Nous dtaillons plus loins les quelques outils de la boite outils.

A la premire tape de lAssistant, on prcise que les donnes proviennent (dune table ou) dune requte.
A la deuxime tape, on prcise quil sagit de la requte rq diteurs . A la troisime tape, on
slectionne tous les champs. A la quatrime tape, on prcise le tri sur ces champs. A la cinquime tape,
on dtermine la largeur de chaque colonne. A la sixime tape, on indique que le champ [Code Editeur]
identifie de manire unique la donne mmoriser (les autres colonnes ne sont donc prsentes que pour
informer l'utilisateur). A la dernire tape, on prcise que le champ stockant linformation est le champ
[Code Editeur] de la table Sries. On termine en modifiant ltiquette de la liste modifiable.

6.2. Cration de formulaires sous-formulaire


Lintrt dune base de donnes relationnelle consiste en ses relations. Il est possible de construire des
formulaires qui matrialisent ces relations. Il est possible de voir toutes les sries dun mme diteur sur la
fiche de lditeur, ou mme, comme on va le faire de suite, de voir tous les albums publis dans une mme
srie sur la fiche de la srie.

Cours Access

24 sur 40

On va voir comment se partagent les 250 albums entre les 31 sries. Pour crer ce formulaire, on clique sur
le bouton Nouveau (New). On choisit lAssistant Formulaire (Form Wizard). La table utiliser est la table
Sries. Tous les champs sont utiliser. On en profite pour ajouter la table Tomes et tous ses champs (sauf
peut-tre le champ [Code Srie] qui ne serait qu'une rptition). Ayant choisis des champs issus de
plusieurs tables, l'tape suivante nous propose de construire un formulaire sous formulaire, ou un
formulaire li un autre formulaire. On choisit la premire option. Les tapes suivants concernent la mise
en forme de ces formulaires.
Un autre mthode de construction plus personnalise consiste crer le formulaire en 3 tapes:
A) Il faut construire les fiches des sries. B) Il faut crer le listing de tous les tomes. C) Il faut incorporer ce
dernier formulaire dans le prcdent. Cest toujours le champ [Code Srie], lien entre les tables Sries et
Tomes, qui permet dafficher les tomes appropris.
Notons que le formulaire Tomes dune Srie figurant dans la base de donnes <08-9eArt.mdb> contient
une liste modifiable permettant datteindre lenregistrement dsir. La construction de la liste modifiable se
fait ainsi:
- A la premire tape de l'assistant on prcise que l'on doit atteindre un enregistrement du formulaire bas
sur la valeur qui sera slectionne dans la liste modifiable.
- A la deuxime tape on prcise que les champs utiliser sont le code srie et la srie.
- A la troisime tape on prcise la largeur des colonnes.
- La quatrime tape nous demande un nom pour l'tiquette (disons [Choix Code Srie]).
Encodage ventes: Colonne simple, table Ventes.

Cours Access

25 sur 40

Ce formulaire sera le formulaire de travail de lutilisateur. Pour encoder une nouvelle vente, il suffira de
suivre les instructions affiches dans les listes modifiables, savoir, choisir le client dans une premire liste
modifiable, choisir lalbum vendu dans une deuxime liste, vrifier que la date de vente est bien la date
actuelle, et confirmer la vente. La vente sera encode en faisant deux choix (le client et lalbum) et en
cliquant sur un bouton. En prime, le nombre dalbums de ce titre en stock sera automatiquement diminu
dune unit.
Pour crer ce formulaire, on clique sur le bouton Nouveau (New). On choisit lAssistant Formulaire Colonne
(Autoform Columnar). La table utiliser est la table Ventes. En mode formulaire, on constate quil faut
connatre les codes du client et de lalbum pour un nouvel encodage. On revient en mode cration pour
transformer ces deux zones de texte en listes modifiables (Combo Box). On supprime la zone [Code Client].
On cre une liste modifiable laide de lAssistant. (Le menu contextuel permet de "changer" une zone de
texte en une liste modifiable, mais les paramtres suivants doivent alors tre indiqus manuellement, ce qui
n'est pas ais.) A la premire tape de lAssistant, on prcise que les donnes proviennent dune table (ou
dune requte). A la deuxime tape, on prcise quil sagit de la table Clients . A la troisime tape, on
slectionne les champs [Nom Client], [Prnom Client] et [Code Client]. A la quatrime tape, on confirme
la machine quelle doit cacher la colonne Cl Primaire (Hide Key Column). On regarde quand mme leffet
produit si on refuse cette option. A la cinquime tape, on prcise que le champ stockant linformation est le
champ [Code Client]. On termine en changeant ltiquette de la liste modifiable par le texte Choisissez le
client dans cette liste .
On reproduit cette cration de liste modifiable pour le [Code Tome]. La procdure est identique. Il ne faut
pas choisir la table Clients, mais bien la requte Rq Tomes comme source des donnes. Ltiquette doit
tre modifie en consquence.
Lors de la leon portant sur les macros, on construira un bouton qui aura pour effet de passer la fiche
vierge de ce formulaire, et qui diminuera le stock de tomes dune unit. Cette macro nest pas faisable avec
lAssistant Bouton car elle contient plus dune action.

6.3. Les autres formulaires


On ferme <08-9eArt-trr.mdb> et on ouvre <08-9eArt-trrfm.mdb>. Ce fichier est complet au niveau des
tables, requtes et formulaires, ce qui permet aux tudiants perdus ou en retard de se remettre
jour. <08-9eArt-trrfm.mdb> contient en outre les macros ncessaires au bon fonctionnement de ces
formulaires. On crera des macros au prochain cours. La cration des formulaires suivants tant semblable
celle des formulaires rencontrs ci-dessus, ils ne sont dcrits que trs brivement.
Encodage tomes: Colonne simple.
Formulaire contenant les renseignements dun tome. Ce formulaire permet dencoder les nouveaux tomes.
La date de parution sera par dfaut, pour les nouveaux tomes, la date courante (constante =Date() ).
En lanant le mode formulaire, on voit apparatre la couverture (de quelques tomes seulement pour ne pas
trop alourdir la base de donnes) grce la liaison OLE (OLE Object). On peut modifier le format de lobjet
OLE en mode cration en tirant sur ses poignes. Pour l'insertion d'objets OLE (des images en particulier),
nous vous conseillons de les copier/coller partir d'un logiciel de lecture d'images. Attention, plus la taille de

Cours Access

26 sur 40

vos images sera petite, moins votre base de donnes sera lourde. Une image de 5Ko peut faire crotre la
taille de la base de donnes de 100Ko! C'est pour cela que nous n'avons insr qu'une dizaine de petites
images dans notre base.
Le formulaire contient une liste modifiable pour lencodage de la srie. Voici ses proprits.
Nom contrle..............

Code Srie

Cest sous ce nom que sera reconnu le contrle dans le formulaire.

Source contrle..........

Code Srie

On ne cre pas un nouveau contrle mais remplaons la zone de texte

Origine source............

Table/Requte

Le contenu de la liste existe dj sous forme de requte, ...

Contenu.....................

Rq Sries

... il sagit de la requte " Rq Sries ".

Nbre colonnes............

On dsire le nom et le code de la srie.

Colonne lie................

Seul le code de la srie (2e colonne) doit tre mmoris par ce contrle.

Ce formulaire contient une liste modifiable permettant datteindre un enregistrement spcifique. Voici ses
proprits.
Nom contrle........

Choix Code Tome

Source contrle....

Cest sous ce nom que sera reconnu le contrle dans la macro.


Le contrle nest pas un contrle dorigine de la table.

Origine source......

Table/Requte

Le contenu de la liste existe dj sous forme de requte, ...

Contenu...............

Rq Tomes

... il sagit de la requte " Rq Tomes ".

Nbre colonnes.......

On dsire le nom de la srie, les n , titres et codes du tome.

Largeur colonnes...

0cm;2cm; 0,5cm;3cm

Colonne lie..........

Seul le code du tome (1e colonne) doit tre mmoris par ce contrle.

Aprs MAJ...........

Trouver.Tome

Choisir un tome a pour effet de lancer la macro Trouver.

Ce formulaire contient aussi un bouton de commande ouvrant le formulaire " Acheteur dun tome " indiquant
la personne qui a achet lalbum considr. Les proprits principales de ce bouton de commande sont les
suivantes:
Nom contrle.......

Acheteurs

Lgende...............

Acheteurs de ce
tome

Lgende qui figurera sur le bouton.

Sur pression........

Ouvrir.acheteurs

Appuyer sur le bouton a pour effet dexcuter la macro Ouvrir.acheteurs.

Sries dun diteur: Formulaire Colonne, table Editeur.


Dans ce formulaire figurent les donnes concernant lditeur sous forme de colonne simple. On y insre le
sous-formulaire1 dans lequel sont listes les sries de cet diteur. Cest le champ [Code Editeur], lien entre
les tables Editeurs et Sries, qui permet dafficher les sries appropries dans le sous-formulaire.
Sous-formulaire1: Formulaire Tabulaire, table Srie.
Listing de toutes les sries. Insr comme sous-formulaire dans le formulaire " Sries dun diteur ".
Menu des Formulaires: Certains des formulaires mentionns ci-dessus ne sont pas destins tre ouverts
directement. Ce formulaire menu est un formulaire de prsentation ayant pour but de proposer douvrir les
formulaires intressants: deux de listings, quatre dencodage. Ce formulaire contient au total six boutons de
commande renvoyant la macro Ouvrir. Il est plus commode de ne pas crer de macro pour tous ces
boutons, mais dutiliser lAssistant Bouton, plus rapide et moins technique. Dans le cas o on cre les
macros, il faut prciser leur nom au niveau de la proprit sur Pression (On Click) de chacun des boutons.

6.4. Quelques proprits des contrles dans les formulaires


Nous terminons ce chapitre sur les formulaire par un tableau rcapitulatif des proprits les plus souvent
rencontres lors de la cration de contrles dans les formulaires. Nous avons essentiellement repris les
proprits des zones de textes et des listes modifiables.
Pour les zones de
textes

Signification

Cours Access

27 sur 40

Name

Nom du contrle

Control Source

Champ qui sert de source au contrle

Default Value

Valeur par dfaut du contrle

Visible

Le contrle doit-il tre visible (Yes/No)

Can Grow / Shrink

Le contrle peut-il agrandir/diminuer si son contenu est trop grand/petit (Yes/No)

Left / Top

Positionnement par rapport au bord gauche et suprieur du formulaire

Width / Weight

Largeur et paisseur du contrle

Back Style / Color

Style et couleur de fond

Border Style / Color /


Width

Style, couleur et paisseur de la bordure du contrle

Font Name / Size /


Weight

Nom, taille et paisseur de la police

After Update

Evenement effectuer aprs la mise jour du contrle

On Click / Dbl Click /


Enter

Evenement effectuer sur clic/double clic ou confirmation de la valeur

Pour les listes


modifiables

Signification

Row Source Type

Les donnes proviennent-elles d'une table? requte? Liste de mots?

Row Source

Nom de la table, de la requte ou liste de mots servant de source

Column Count

Nombre de colonnes

Column Width

Largeur des colonnes (diffrentes largeurs spares par des " ; ")

Bound Column

Numro de la colonne lie au contrle (une seule colonne est associe au contrle)

List Rows

Nombre de lignes dans la liste modifiable

6.5. Construction dun formulaire Menu


On commence en ouvrant <08-9eArt-trrf.mdb>. La transformation va consister crer les macros afin de rendre les
formulaires interactifs par la prsence de boutons, de listes modifiables, ...
Nous avons prcdemment ouvert le fichier <08-9eArt-trrfm.mdb> qui proposait un formulaire daccueil de couleur
rouge. Bien que les formulaires soient prsents dans <08-9eArt-trrf.mdb>, le formulaire rouge napparat pas car
son lancement automatique se fait grce la macro autoexec qui nexiste pas encore. Cest loccasion de faire un
rappel sur les formulaires en construisant ensemble ce formulaire rouge (ou du moins les tapes intressantes).

Ce formulaire est un formulaire de prsentation ayant pour but de faciliter le travail dencodage et de gestion du
vendeur. Il propose douvrir les formulaires intressants : deux de listings, quatre dencodage. Ce formulaire
contient au total six boutons de commande renvoyant la macro Ouvrir.

Cours Access

28 sur 40

Pour crer ce nouveau formulaire, il faut avant tout cliquer sur longlet des formulaires, puis sur le bouton Nouveau
(New). On choisit le mode cration (Design View). Dans le cas de ce formulaire, il ny a aucune table utiliser. Le
formulaire apparat directement en mode cration. Pour y placer un maximum de boutons, on clique et glisse (on
drague) sur les bord pour agrandir la surface grise.
On commence par modifier la couleur de fond du formulaire en en choisissant une partir de l'outil reprsentant un
pot de peinture. Pour une image de fond, il faut choisir la proprit image (picture) du formulaire. (Les proprits du
formulaire, pas de ses objets, s'obtiennent en cliquant sur le carr gris dans le coins suprieur gauche du
formulaire.) Le bouton assistant de cette proprit (bouton cach reprsent par des points de suspension) lance
un explorateur qui permet d'aller chercher l'image voulue sur le disque. La proprit Type d'Image (Picture Type)
permet d'insrer (embedded) ou de lier (linked) l'image. (Cette dernire possibilit n'est pas active pour des
Liaisons OLE.) L'intrt de choisir de lier l'image est que son poids n'est pas comptabilis dans celui de la base de
donnes. Le travail ne sera donc pas trop lours. Toutefois, Access retient le chemin "absolu" de l'image. C'est dire
que l'image ne sera plus visible si l'on change son chemin dans l'arborescence du disque. Ceci est un risque dans
le cadre de notre travail puisque nous travaillons dj sur plusieurs disques (C, D, F, H). Nous dconseillons donc
le type d'image lie (linked) dans le cadre de votre travail.
Comme on va disposer des boutons sur ce formulaire, on cre une tiquette (label) qui propose lutilisateur un
petit texte informatif quant leur fonction. L'outil tiquette (label) est l'outil reprsentant le texte Aa . On clique
sur cet outil. On drague sur notre formulaire de sorte dessiner un rectangle, suffisamment grand pour quon
puisse y crire une phrase. On entre le texte Que voulez-vous faire? (on construit ici une version simplifie du
formulaire 1 :Menu ) et on confirme en appuyant sur Enter. Pour que le texte ressorte mieux, on modifie la
police, la taille, la couleur grce l'outil reprsentant un A sur un trait rouge, et on met ce texte en gras,
italique,
On passe ensuite la construction dun bouton. On vrifie que l'outil Assistant (Control Wizards) de la barre doutil
(Toolbar) est enfonc. On clique sur l'outil reprsentant un bouton (Command Button). On drague sur le formulaire
de sorte dessiner un rectangle, suffisamment grand pour que Lutilisateur nait pas de peine cliquer dessus.

Ce bouton aura comme fonction douvrir le formulaire des clients. Laction choisir appartient donc la catgorie
Oprations sur les Formulaires (Form Operations) et sappelle Ouvrir Formulaire (Open Form). A ltape suivante,
on prcise que le formulaire ouvrir est Encodage Clients. A ltape suivante, on prcise lAssistant que le
formulaire souvrira en proposant toutes les donnes. A ltape suivante, on choisit de remplacer limage sur le
bouton par le texte Formulaire dencodage des clients . A la dernire tape, on conserve le nom de bouton
propos par la machine.
Nous en profitons pour dcrire les quelques outils intressants de la boite outils (toolbox). Nous les dcrivons
partir de la disposition "horizontale" de la bote. Le premier bouton est le pointeur qui permet de slectionner les
objets. Le second est celui qui active l'assistant de cration des outils.
Sur la premire ligne d'outils proprement parler:
- Outil tiquette
- Outil zone de texte
- Groupe d'options: regroupe sous un mme contrle (pour un mme champ) diffrents outils (par exemple des
boutons d'options)
- Bouton poussoir: utiles par exemple pour des champs de type Oui/Non
- Bouton d'options: utiles par exemple pour des champs de type Oui/Non ou dans un groupe d'options
- Case cocher: utiles par exemple pour des champs de type Oui/Non
- Liste modifiable
- Liste de choix: Liste modifiable affichant tous moments plusieurs lignes de choix
- Bouton
Sur la deuxime ligne d'outils
- Picture: pour insrer une image fixe sur le formulaire
- Cadre d'objet indpendant: pour insrer une image ou un objet fixe sur le formulaire
- Cadre d'objet dpendant: pour insrer une image ou un objet dpendant d'un champ de type Liaison OLE
- Saut de page
- Onglets: utile si de nombreux contrles doivent tre affichs sur un espace limit, ou regroups par thmes
- Sous-Formulaire ou Sous-Etat
- Ligne
- Rectangle
- d'autres contrles ...

Cours Access

29 sur 40

On passe en mode formulaire et on vrifie lefficacit du bouton en cliquant dessus. On ferme le formulaire
Encodage Clients et on repasse au mode cration de notre formulaire de menu. Les tudiants construisent
seuls un bouton ayant pour fonction douvrir le formulaire Encodage Ventes . En quittant le formulaire, on
lenregistre sous le nom Menu .

7. Construction des macros


Laction qui consiste ouvrir chaque formulaire partir du formulaire "Menu" est mmorise par la base de
donnes sous forme dun module. Un module est un des objets dAccess. Cet objet est trs technique, et fait appel
des notions de programmation. Il est donc difficile, notre niveau, de modifier une action enregistre sous forme
de module.
Un de ces boutons ouvre le formulaire Encodage Ventes au premier enregistrement. Mais pour encoder une
nouvelle vente, lutilisateur doit atteindre une fiche vierge. On dsire plutt produire deux actions de manire
automatique: dabord ouvrir le formulaire, puis atteindre la fiche vierge. LAssistant Bouton ne nous le permet pas.
Les macros le permettent.
Une macro est une liste d'instructions cres dans le but d'excuter automatiquement certaines tches. Chaque
instruction s'appelle une action. Lorsquon excute la macro, Access ralise les actions, dans la squence indique,
en utilisant les objets et les donnes spcifis en tant qu'arguments des actions. Les macros servent automatiser
les tches rptitives et enrichir les possibilits de la base de donnes. Contrairement aux modules, il nest pas
ncessaire de savoir programmer pour crer une macro.

7.1. La macro Ouvrir Encodage Ventes


Pour crer une nouvelle macro, il faut avant tout cliquer sur longlet des macros, puis sur le bouton Nouvelle (New).
Deux colonnes apparaissent.

Dans la colonne de gauche, on inscrira les actions. Il ne faut pas connatre toutes les actions de mmoire
puisquelles sont accessibles partir dun menu droulant. Dans la colonne de droite on inscrira une description
afin de se souvenir des buts de la macro. Sous les deux colonnes, on introduira les arguments de chaque action.
Les arguments fournir varient en fonction de chaque action. La plupart dentre eux sont aussi accessibles partir
dun menu droulant.
L'outil contenant xyz au dessus de deux carrs est l'outil Nom de Macro (Macro Name) qui permet de regrouper
plusieurs macros sous un mme nom gnral, en les diffrenciant par un "sous-nom" (une sorte de prnom ;
chaque prnom dtermine une sous-macro ). La macro Trouver est base sur ce principe : elle contient
deux sous-macros: "Trouver.Tome" et "Trouver.Serie" qui sont deux macros bases sur le mme principe, mais
appliques deux objets diffrents. L'outil reprsentant un petit organigramme est l'outil Conditions qui permet
lexcution ou non dune macro selon quune condition introduite est satisfaite ou non.
Dans la suite de ce document, on dcrit les actions des macros dans la colonne de gauche. Le texte droite de
laction nest pas la description de la macro, mais la liste des arguments. Il y a la version n'utiliser que sur la
version franaise d'Access, et la version n'utiliser que sur la version anglaise d'Access (Il existe des diffrences
de syntaxe d'une version l'autre).
La premire macro est constitue de deux actions dcrites ci-dessous. Elle ouvre donc le formulaire Encodage
Ventes sur une fiche vierge.
Action

Paramtres de l'action ( dterminer en bas gauche de la


fentre)

OuvrirFormulaire

Nom formulaire: Encodage Ventes

AtteindreEnregistrement

Atteindre: nouveau

Cours Access

30 sur 40

Action

Paramtres de l'action ( dterminer en bas gauche de la


fentre)

OpenForm

Form Name: Encodage Ventes

GoToRecord

Record: new

En fermant la macro, on l'enregistre sous le nom "Ouvrir Encodage Ventes".


Il faut a prsent ouvrir le formulaire Menu et y remplacer laction construite l'aide de lAssistant par cette
nouvelle macro. Dans le formulaire Menu ouvert en mode Cration, on fait apparatre les proprits du bouton
qui permet douvrir notre formulaire Encodage Ventes . La proprit Sur Pression (On Click) contient la
mention [Event Procedure] (il s'agit de l'action que nous avons prcdement construite l'aide de l'assistant
bouton). En faisant apparatre le menu droulant dvoilant la liste des macros, on remplace la mention [Event
Procedure] par Ouvrir Encodage Ventes . Un test en mode formulaire permet de vrifier que le formulaire
Encodage Ventes souvre effectivement sur une fiche vierge.

7.2. La macro Fermer


On cre un bouton sur le formulaire Menu qui fermera ce mme formulaire.
La mthode dcrite ci-dessus consiste crer la macro, puis le bouton, et affecter la macro au bouton. La mthode
dcrite maintenant consiste crer le bouton et y construire directement la macro partir dun gnrateur
dexpression.
On dsactive l'outil Assistant Outil (Control Wizards) de la barre doutils (Toolbar). On dessine un nouveau bouton
et on fait apparatre ses proprits. On clique sur la proprit Sur Pression (On Click), puis sur le bouton du
gnrateur dexpression (bouton avec points de suspension). On appelle le Gnrateur de Macro (Macro Builder).
Le nom de la macro sera Fermer Menu . La seule action dans ce cas-ci sera Fermer (Close). Lobjet (Object
Type) fermer est un formulaire (Form). Son nom (Object Name) est Menu .
Action
Fermer

Action
Close

Paramtres de l'action ( dterminer en bas gauche de la fentre)


type objet: Formulaire
nom objet: Menu

Paramtres de l'action ( dterminer en bas gauche de la fentre)


Object type: Form
Object name: Menu

7.3. La macro Autoexec


Lors de louverture de la base de donnes, le formulaire 1 : Menu souvre automatiquement. Ceci se produit
grce la macro Autoexec . Le nom de cette macro est un nom rserv. Lors de louverture de la base de
donnes, Access excute, si elle existe, la macro Autoexec.
Action
OuvrirFormulaire

Action
OpenForm

Paramtres de l'action ( dterminer en bas gauche de la fentre)


Nom formulaire: 1:Menu

Paramtres de l'action ( dterminer en bas gauche de la fentre)


Form name: 1:Menu

Lautre macro dont le nom est rserv est la macro AutoKeys qui affecte une touche ou un jeu de touches des
macros prdfinies.
Quand la premire action excuter n'est que l'affichage d'un formulaire, on peut l'effectuer l'aide du menu
Outils/Dmarrage/AfficherFormulaire (Tools/Startup/DisplayForm), en choisissant dans la zone Display Form le

Cours Access

31 sur 40

formulaire afficher automatiquement.

7.4. Les autres macros


A ce stade, on ferme <08-9eArt-trrf.mdb> et on ouvre <08-9eArt-trrfm.mdb>. Ce fichier est complet au niveau des
tables, requtes, formulaires et macros, ce qui permet aux tudiants perdus ou en retard de se remettre
jour. On ne cre pas les macros qui suivent, mais on peut les visiter et/ou vrifier leur action. Leur cration tant
semblable une des macros rencontres ci-dessus, on ne les dcrit que trs brivement.

7.4.1. La macro Ouvrir


Ouvre le formulaire demand dans le formulaire " 1:Menu des Formulaires ", ou dans le formulaire " Encodage
Tomes ". Une macro peut contenir plusieurs sous-macros. Les sept sous-macros de la macro Ouvrir sont
" acheteurs ", " sries dun ", " tomes dune ", " encod sr ", " encod tom ", " encod cli ", et " encod ach ". Voici les
actions et arguments des macros " Ouvrir.acheteurs ", " Ouvrir.sries dun " et " Ouvrir.encod sr ".
Ouvrir.acheteurs: Ouvre le formulaire " Acheteurs dun Tome " partir du formulaire " Encodage Tomes ", mais ne
montre que les acheteurs du tome courant grce la Condition Where.
Action
OpenForm

Paramtres de l'action ( dterminer en bas gauche de la fentre)


Form Name: Acheteurs dun Tome
Condition Where: [Code Tome] = Forms ! [Encodage Tomes] ! [Code
Tome]

Ce dernier argument signifie que le formulaire ouvrir ne doit afficher que les enregistrements dont la valeur du
champ [Code Tome] correspond la valeur du champ [Code Tome] dans le formulaire principal qui est " Encodage
Tomes " (not "Forms ! [Encodage Tomes] ! [Code Tome]").
Ouvrir.sries dun: Ouvre le listing des sries dun diteur quelconque
Action
OpenForm

Paramtres de l'action ( dterminer en bas gauche de la fentre)


Form Name: Sries dun Editeur

La macro " Tomes dune " est semblable cette macro.


Ouvrir.encod sr: Ouvre le formulaire dencodage des sries lenregistrement vierge, le dernier.
Action

Paramtres de l'action ( dterminer en bas gauche de la fentre)

OpenForm

Form Name: Encodage Sries

GoToRecord

Record: new

Les macros " encod tom " et "encod cli " sont semblables cette macro.

7.5. Les actions les plus usuelles


Vous trouverez dans le tableau ci-dessous un bref descriptif des actions de macros les plus souvent utilises.
Close

Ferme l'objet en cours.

Cours Access

32 sur 40

FindRecord

Trouve le premier enregistrement qui correspond au critre de


recherche spcifi.

GoToRecord

Atteint un enregistrement spcifi.

GoToControl

Atteint le contrle ou le champ spcifi de l'enregistrement


courant.

Maximize/Minimize Agrandit ou rduit la fentre de l'objet en cours.


OpenForm

Ouvre le formulaire spcifi.

OpenQuery

Ouvre et excute la requte spcifie.

OpenReport

Ouvre l'tat spcifi.

OpenTable

Ouvre la table spcifie.

RunApp

Excute la ligne de commande spcifie, par exemple pour


ouvrir le logiciel Excel.

RunMacro

Excute la macro spcifie.

Save

Sauve l'objet en cours.

SetValue

Dfinit une valeur spcifie pour le contrle spcifi.

...

...

8. Cration dtats
Un tat est un objet de base de donnes Access qui prsente des informations mises en forme et organises selon
nos spcifications, par exemple des rcapitulatifs de ventes, des listes de numros de tlphone ou des tiquettes
pour publipostage. Les tats de la base de donnes "9e Art" sont tous crs laide des Assistants. Ils sont ensuite
modifis afin d'tre personnaliss. Par exemple, on enlve la date en anglais qui se trouve en bas de chaque page,
on joue sur les proprits "Can Grow/Can Shrink" des contrle, on amliore l'ergonomie de la page,...
Il existe diffrents types d'tats: les tats colonnes, les tats tableaux, les tats graphiques, les tats de
publipostage, les tats de regroupement.
Les tats colonnes affichent les valeurs des champs les unes sous les autres, un enregistrement la fois.
Les tats tabulaires affichent les donnes telles que dans une table: les champs en colonnes, les
enregistrements en lignes.
Les tats graphiques affichent les donnes sous formes de graphiques varis.
Les tats de publipostage permettent l'impression des donnes sur des tiquettes autocollantes ou sur des
enveloppes.
Les tats anciennement appels de regroupement sont des tats tabulaires pour lesquels sont calculs pour
certains groupes de donnes des sommes, moyennes, comptes, Les rponses donnes aux questions de
l'Assistant amnent la distinction entre tat tabulaire et tat de regroupement.

8.1. Les tats publipostages


Etat Etiquettes: bas sur la table Clients.

Cours Access

33 sur 40

Nous allons crer un tat qui permet d'imprimer des tiquettes portant le nom et l'adresse de clients.
Pour crer un nouvel tat, il faut avant tout cliquer sur longlet des tats, puis sur le bouton Nouveau (New). La
premire fois que lon cre un tat, on peut visiter les diffrents Assistants disponibles. On choisit lAssistant
Etiquettes (Label Wizard). La table utiliser est la table Clients. La premire tape suivante consiste choisir le
type dtiquettes utilises. Mais les types ne correspondent pas toujours aux tiquettes disponibles dans le
commerce. Une bonne mthode consiste rechercher dans la liste propose le type le plus proche des tiquettes
possdes, puis, au final, de modifier manuellement les paramtres de longueur et largeur obtenus par lAssistant.
Ltape suivante nest quune question de mise en forme. Ltape suivante consiste en la composition du texte de
ltiquette : les champs apparaissent dans la zone de gauche, et le reste du texte est entrer partir du clavier.
Voici un exemple de composition :
Vous trouverez dans ce colis les albums que vous
avez commands.
{Prnom Client} {Nom Client}
{Adresse No} {Adresse Rue}
{Adresse CP} {Adresse Commune}
Le tri (Sort) se fera sur le nom du client. Ltat est sauv sous le nom Etat Etiquettes .
Aprs un premier aperu du rsultat, on passe en mode cration afin de personnaliser le rsultat. On peut par
exemple allonger ou rtrcir la longueur et la largeur de ltiquette en draguant le long des bords de la surface. On
peut dlimiter les bords des tiquettes au moyen dune bordure. On appelle pour cela loutil Rectangle. Le rectangle
dessin voile le contenu de ltiquette. Il faut modifier la proprit Style de Fond (Back Style) en choisissant
Transparent. Il est toujours possible de modifier le format des caractres de chacune des zones de texte (en
mettant par exemple le texte introductif en italique et les coordonnes en gras).
Notez que cet tat affiche (et donc imprime) des tiquettes pour tous les clients, ce qui n'est pas trs raliste. Pour
n'afficher l'tiquette que d'un client spcifique, nous avons l'Etat Etiquettes Parametre, bas sur la requte "Rq
Etiquettes Parametre". Lors de l'ouverture de l'tat, il suffit de prciser le nom du client pour lequel l'tiquette doit
tre imprime (ou par exemple saisir "a*" pour avoir tous les clients dont le nom commence par a).

8.2. Les tats de regroupements


LAssistant Etat (Report Wizard) sert organiser les donnes en groupes. On peut calculer la somme de chaque
groupe et celle de tous les groupes.
Etat Ventes du mois: bas sur la requte "Rq Ventes Mois".

Cours Access

34 sur 40

Cet tat indique les albums vendus pendant le mois. On se base sur la requte Rq Ventes Mois traduite sous
forme dtat.
Pour crer cet tat, on clique sur le bouton Nouveau (New). On choisit lAssistant tat (Report Wizard). La requte
utiliser est la requte Rq Ventes du Mois . Tous les champs sont utiliser. Les donnes sont trier par date de
vente. Il nest pas ncessaire dajouter dautres niveaux de regroupement (grouping level). Il nest pas ncessaire
de trier les donnes sur un des champs restants (mais on peut). La suite nest quune question de mise en forme.
Lorsque lAssistant demande des niveaux de regroupement, il est possible de prciser le type de regroupement
dsir. Par exemple, les dates/heures peuvent tre regroupes par jour, par semaine, par mois, par trimestre, ...
Lorsque lAssistant demande un tri dans un groupe, il est possible dajouter des oprations de regroupement dans
ce groupe. Ces oprations sont la somme, la moyenne, le minimum, le maximum.
Une fois ltat cr, on le personnalise partir du mode cration (modification des couleurs, polices, largeur des
zones de texte,...). Cela est ncessaire puisque, par exemple, les tiquettes den-tte sont trop larges pour que le
texte sinscrive en entier. On change aussi le titre de ltat par un titre plus explicite quant sa fonction. Lorsque un
album est rpt plusieurs fois de suite, ses donnes ne saffichent quune fois. Par exemple, pour le champ [N
Tome],
2
1

devient

1
1
2

1
3

ce qui n'a pas de sens. Il faut donc modifier les proprits des champs [N Tome], [Titre Tome] et [Nb Exemplaires]
(mais pas [Srie] sinon le regroupement devient inutile). La proprit Cacher les Doublons (Hide Duplicates) doit
recevoir la valeur Non (No).

8.3. Les autres tats


A ce stade, on ferme <08-9eArt-trrfm.mdb> et on ouvre <08-9eArt.mdb>. Ce fichier contient la base de donnes
complte. On ne cre pas les tats qui suivent. Leur cration tant semblable une des macros rencontres
ci-dessus, on ne les dcrit que trs brivement.
Etat Ventes par clients: bas sur la requte Rq Ventes par clients.

Cours Access

35 sur 40

On trie cette fois les ventes en les regroupant par client. Les deux contrles [Nom Client] et [Prnom Client] sont
rendus invisibles et remplacs par une zone de texte dont la source est lexpression =[Nom Client] & ", " &
[Prnom Client]. Il s'agit d'une concatnation de deux champs, avec une virgule et un espace entre le nom et le
prnom : les noms de champs sont entre crochets, les textes invariants sont entre guillemets, et le symbole "&" est
utilis comme oprateur de concatnation.
Dans les sous-groupes, les tomes sont tris selon la srie, puis le numro du tome.
Dans le pied de groupe [Nom Client], la formule =Compte([N Tome]) (=Count([N Tome])) calcule le nombre
dachats par client. Pour expliquer ce compte, la source de la zone de texte du pied de groupe reoit lexpression
="Nombre d'achats pour "&[Prnom Client]&" "&[Nom Client]&":" (cette expression peut tre obtenue laide
du gnrateur dexpressions; le symbole "=" doit cependant tre mis manuellement).
Etat Catalogue des Editeurs: bas sur la requte "Rq Catalogue des Editeurs".

Les enregistrements sont regroups selon lditeur, puis selon la srie. Le tri se fait ensuite sur le champ [NTome].
Comme pour les formulaires prcdents, les modifications du formulaire ne concernent que la mise en forme des
contrles: position, longueur, bordure, police, concatnation de champs, ...

9. L'outil de compactage Access


Pour des performances optimales, vous devez compacter et rparer rgulirement les bases de donnes Access.
Faites cela par exemple lorsque vous avez fini de construire un objet, ou chaque fois que vous fermez votre base
de donnes. Dans le menu Outils, pointez sur Utilitaires de base de donnes, puis cliquez sur Compacter et
Rparer une base de donnes (Tools/Database Utilities/Compact And Repair Database).
Vous serez peut-tre surpris de la place mmoire rcupre aprs un compactage. Mais Access ne supprime rien
de votre travail, et ne fait que librer de l'espace mmoire inutilis aprs la cration de vos objets. Rien n'est donc
perdu.

Cours Access

36 sur 40

Notez aussi que cette mthode a comme avantage de garder "lisible" la base de donnes; il est inutile de
"dcompacter" celle-ci. Il ne s'agit pas d'un compactage classique au sens o on ne cre pas un nouveau fichier
appel "archive" (comme avec les logiciels de compactage, tel Winzip).

10. Les F.A.Q. (Frequently Asked Questions, La Foire Aux Questions)


1. question: Comment se dfinit une relation de type "un plusieurs"? Que signifient les expressions "table
parent" et "table enfant"?
solution:

A un enregistrement de la table parent correspondent


plusieurs enregistrements dans la table enfant. Voici
une simulation la cl primaire de la table parent est le
"code parent" et la cl primaire de la table enfant est
le "code enfant". Le champ commun dans les deux
tables est le "code parent". La relation s'tablit en
cliquant de gauche droite (dans ce cas-ci), de "code
parent" vers "code parent"

2. question: Quelle est cette notion "d'Intgrit rfrentielle"? Pourquoi ne vois-je pas les "1" et les "infinis" sur ma
relation?
solution:

Pour voir les "1" et les "infinis", il faut appliquer


l'intgrit rfrentielle. On bnficie alors de ses
avantages, mais ceux-ci s'avrent parfois, surtout au
dbut, des inconvnients: Access empche alors
a. d'ajouter de nouveaux enregistrements dans
une table relie pour laquelle il n'existe pas
d'enregistrement "parent",
b. de procder la modification de valeurs dans
une table source qui entranerait des
enregistrements "orphelins" dans une table
relie,
c. de supprimer des enregistrements d'une table
source dans le cas o il existe des
enregistrements "enfants" correspondants.

3. question: Comment supprimer ces tables non dsires qui apparaissent dans les relations l'ouverture de la
fentre des relations ou des requtes?
solution: Cliquer sur la table et appuyer sur Delete n'est pas suffisant; la table rapparat l'ouverture suivante.
Pour la supprimer dfinitivement, il faut, dans la fentre des relations, d'abord supprimer toutes les
relations impliquant cette table (cliquer bien prcisment sur le lien), puis la table concerne.

4. question: Pourquoi dois-je me contenter d'un "mini-encodage" aprs la cration de mes tables? N'est-il pas
plus efficace d'encoder directement toutes les donnes?
solution: Lorsque les tables et les relations sont cres, on encode une douzaine d'enregistrements par table.
Aprs le "mini-encodage", on cre les requtes, formulaires et tats. Un petit nombre
d'enregistrement permettra de vrifier " l'oeil" s'ils fournissent les bons rsultats. Si les rsultats ne
sont pas ceux attendus, cela peut tre d une erreur de structure des tables, o un encodage
erron. Il est alors encore temps de passer aux modifications. Les autres enregistrements seront
encods ultrieurement dans les formulaires. Un encodage termin sur une structure revoir et
modifier signifie beaucoup d'heures de perdues.

Cours Access

37 sur 40

5. question: Pour sauvegarder rgulirement mes donnes, je dois donc cliquer sur l'outil "enregistrement"
reprsent par une disquette?
problme: Sous la plupart des logiciels, le bouton disquette permet de sauvegarder le fichier dans l'tat o il se
trouve.
solution:

Sous Access, la sauvegarde des informations encodes se fait lorsqu'on passe d'un champ un
autre. Il est donc inutile de cliquer sur ce bouton lors de l'encodage. Par contre, il permet de
sauvegarder les requtes, formulaires et tats tout moment de leur cration ou de leur
modification.

6. question: J'ai supprim des enregistrements. Il y a donc un "trou" dans la suite des nombres de mon champ
autonumber. Comment mettre jour ces valeurs?
solution: Il est n'est pas possible de "combler ce trou" sous Access. Cela n'est pas gnant puisque les champs
de type autonumber s'emploient exclusivement pour des codes cls primaires, et que ces codes ne
doivent pas tres visibles par l'utilisateur. Il est toutefois possible de rectifier la suite de nombres
l'aide d'un export vers Excel.

7. question: Mon critre de requte est une longue expression. Comment le voir en entier sans donner une
largeur dmesure la cellule?
solution: Il existe un outil trs simple, le zoom, pour voir le contenu d'une cellule de requte, de table, de
formulaire, ... On l'obtient en faisant MAJ+F2 (Appuyez sur la touche F2 tout en maintenant la touche
de majuscules enfonce.)

8. question: Je teste une requte avec un critre simple, bien choisi pour me fournir des rsultats. Pourquoi la
requte me donne-t-elle alors 0 rsultat?
solution: La cause est trs frquemment une simple faute d'orthographe, soit dans le critre, soit dans
l'encodage des donnes. Vrifiez les mots au pluriel, l'orthographe des noms propres, tapez bien 1
espace entre deux mots et non 2, ... Il est mme arriv qu'une requte fournisse 0 rsultat car les
tudiants n'avaient encore rien encod...

9. question: Pourquoi ma requte multitable ne me donne-t-elle pas tous les rsultats attendus, ou mme pas de
rsultat?
problme: Lorsque l'on cre une requte portant sur deux tables lies par une relation de un plusieurs, il
arrive que tous les enregistrements de la table parent n'apparaissent pas.
solution:

La premire chose vrifier est l'orthographe (cf rponse ci-dessus).


Vrifiez aussi que le lien soit bien tabli entre deux champs communs (pas une date avec un
nom par exemple).
Peut-tre le "mini encodage" n'tait-il pas suffisant. Y-a-t'il assez d'enregistrements dans la
table parent? Et dans la table enfant?
Par dfaut, Access n'affiche que les enregistrements parents qui ont un quivalent dans la
table enfant. Pour afficher tous les parents, mme ceux sans enfant, il faut faire appel la
proprit de jonction (Join Properties) en double-cliquant sur la relation et en appuyant sur le
bouton Type de joint... (Joint Type...). Dans la boite affiche, vous slectionnez la deuxime
option (la troisime option pour afficher plutt les enregistrements enfants ET les orphelins).

Cours Access

38 sur 40

10. question: A l'inverse de la question prcdente, pourquoi ma requte multitable me donne-t-elle plus de
rsultats que ceux attendus?
problme: Il arrive parfois qu'une requte donne plus de rsultats que ceux attendus. On reconnat qu'il y a
une erreur en dcouvrant des enregistrements absurdes.
solution:

Il y a beaucoup de probabilits que les tables de la requte ne soient pas lies. Access combine
alors tous les enregistrements de la premire par tous les enregistrements de la seconde. Pour
corriger cet effet, ajouter, le cas chant, dans la requte toutes les tables intermdiaires entre les
tables lies. S'il n'existe pas de lien direct entre les tables, pous pouvez toujours crer un lien
temporaire dans la requte, mais cette solution est peu conseille.

11. question: Pourquoi mon formulaire ne reconnat-il plus la requte qui contient ses donnes? Pourquoi mon
sous-formulaire est-il remplac par un rectangle blanc?
problme: Le formulaire retient comme "source" le nom de la requte ou de la table qui contient les donnes.
Si vous changez le nom de la requte ou de la table, le formulaire ne fait pas automatiquement le
changement de source. Il ne retrouve plus les donnes afficher, et affiche soit un message
d'erreur, soit un cadre blanc.
solution:

Choisissez au plus tt les noms de vos


tables, champs, requtes, formulaires, ...
et n'en changez pas. Si vous tes oblig
de les changer, n'oubliez pas de modifier
la proprit "source" dans tous les
formulaires, tats ou macros qui utilisent
cette requte.

12. question: Comment faire apparatre un menu de dmarrage l'ouverture de la base de donnes?
solution:

La macro autoexec se lance l'ouverture de la base de donnes. Crez donc une macro
autoexec qui aura pour action d'ouvrir le formulaire de dmarrage de votre choix.
Une autre possibilit est d'utiliser la commande dmarrage du menu outils (Tools/Startup).
Dans la bote de dialogue, demandez d'afficher (Display Form) le formulaire de votre choix.

Cours Access

39 sur 40

13. question: Ma base de donne est trop lourde pour une disquette. Comment la transporter?

problme: Les bases de donnes, pour peu qu'elles contiennent quelques images, voient leur taille se
compter en mga-octets plutt qu'en kilo-octets. Mais une disquette ne peut transporter que 1440
kilo-octets (1.38Mo).
solution:
La premire chose faire est de compacter la base de donnes avec le compacteur interne
d'Access. Utilisez le menu Outils/Utilitaires de la base de donnes/Compacter et Rparer la
base de donnes (Tools/Database Utilities/Compact and Repair Database). Cette mthode
a comme avantage de garder "lisible" la base de donnes; il est inutile de "dcompacter"
celle-ci. La seule chose que l'utilitaire fait est en quelque sorte de supprimer des espaces
blancs, des espaces de travail devenus inutiles aprs cration de vos objets. Il ne s'agit pas
d'un compactage classique au sens o on ne cre pas un nouveau fichier appel "archive"
(comme avec les logiciels de compactage).
Si ce rsultat n'est pas suffisant, il faut employer un logiciel de compactage externe
Access. Ceux utiliss en salles Renaissance sont WinZip et RAR1.55. Grce eux, il est
possible de dcouper le fichier en diffrentes archives afin de faire tenir le travail sur
plusieurs disquettes. Pour l'utilisation de ces logiciels, rfrez-vous aux notes de cours sur
Windows sur le serveur des salles informatiques ou sur notre site web
(www.ulb.ac.be/soco/matsch/info-d-203).
Les ordinateurs des salles Renaissance 1 et 2 sont quips de ports USB ( l'arrire) et de
graveurs. Avec une cl USB ou un CD rinscriptible (ou un paquet de CDs
non-rinscriptibles) la taille de fichiers ne devrait plus tre un problme.

14. question: Comment faire lorsque rien ne sort de l'imprimante?


problme: Vous avez envoy un document l'imprimante, et rien ne se passe...
solution:

La bonne rponse est de chercher pourquoi rien ne s'est pass et rsoudre le problme. La
mauvaise rponse est de relancer l'impression en esprant que cela marche. Certains
utilisateurs continuent d'envoyer leur travaux en esprant qu'ils seront finalement imprims.
Le rsulat est plutt gnant quand quelqu'un rsout finalement le problme (imprimante
teinte, bourrage papier, cable dbranch, ...) et regarde 20 versions du mme travail
s'imprimer.

Cours Access

40 sur 40

En salle Renaissance, il est possible aussi que votre travail soit imprim sur une imprimante
d'une autre salle. Pour contrler votre impression, ne cliquez pas sur le bouton reprsentant
l'imprimante, mais passer par les menus: Fichier/Imprimer (File/Print), et choissisez
l'imprimante de votre salle.

Vous aimerez peut-être aussi