Vous êtes sur la page 1sur 109

Universit de Corse, Pasquale PAOLI

Paul-Antoine Bisgambiglia,

IUT GB

bisgambiglia@univ-corse.fr
http://www.ent-montecristo.org/paulantoine2.bisgambiglia/

Support de Cours & TD

Anne 2008 - 2009

Access*

Gestionnaire de base de donnes relationnelle de Microsoft, intgr dans la suite Office.

Logiciel de la socit Microsoft

ACCESS

BASES DE DONNEES - INTRODUCTION

QU'EST-CE QU'UNE BASE DE DONNEES ?

UTILITE D'UNE BASE DE DONNEES ?

LA GESTION DES BASES DE DONNEES

LES PRINCIPAUX SGBD

ACCESS

INTRODUCTION

LE CLASSEMENT - TRI

FILTRAGE DES ENREGISTREMENTS

VOCABULAIRE: ENREGISTREMENTS ET CHAMPS

10

QUELS CHAMPS DEVONS NOUS CREER?

10

BASE DE DONNEE ACCESS

11

LES TABLES

13

LES FORMATS DE CHAMPS SOUS ACCESS

13

CREATION D'UNE TABLE ACCESS SIMPLE

14

LA CLE PRIMAIRE

16

DEPLACEMENTS, NOUVEAUX ENREGISTREMENTS

17

LE CHAMP CLASSEMENT

17

LES REQUETES

19

CREATION D'UNE "REQUETE TRI" SOUS ACCESS

19

TRIS MULTIPLES

20

UN FILTRE SUIVANT LE CONTENU

20

CHAMP VIDE.

21

LES AUTRES CRITERES DES REQUETES ACCESS

22

QUESTIONS, FILTRES PERSONNALISES

22

MULTI-CRITERES.

24

FORMULAIRE

26

UN FORMULAIRE DE BASE.

26

FORMULAIRES ACCESS PERSONNALISES.

28

SELECTIONS DE LA TABLE OU REQUETE.

29

INSERER UN TITRE

30

INSERER UNE IMAGE OU UN LOGO DANS NOTRE FORMULAIRE.

31

BASE DE DONNEE RELATIONNELLE

32

REQUETE RELATIONNELLE SOUS ACCESS

32

BASE DE DONNEE RELATIONNELLE ACCESS PAR UN FORMULAIRE

34

ETAT ET IMPRESSION

38

CREATION D'UN ETAT DE BASE

38

ETATS SPECIFIQUES.

41

UTILISATION DES REGROUPEMENTS.

41

CREATION D'UN ETAT VIA UNE REQUETE.

41

PERSONNALISATION D'ETATS ACCESS

42

MACRO

43

UN MENU DE DEPART.

43

AFFICHER LE FORMULAIRE AU DEMARRAGE D'ACCESS.

44

TABLE AVANCEE: PROPRIETE DES CHAMPS

47

PROPRIETES DES CHAMPS ACCESS

47

LE FORMAT D'UN CHAMP.

47

MASQUE DE SAISIE

50

VALIDE SI.

51

MESSAGE SI ERREUR

52

NULL INTERDIT

52

CHAINE VIDE AUTORISEE.

52

INDEXE.

52

COMPRESSION UNICODE.

53

EXEMPLE DE CONTRAINTES D'UN CHAMP

53

CHAMP TEXTE

53

CHAMP ACCESS NUMERIQUE

53

CHAMP ACCESS DE TYPE DATE

53

QUELQUES REMARQUES

54

EXEMPLE :

55

CREATION DE LA TABLE

55

LES REQUETES, FORMULAIRE ET ETAT, UTILISATION DE LA BASE DE DONNEES.

57

MENU D'ENTREE

64

LISTE DE CHOIX

66

LISTE DE CHOIX PAR VALEURS SOUHAITEES.

66

PROPRIETES DES LISTES DE CHOIX

68

LISTE DE CHOIX PAR TABLE

69

LISTE DE CHOIX PAR REQUETE DE REGROUPEMENT.

70

CREATION DE MACRO

72

QU'EST CE QU'UNE MACRO?

72

NOTRE PREMIERE MACRO

72

MACRO D'OUVERTURE ET FERMETURE.

73

OUVRIR UNE TABLE: OUVRIRTABLE

74

OUVRIR UN ETAT: OUVRIRETAT

74

FERMER

74

MACRO DE RECHERCHE

75

MACRO DE DEPLACEMENT

75

QUELQUES MACROS SPECIALES

76

ACTUALISER.

76

TRANSFERER EN EXCEL (IMPORTER OU EXPORTER)

76

SELECTIONNER OBJET

77

EXEMPLES DE MACRO.

77

MACRO OUVRANT UN FORMULAIRE ET FERMANT LE FORMULAIRE PRECEDANT.

77

L'IMPRESSION D'UN ETAT AVEC RETOUR AU FORMULAIRE DE DEPART.

78

LA BARRE D'OUTILS MACRO.

78

NOM DE LA MACRO.

79

CONDITION

80

POUR TERMINER

81

CHAMPS CALCULES

82

CHAMP CALCULE DANS UNE REQUETE

82

CHAMP ACCESS CALCULE DANS UN FORMULAIRE.

84

CHAMPS ACCESS UN ETAT.

86

TP N : BASE DE DONNEES

88

NOTIONS DE BASES : QU'EST-CE QU'UNE BASE DE DONNEES ?

88

EXERCICE 1 : ACCESS CREATION DE TABLE

89

ASTUCES :

94

CREATION D'UNE TABLE

94

LES TYPES DE DONNEES

95

PROPRIETES DES CHAMPS

97

CREATION DE LA CLE PRIMAIRE

99

DEFINITION DES RELATIONS ENTRE TABLES

100

CREATION DE FORMULAIRE

103

LES REQUETES

106

SOURCES

109

BasesdedonnesIntroduction
Qu'est-ce qu'une base de donnes ?
Une base de donnes (son abrviation est BD, en anglais DB, database) est une entit dans
laquelle il est possible de stocker des donnes de faon structure et avec le moins de
redondance possible. Ces donnes doivent pouvoir tre utilises par des programmes, par des
utilisateurs diffrents. Ainsi, la notion de base de donnes est gnralement couple celle de
rseau, afin de pouvoir mettre en commun ces informations, d'o le nom de base. On parle
gnralement de systme d'information pour dsigner toute la structure regroupant les moyens
mis en place pour pouvoir partager des donnes.

Une base de donnes est :


une collection de donnes relies les unes aux autres ;
une donne est un fait qui a t enregistr et qui possde un sens implicite.
Par exemple :
les noms, prnoms, adresses et tlphones de mes amis,
sont enregistrs dans mon carnet d'adresses.

Utilit d'une base de donnes ?


Une base de donnes permet de mettre des donnes la disposition d'utilisateurs pour une
consultation, une saisie ou bien une mise jour, tout en s'assurant des droits accords ces

derniers. Cela est d'autant plus utile que les donnes informatiques sont de plus en plus
nombreuses.
Une base de donnes peut tre locale, c'est--dire utilisable sur une machine par un utilisateur,
ou bien rpartie, c'est--dire que les informations sont stockes sur des machines distantes et
accessibles par rseau.
L'avantage majeur de l'utilisation de bases de donnes est la possibilit de pouvoir tre
accdes par plusieurs utilisateurs simultanment.

La gestion des bases de donnes


Afin de pouvoir contrler les donnes ainsi que les utilisateurs, le besoin d'un systme de
gestion s'est vite fait ressentir. La gestion de la base de donnes se fait grce un systme
appel SGBD (systme de gestion de bases de donnes) ou en anglais DBMS (Database
management system). Le SGBD est un ensemble de services (applications logicielles)
permettant de grer les bases de donnes, c'est--dire :
permettre l'accs aux donnes de faon simple
autoriser un accs aux informations de multiples utilisateurs
manipuler les donnes prsentes dans la base de donnes (insertion, suppression,
modification)

Le SGBD peut se dcomposer en trois sous-systmes :


le systme de gestion de fichiers : il permet le stockage des informations sur un support
physique
le SGBD interne : il gre l'ordonnancement des informations
le SGBD externe : il reprsente l'interface avec l'utilisateur
7

Les principaux SGBD


Les principaux systmes de gestion de bases de donnes sont les suivants :
Borland Paradox
Filemaker
IBM DB2
Ingres
Interbase
Microsoft SQL server
Microsoft Access
Microsoft FoxPro
Oracle
Sybase
MySQL
PostgreSQL
mSQL
SQL Server 11

Access
Introduction
Une base de donne permet de classer, trier et filtrer de larges quantits d'informations.
Chaque logiciel de gestion (comptabilit, gestion commerciale, stock, ...) est d'ailleurs une
base de donne. Vous pouvez galement le faire avec un tableur de type Excel. C'est en partie
vrai. Si vous tes un utilisateur avanc du tableur, certaines fonctions peuvent sembler
similaires. Nanmoins, les possibilits de Microsoft Access sont largement suprieures dans
ces domaines, surtout si vous utilisez de grandes quantits de donnes.
Pour dbuter notre formation Access, commenons par un petit lexique spcifique aux bases
de donnes.

Le classement - tri
Prenons par exemple un fichier d'adresse. Le tri va permettre de classer par ordre alphabtique
suivant le nom, prnom, ... Dans la majorit des bases de donnes, ces classements peuvent se
faire suivant diffrents niveaux. Par exemple
Nom
Prnom
code postal
...
Dans notre exemple, les personnes seront d'abord tries suivant le nom. Si deux personnes ont
le mme nom, le tri se fera alors suivant le prnom. Pour deux personnes homonymes, le
classement se fera ensuite suivant le code postal du lieu de rsidence, ...

Filtrage des enregistrements


La fonction de filtre des enregistrements permet de n'afficher que les enregistrements
rpondant des critres complexes. Dans le cas de notre fichier d'adresse, ceci permet par
exemple Access de n'afficher les hommes de plus de cinquante ans habitant Florenville.

Le type de filtre est trs efficace. Pour faire ces filtres, il vous faut imprativement crer des
champs adquats avec les bonnes donnes suivant la personnes. C'est la principale difficult
lorsque vous crez une base de donne Access: choisir correctement les champs.

Vocabulaire: enregistrements et champs


Les bases de donnes, notamment Access, sont caractrises par des enregistrements et des
champs. Dans le cas d'un carnet d'adresse, l'enregistrement reprsente les coordonnes de la
personne. Le champ, reprsente la case remplir, un renseignement repris dans une catgorie
pour chaque enregistrement. La cration d'une base de donne implique donc au pralable la
cration d'une structure en fonction des renseignements souhaits. Cette tape est de loin la
plus importante. De par leur conception, ajouter des champs alors que la base de donne et ses
diffrents modules d'analyse sont crs est fastidieux. Des exemples sont galement fournis
directement avec la base de donnes.

Quels champs devons nous crer?


Reprenons notre exemple d'un fichier d'adresse Access. Quelles sont les catgories de
renseignements que nous serions amens rechercher sachant que la fonction d'une base de
donne passe par le tri et le filtrage. Un autre critre va rentrer en ligne de compte, des
renseignements supplmentaires.
Nom: Ceci est d'abord un renseignement sur la personne mais va nous permettre de faire une
recherche sur une personne.
Prnom: Le critre est identique celui du nom. Pourrions-nous rassembler le nom et le
prnom? Oui et non. Prenons le cas d'utilisation de cette base de donne pour un mailing.
L'adresse de la personne reprend effectivement le nom et le prnom. Par contre, la phase type
en bas de la lettre reprend "Je vous prie d'agrer, Monsieur Lejeune, mes salutations
distingues." Remarquez tout de suite que le prnom n'est plus utilis. Pour des lettres
amicales, c'est le prnom qui est utilis.
L'adresse: reprend la rue et le numro de maison, bote postale. Dans l'adresse, le dbutant va
dcouper cette information en tranche. Est-ce ncessaire? Probablement non. Il est peu
probable que vous fassiez un tri ou un filtre sur la rue et moins encore sur le numro de
maison. Ce champ est indicatif.
Le code postal: ici aussi nous pourrions rassembler le code postal et la ville. Nanmoins,
dissocier les 2 va nous permettre diffrentes petites choses. La ville est spcifique et va nous
10

permettre de faire un tri. Par contre, du moins en Belgique et en France, le code postal va
permettre de trier non pas sur le domicile mais sur une zone d'habitation, typiquement sur la
commune en Belgique.
La ville: tri sur le domicile.
Le numro de tlphone, fax, GSM ... A moins de faire une recherche type annuaire inverse,
ces informations ne sont qu'indicatives.
Les informations professionnelles: On retrouve le nom de la socit, la fonction de la
personne et coordonnes de l'entreprise. Les rgles sont identiques que celles de l'adresse
prive.
D'autres renseignements seront rajouts suivant l'utilisation de cette base de donne Access
titre de renseignements comme la date de naissance (anniversaire), prnom de l'pouse poux, enfants, ...

Est-ce suffisant, non. Il nous manque quelques champs importants.

Le titre: Monsieur, Madame, Mademoiselle, ... Ce champ est important pour deux raisons.
D'abord parce qu'il est utilis dans le courrier (adresse et formule de politesse).
Deuximement, ce champ va nous permettre de dterminer le sexe de la personne. Un champ
supplmentaire pourrait galement tre utilis.
Des champs additionnels de tri. L'utilisation d'une base de donne Access permet d'afficher
les enregistrements suivant un filtrage. Pouvons nous utiliser certaines combinaisons de ce
filtrage? Oui. Prenons notre carnet d'adresse sous Access. On retrouvera dans ce carnet des
amis, connaissances, relations professionnelles, utilisateurs du cours, ... La solution habituelle
est de crer un carnet d'adresse informatique pour chaque catgorie de personnes. L'autre
possibilit est de crer une seule base de donnes et d'ajouter des cases cocher (oui ou non)
reprenant ces diffrentes catgories. Ceci nous permettra de cibler l'envoi de courrier suivant
le type de relation, par exemple tous les membres du club de sport

Base de donne Access


Maintenant que les explications prliminaires du cours sont acquises, intressons nous la
base de donne de Microsoft. Les onglets d'Access se subdivisent en 7 parties. Passons en
revue les principaux.

11

Dbutons par la table: elle reprend les informations brutes (non traites): les enregistrements
et les champs.
Une requte permet diverses mises en forme des tables: le tri, filtre, afficher ou nom des
donnes,
Un Formulaire permet d'afficher les tables et les requtes d'une manire agrable.
Un tat permet d'imprimer des donnes de tables et de requtes avec si ncessaire des
regroupements et des calculs. C'est bien l la grosse diffrence entre Excel et Access, les
calculs ne se font pas par de simples formules, mais bien par ces tats d'impression.
L'avantage, c'est qu'une fois que l'tat est fait, tout se fait automatiquement. Le dfaut, c'est de
faire ces tats. Nanmoins, pour de nombreux enregistrements (plus de 500), Excel est vite
dpass, limit de toute faon 65535 lignes par feuille.
Les macros permettent d'excuter des fonctions partir de requtes ou de formulaires. Nous
ne rentrerons pas dans la programmation d'ACCESS dans cette formation mais utiliserons ces
fonctions pour crer un formulaire d'entre.
Page: permet de crer des pages Internet pour accder la base de donnes

12

LesTables
Dbutons notre cours Access par les tables. Une table reprend les informations brutes (non
traites) d'une base de donne Access. Une base de donne Access peut comporter plusieurs
tables qui peuvent tre lies entre elles (base de donne relationnelle) ou totalement
indpendantes.

Aprs avoir dmarr Access, sous l'onglet TABLES, slectionnons la commande "Crer une
table en mode cration". La fentre suivante apparat:

La colonne champ reprend le nom du champ. Le type reprend des formats de donnes
prtablis.

Comme l'exercice de ce cours Access doit nous permettre de crer une base de donne de
gestion de CD-DVD, bibliothque, ... commenons directement par crer la table pour cette
exercice

Les formats de Champs sous Access

13

Mme si certains types de champs dpassent le cadre de ce cours Access, voyons les
principaux.
Texte: permet de crer un champ avec du texte et des chiffres mlangs. Vous ne pouvez pas
faire de calculs dans ce type de champs. La taille est limite 255 caractres
Mmo est quivalent TEXTE mais peut reprendre plus d'informations. Des limitations
d'affichage, notamment dans les tats rendent ce type de champ peu utilis. La taille
maximum est de 65.535 caractres.
Numrique. Ce format de champ permet de rentrer des chiffres sous diffrents formats.
Octet: nombre entiers de 0 255

Entier (2 octets): nombres entiers entre - 32 768 et + 32 767


Entiers long (4 octets): nombres entiers entre -2 147 483 648 et + 2 147 483 647
Rel simple (4 octets): 7 dcimales, nombres entre - 3,402 823 E 38 et + 3,402 823 E38
Rel double (12 octets): 28 chiffres derrire la virgule (dcimales), nombres entre 1,797 693
134 862 31 E308 et 1,797 693 134 862 31 E308
Montaire (4 octets): 4 dcimales, nombres entre -922 337 203 685 477,5808 et 922 337 203
685 477,5807
Date et heure
Montaire est identique numrique mais rajoute le caractre montaire. Gnralement, on
utilise directement numrique
Numro Auto permet Access d'incrmenter le numro chaque nouvel enregistrement.
Oui/non est de type boolen (vrai ou faux)
Lien hypertexte
Objet OLE: tous objet provenant d'une application compatible OLE, images, ...
Assistant liste de choix. permet de crer suivant une liste tape ou reprise dans une autre
table les diffrentes possibilits acceptes. Cette notion sera vue dans un chapitre part.
Les autres proprits des champs seront vues ultrieurement dans Proprits avances des
tables

Cration d'une table Access simple


14

Pour commencer l'exercice de ce tutorial, nous allons crer une simple table. Dans l'onglet
"TABLE", slectionnons "Crer une table en mode cration". En premier, crons un champ
dont le nom est classement. Ce champ va permettre de classer nos albums selon un numro
par exemple. Nous le laissons en mode texte. Compltons par les champs suivants:
champ texte "Titre album"
champ date "date de l'album"
champ texte "titre 1" pour le premier titre de l'album
champ texte "interprte 1".
champ date "date album"

Nous pourrions crer titre 2, interprte 2, et ainsi de suite mais nous verrons que de
meilleures possibilits existent.
Quittons par la croix droite sur la fentre et Access demande si nous voulons sauvegarder
notre table. Acceptons l'enregistrement et nommons cette table "Album".
Une nouvelle question apparat demandant une cl primaire. Cette cl n'est pas obligatoire
mais acclre le traitement des informations d'une base de donne sous Access.
Malheureusement, cette cl doit tre unique dans la table. Nous pourrions choisir classement,
mais ceci n'est pas possible si nous utilisons titre 2, A ce stade, slectionnons pas de cl
primaire.

Cliquons de nouveau sur album pour l'ouvrir et nous pouvons maintenant rentrer des donnes
dans les diffrents champs, des enregistrements qui sont dans notre cas des chansons.
Serait-il possible de scinder notre table en deux. Une partie serait rserv au contenu des
albums, l'autre l'en-tte (titre de l'album, ). OUI! Cette partie sera vue plus tard et
s'appelle une base de donne relationnelle.

15

Ceci va modifier notre table de dpart puisque nous allons pouvoir utiliser le classement
comme cl primaire, il n'y aura plus de risques de doublons. Modifions notre table et
supprimons les deux champs "titre1" et "interprete1". Pour cela, slectionnons la table album
et cliquons sur le bouton "Modifier". Slectionnons la ligne et appuyons sur la touche "del".

Slectionnez le champ"Classement" et avec la touche droite de la souris, faisons apparatre


le menu contextuel. Cliquons sur "cl primaire", en le laissant en type de donnes texte. Le
classement sera ds lors unique. Si notre classement devait tre en chiffre et fait
automatiquement, nous pouvions pour ce champ utiliser le type en deuxime colonne
"NumroAuto". Cette solution pose quelques problmes lors de la suppression
d'enregistrements.
Crons maintenant une deuxime table que nous appellerons "contenu" par la mme mthode
reprenant les champs classement, numro de piste, interprte et titre

Lorsque Access demande la cl primaire, cliquez sur OUI et un champ sera automatiquement
rajout de type numrotation automatique.
Nous voici donc avec 2 tables Access. Un chapitre suivant nous permettra de crer une base
de donne relationnelle en les reliant entre-elles via un champ de mme type (ici le champ
classement).

La cl primaire
Nous venons de voire deux manire d'utiliser la cl primaire dans ce cours. Cette notion est
secondaire dans de nombreux cas mais peut-tre particulirement utile. Lorsque vous crez
une nouvelle table, l'enregistrement, Access demande automatiquement si vous voulez crer
une cl primaire. A quoi sert cette cl? Elle va permettre d'acclrer certains traitements de
l'information
16

La premire possibilit est de laisser Access crer un champ spcifique qui va s'incrmenter
automatiquement suivant le numro.
La deuxime solution est d'utiliser un champ de la table Access comme cl primaire. Dans ce
cas le contenu de ce champ doit tre unique (deux enregistrements ne peuvent utiliser la
mme valeur pour ce champ). Cette solution est utilise dans ce cours pour notre table album.
En plus, Access indexe automatiquement par ordre croissant sur la cl primaire
Dans le premier cas, ce champ "cl primaire" n'est pas le numro de l'enregistrement mais
bien un nombre s'incrmentant chaque nouvel enregistrement. Par contre, si vous supprimez
un enregistrement, le champ n'est pas remis jour dans les enregistrements restants. Pour
redmarre la cl primaire 1, il faut donc supprimer le champ de la base de donne et en
recrer un champ de nom identique.

Dplacements, nouveaux enregistrements


Cliquons 2 fois sur le nom de la table cr, Access affiche le contenu sous forme de tableau
avec les enregistrements en ligne et les champs en colonne. En bas de la fentre, on retrouve
une petite barre d'outils de navigation.

Cette barre d'outils permet de se dplacer et d'insrer de nouveaux enregistrements. Dans


l'exemple ci-dessus, la table comporte 92 enregistrements et nous sommes sur le numro 19.
Attention, toute modification dans un champ est immdiatement pris en compte dans la base
de donne. Dans le cas d'un tableur, la modification n'est enregistre sur le disque dur qu'avec
la commande enregistrer du menu fichier.

Le champ classement
Nous allons rentrer des donnes dans cette table mais avant, quelques prcisions sur le champ
classement. Cette notion est identique pour le champ code article d'une gestion commerciale.
La majorit codent sur des chiffres. Ce n'est que rarement la solution idale. La manire dont
17

vous allez dcider de coder les CD dans l'exemple de ce tutorial Access ou le code du produit
dans une gestion commerciale va intervenir dans votre manire de rechercher l'information.
Dans notre base de donne musique, nous pouvons utiliser un codage de type XX-00000. Le
XX reprsentant les 2 lettres du type de musique , suivi de chiffre pour le numro du CD dans
cette catgorie. XX peut-tre par exemple DI (disco), AM (ambiance), ... Ca facilite souvent
le classement dans l'armoire. De mme, il est plus facile pour une picerie de classer suivant
le rayon du produit, suivi de la marque, .... Essayez pour le plaisir de retrouver suivant un
numro un article parmi 5 ou 6000 ....

18

Lesrequtes
Dans le chapitre prcdant de ce tutorial, nous avons vu la cration des tables qui permettent
de rentrer les donnes (les enregistrements) dans des champs dlimits. Ces tables ne
permettent pas de faire un tri ou un filtrage sur les enregistrements de la base de donne
Access. Cette fonction est dvolue en grande partie aux requtes. Une requte est lie une
(ou plusieurs) tables, elle reprend ses donnes et les organise. Rentrer un enregistrement dans
la requte ou dans la table revient donc strictement au mme.
Plusieurs types de requtes sont proposes par Access. Dans cette partie, nous nous
contenterons des requtes de tri et des requtes de filtres. Les autres types de requtes seront
vues dans une formation plus avance.
Ceci est une grosse diffrence avec Excel puisqu'un tableur permet directement de faire des
tris et des filtres comme vus dans le cours Excel: tri et filtre.

Cration d'une "requte tri" sous Access


Intressons nous d'abord la table "Contenu" cre dans le chapitre prcdant. Cliquons sur le
bouton requtes. et ensuite, crez une requte en mode cration. Access propose d'ajouter
une table, slectionnons "contenu" et une fois cette table ajoute, cliquons sur le bouton
"Fermer".

Nous avons 2 possibilits. Soit nous dplaons le champ slectionn vers le bas, soit nous
dplaons l'toile vers le bas. Malheureusement, la deuxime solution, plus rapide, ne nous
permet pas de travailler sur les champs. Nous devons donc dplacer tous les champs dans la
partie infrieure les uns aprs les autres (pour slectionner tous les enregistrements,
slectionnez les 2 extrmes avec la touche shift enfonce). Nous pouvons ngliger le champ
"N" qui n'est pour nous d'aucune utilit. Comme notre but est d'effectuer des tris et des filtres
sur notre table, examinons cette partie infrieure. En troisime ligne, apparat "Tri". Ceci offre
la possibilit en ordre croissant ou dcroissant. Faisons un tri en ordre croissant sur le
classement.

19

Quittons notre requte et enregistrons-l sous le nom "contenu par classement". Cette
requte nous a dj permis d'liminer des champs de l'affichage (n dans notre cas) et de faire
un trie suivant un champ (classement ici). Les requtes nous permettrons d'autres possibilits
plus tard.

A retenir: une requte Access permet de trier sur 1 ou plusieurs champs


ou de n'utiliser qu'une partie des champs.

Tris multiples
Nous savons maintenant comment trier une base de donne suivant le contenu d'un champ.
Mais comment trier suivant plusieurs champs?
La solution est simple. Vous avez remarqu en insrant les champs dans la cration de la
requte que vous pouviez finalement les mettre o vous voulez. Le tri se fait suivant l'ordre
des champs dans la fentre de requte.

Dans l'exemple ci-dessus, le tri se fera donc d'abord par ordre croissant sur le champ
"Classement", ensuite, dcroissant sur Plage.

Un filtre suivant le contenu


La deuxime fonctionnalit d'une base donne Access (comme toutes les bases de donnes)
est le filtre des informations. Nous reverrons cette notion de manire plus approfondie plus
tard mais voyons dj quelques exemples.

20

Tapons C42 dans la partie critre sous le champ classement. La requte n'affichera que les
enregistrements (nos CD - DVD) dont le classement (notre numro) est C42

Tapons cette fois fa*, Access rajoutera automatiquement comme"fa*. La requte n'affichera
plus que les enregistrements commenants par FA. Access, au contraire de Word en
publipostage, ne fait pas la distinction entre les minuscules et les majuscules.

Tapons maintenant comme critre *A* (Access rajoute comme "*a*). Le rsultat de la requte
affichera tous les enregistrements contenant a dans le champ "classement".
Pour accepter un seul caractre, vous pouvez utiliser le ?. Dans ce cas, il faudra taper
effectivement le comme "" pour accepter cette solution.
Dans l'exemple ci-dessous, le rsultat renvoy par la requte sera les champs commenant par
une lettre ou un chiffre, suivi de la lettre a (ou A), suivi de 2 caractres indiffrents, suivi du
chiffre 2, soit XaXX2. Dans notre exemple, les champs de plus (ou moins) de 5 lettres ne
seront pas affichs.

Vous pouvez galement utiliser la ligne OU pour utiliser plusieurs filtres

Champ vide.

21

Pour afficher uniquement les champs vide, il suffit de taper comme critre est null. Pour
afficher uniquement les enregistrements o le champ comporte quelque chose, le critre
inscrire est N'est pas null.

Les autres critres des requtes Access


>: suprieur
<: infrieur
<> diffrent de
>= suprieur ou gal
<= infrieur ou gal
= gal
D'autres solutions seront bientt vues mais a va dj nous permettre de complter notre base
de donne.

Questions, filtres personnaliss


Les solutions envisages plus haut sont fixes. Une fois la requte cre, vous devez changer la
requte pour modifier la recherche. La solution ici va permettre de poser une question sur la
recherche souhaite.
Crons une nouvelle requte en mode cration (pour les requtes, le mode assistant est peu
diffrent). Slectionnons la table contenu album.

Slectionnez le premier champ de la table Access,


descendez avec l'ascenseur et cliquez sur le dernier
champ en maintenant la touche <shift> enfonce. Ceci
va slectionner l'ensemble des champs. Glissons
l'ensemble vers la premire case "champ disponible.
Ceci va transfrer l'ensemble des champs vers la requte.

Supposons que nous dsirons retrouver tous les titres chants par un groupe ou chanteur. Dans
la solution envisage plus haut, nous devions crer une requte de type ="nom du chanteur".

22

Dans la case critre sous le champ interprte, tapons [Nom de l'interprte ou groupe]. Cette
mthode cr en fait un champs (non repris dans la table mais utilis par la base de donne
Access). Enregistrons notre requte sous le nom "Recherche d'interprte" et excutons-l:

Automatiquement, Access va afficher une petite fentre demandant le nom de l'interprte, en


fait, le contenu entre crochet []. Ce [contenu-champ] ne peux tre identique un champ
existant et ne peux dpasser 64 caractres.

Cette solution de filtre est dj beaucoup plus souple, mais oblige taper le nom de
l'interprte ou du groupe musical correctement. Serait-il possible de pouvoir taper une partie
du nom? Oui.

Tapons manuellement comme critre Comme "*"+[Nom de l'interprte ou du groupe]+"*".


Passons en mode feuille en cliquant sur en haut gauche dans la barre d'outils. Cette solution
permet de vrifier la requte sans l'enregistrer.
La base de donne Access posera la mme question, mais la requte affichera tous les
enregistrements dont le champ interprte contient le mot tap. Ceci est trs utile pour
retrouver un client dans une base de donne de gestion de stock par exemple.

23

Enregistrons notre requte.

Multi-critres.
La base de donne Access permet galement des requtes multi-critres. Comme la
majorit des logiciels, Access accepte la fonction ET et la fonction OU.
"critre" 1 ET "critre 2" ncessite que les 2 critres soit remplis.
"critre" 1 OU "critre 2" ncessite qu'au moins 1 des critre soit rempli.
Nous allons utiliser cette possibilit pour vrifier les albums sortie entre 2 dates.
Crons une requte en mode cration en utilisant la table album.
Comme critre, sous le champ date, tapons > 01/01/2003 et la ligne suivante: <01/01/2005.
Access rajoute automatiquement les caractres #. En essayant cette requte, tous les
enregistrements sont affichs ??? Forcment puisque la requte utilise la fonction OU (OR en
anglais). Nous devons utiliser une fonction ET. Supprimons les critres et tapons directement
>01/01/2001 ET <01/01/2005. Access rajoute automatiquement les caractres de contrles.

Et voil, la requte Access affiche effectivement les albums sortis entre le 1 janvier 2001 et le
1 janvier 2005.

24

Nous pouvons ici aussi poser la question. Le critre devient: >[date de dpart] Et <[date
finale]. De fait, la requte Access demande d'abord la date de dpart, ensuite la date finale
recherche.

25

Formulaire
Si vous avez rentr des enregistrements dans une table de la base de donne Access, vous
avez remarqu l'aspect tableur de type Excel des enregistrements. Les formulaires Access
vont nous permettre de faire un affichage personnalis de nos tables et requtes: mise en
forme des champs, mises en formes de quelques donnes, ... Le formulaire est le point central
d'Access pour entrer ou afficher vos enregistrements. Un formulaire peut tre cr partir
d'une table ou d'une requte. Dans un chapitre ultrieur, nous verrons les proprits avances
des formulaires Access.

Un formulaire de base.
Cliquons sur le bouton "Formulaires" et crons un formulaire l'aide de l'assistant, le mode
cration sera vu plus tard. Slectionnons Requte: contenu par classement cr au chapitre 3.

Faisons passer tous les champs dans la partie droite. Ceci nous permettra de les afficher.
Slectionnons par exemple comme type de formulaire "Justifi" "SUIVANT >".
Slectionnons un style au hasard. Ceci ne fait que de slectionner des couleurs de fond, ce que
nous pourrons modifier plus tard.

26

Ouvrons le formulaire pour inspecter notre travail. Si vous n'avez pas encore rentr de CD DVD dans la base de donne (table ou requte), aucun enregistrement ne sera affich.
Pouvons nous rentrer des donnes ici dans contenu, Oui! Et mme plus puisque les donnes
rentres dans ce formulaire serons rentrs dans la base de donne contenu et dans la requte
(qui dpend de la table) contenu par classement.
Rentrons par exemple les donnes suivantes.

Le rsultat semble peu expressif. Ceci est li au faible nombre de champs utiliss, mais nous
amliorerons ceci plus tard. Pour rappel, les boutons en bas gauche servent se dplacer et
rentrer des donnes.

Nous allons modifier notre requte pour trier suivant le classement, mais pour qu'en cas de
mme classement (le mme CD), les pistes apparaissent en ordre croissant.

La Requte slectionne, cliquons sur le bouton modifier. et rajoutons tri croissant pour le
numro de piste. Comme cette colonne est aprs "Classement", ACCESS fera le tri aprs celui
sur classement. Ceci va nous permettre de rentrer nos CD dans n'importe quel ordre.
Remarque, dans les bases de donnes ACCESS, les tris ne se font qu'aprs la fermeture de la
requte ou du formulaire associ, une lacune par rapport d'autres bases de donnes
nettement plus anciennes comme DBASE.

27

Formulaires Access personnaliss.


Dans le cas ci-dessus, nous avons utilis l'assistant pour crer un formulaire. Cette fois,
utilisons le mode cration.

La prsentation devient nettement moins sympathique mais cette mthode va nous permettre
de rellement cr un formulaire selon nos besoins. L'affichage est tout fait brut, seule la
barre d'outils va nous permettre de crer des textes, champs, boutons, ...
A notre stade, analyser toutes les fonctionnalits serais trop complexe mais voyons d'une
manire gnrale ces fonctions:

Slection: permet de slectionner le contenu d'une zone.


Assistant contrle permet de travailler ou non avec des contrles, c'est une aide prcieuse
pour la cration d'un formulaire.
28

Texte (tiquette): permet de taper un texte (titre par exemple).


Champ: permet d'insrer un champ provenant d'une table ou d'une requte
Bouton bascule, bouton cocher et Case cocher ont la mme fonction, seule la
prsentation change. Ces boutons sont utiliser dans des champs de type "Oui/non"
Zone de liste modifiable permet de slectionner une rponse dans une liste ou une autre
rponse
Zone de liste ne permet de choisir que les rponses dans la liste
Bouton de commande: permet de crer des boutons de fonctions, fermer la fentre, quitter
l'application, .... Cette fonction sera utilise pour faire un formulaire de "dmarrage" de la base
de donne
Image: permet d'insrer une image fixe, un logo par exemple
Cadre d'objet indpendant permet d'insrer un objet venant d'une autre application
indpendamment du contenu
Cadre d'objet dpendant permet d'insrer un objet d'une autre application mais dpendant
de l'enregistrement
Saut de page, permet de couper le formulaire en pages
Contrle d'onglet: permet d'insrer des onglets pour afficher plus d'informations
Sous-Formulaire: serons vus avec les bases de donnes relationnelles
Ligne: insrer une ligne dans le formulaire
Rectangle: insre un rectangle dans votre formulaire
Autres contrles: une liste de contrle que nous n'aborderons pas.
Ces notions seront identiques pour les tats Access

Slections de la table ou requte.


Le premier problme de ce mode de cration, c'est "pas de table / requte" slectionne.

29

Dans le menu affichage, slectionnez proprit. La fentre suivant va donner les proprits
complte de ce formulaire. Dans l'onglet "Toutes", dans la ligne Source, vous pouvez
slectionner la table ou la requte dsire. Remarquez que vous ne pouvez slectionner qu'une
seule table ou requte. Slectionnons notre table Album par exemple. Une fentre va
maintenant nous permettre de faire glisser les champs vers le formulaire.

Insrer un titre
Pour insrer un titre notre formulaire, utilisons la bote outils et cliquons sur le bouton
TEXTE. A l'aide le la souris, crons une zone et tapons notre texte, par exemple album

30

La zone slectionne, utilisons la touche droite de la souris et slectionnons proprits. Ceci


va permettre de modifier la couleur du texte, fond, ... Vous pouvez galement utiliser la barre
d'outils au-dessus.

Insrer une image ou un logo dans notre formulaire.


Dans la barre d'outils, slectionnez le bouton image:

Il ne reste plus qu' donner l'emplacement de l'image pour insrer l'objet. Vous devrez
probablement utiliser le bouton de slection pour dplacer les textes et champs. Vous pouvez
complter ce formulaire Access en insrant une ligne, un rectangle, ... Nous reviendrons ces
formulaires personnaliss.

31

Basededonnerelationnelle
Lorsque nous avons cr nos tables, nous avons dj mentionn que des tables pouvaient tre
relies entre-elles. Une liaison entre 2 tables Access s'appelle une relation. Par extension, une
base de donne Access qui utilise plusieurs tables relies entre elles s'appelle une base de
donne relationnelle. MySQL accepte galement cette fonctionnalit. Cette possibilit permet
de rduire les donnes rentrer. Par exemple, dans une gestion de stock, une table reprendra
le produit (code, description, nom du fournisseur, ...) tandis qu'une autre table reprendra les
coordonnes du fournisseur. Ceci permettra de ne rentrer les coordonnes du fournisseur
qu'une seule fois et de relier le code fournisseur dans la table produit. Un deuxime avantage
vient de la taille des champs. Moins de donnes sont rentres dans la base de donne, ce qui
diminue sa taille.

Une reprsentation de nos 2 tables va nous permettre d'y voire plus claire. La table Album
reprend le classement de l'album. Comme ce champ est une cl primaire, le contenu sera
unique. Le titre et la date de l'album sont indicatifs. Par contre, la table contenu album reprend
le contenu effectif de cet CD - DVD. Le point de liaison entre ces 2 tables est le champ
"classement". Un album reprenant comme classement "FA-002" contiendra donc tous les
titres repris dans la table "contenu album" avec un classement identique. Il nous reste faire
la liaison entre ces 2 tables, ce qu'on appelle une relation. Plusieurs mthodes sont possibles.
La premire mthode est de crer une requte, la deuxime mthode est de crer un
formulaire avec un sous-formulaire.

Requte relationnelle sous Access


La premire opration va tre de crer 2 requtes partir des tables album et contenu album.
Ces requtes vont simplement classer les enregistrements. La premire requte utilise la table
album. Crons cette requte album en faisant glisser tous les champs. Trions juste le champ
32

classement en ordre croissant. Appelons cette requte "requete album tri". De mme avec la
table "Contenu album", trions par ordre croissant sur le classement puis sur la plage.
Appelons cette requte "requete contenu album tri".

Nous allons maintenant crer une requte Access utilisant ces 2 requtes (utilisez le mode
Cration). Commenons par ajouter ces 2 requtes.

La relation entre les 2 requtes n'est pas cre. Pour le faire, cliquons sur classement dans la
requte album et en maintenant la souris enfonce, glissons vers classement de l'autre requte.
Une ligne joint maintenant les champs classements des 2 requtes. Faisons glisser dans la
partie du dessous tous les champs sauf classement de "Contenu album". En effet, ce champ
classement sera identique

Sauvegardons notre requte relationnelle sous le nom RELATION. En ouvrant la requte,


nous retrouvons bien tous les enregistrements avec les contenus des champs des 2 requtes.
Cette mthode permet de ne plus taper par plage de CD le titre de l'album et la date. C'est un
gain de temps mais finalement n'apporte pas grand chose.
33

Cette requte relationnelle va nous permettre galement de crer un formulaire. Utilisons le


mode assistant en mode colonne par exemple.

Et voil, non seulement, les donnes apparaissent en ordre croissant suivant le classement,
mais tous les champs sont remplis. Chaque fois que dans la table contenu, le classement
correspond, les 2 sont affichs. Ceci nous vite de retaper par plage tous les renseignements
sur l'album en lui-mme. Par contre, si le classement n'existe pas dans une des 2 tables,
aucune information n'est affiche.
Nous pourrions faire un formulaire d'aspect plus sympathique que les 2 ci-dessus, reprenons
les 2 tables par exemples.

Base de donne relationnelle Access par un formulaire


La mthode la plus simple et la plus complte sous Access pour crer une base de donne
relationnelle passe par les formulaires. Cette solution va nous afficher chaque fois une plage
sur l'cran. Pourrions-nous afficher les caractristiques du CD - DVD et les en mme temps
tous les titres de l'album? .... Devinez. Oui. Cette solution passe par un formulaire utilisant un
sous-formulaire.
Commenons par crer ce sous formulaire comme un formulaire normal. A l'aide de
l'assistant, slectionnons la requte "Requte contenu album tri". Cette requte reprend les
contenus des albums tris par code du CD ou du DVD. Comme prsentation, choisissons
"Feuille de donne" et sauvons ce simple formulaire comme Contenu album.
En mode formulaire, crons un formulaire en mode assistant. Slectionnons uniquement la
requte "requte album tri". Comme prsentation, choissions "Justifi".

34

Modifions la structure du formulaire. A l'aide de la bote outils, slectionnons "sousformulaire-Sous-Etats" et crons la zone avec la souris sous les donnes de notre formulaire.

A l'aide de l'assistant, nous allons Crer ce sous formulaire.

35

Comme formulaire, slectionnons le formulaire Contenu Album cr ci-dessus. Nous allons


dfinir nous mme le champ de lien (mme si Access le fait automatiquement). Ceci va mettre
les 2 bases en liaison. Laissons la dnomination de ce sous-formulaire comme Contenu
album.

Nous pouvons si ncessaire augmenter la taille de ce sous-formulaire pour afficher plusieurs


lignes de contenu de chaque album
36

Et voil notre formulaire relationnel termin. La barre d'outils de dplacement en bas permet
de se dplacer entre les albums, celle au milieu, l'intrieur des titres de l'album.

Dans notre formulaire Access, on retrouve donc les enregistrements de la premire table
Contenu album au-dessus et par liaison relationnelle, la deuxime table qui reprend chaque
fois le contenu de chaque album.

37

Etatetimpression
Si dans un tableur comme Excel, l'impression est directe (via la commande imprimer du menu
Fichier), ce n'est pas le cas des bases de donnes (SGBD). L'impression d'un rapport passe par
la cration pralable d'un tat. Ces tats permettent de faire (outre l'affichage des champs) des
tris et des filtres sur les enregistrements. La dernire possibilit des tats va permettre
galement de crer des sous-totaux et des totaux sur les rsultats imprims. Les tats
reprennent donc les calculs repris par les fonctions Excel.

Cration d'un tat de base


Dans une base de donne Access, les impressions se font l'aide des tats.

Utilisons le mode "A l'aide des assistants". Slectionnons la requte relation que nous avions
dj cre. Celui-ci reprenait les albums et leur contenu. Slectionnons l'ensemble des
champs.

38

Microsoft Access demande si nous souhaitons ajouter un niveau de regroupement. Ceci


permet de rassembler par exemple les titres repris sous un album par exemple. Slectionnons
donc classement. Cliquons sur suivant. Slectionnons comme tri le numro de la plage. Ceci
va organiser toutes les impressions suivant le titre de l'album, avec pour chaque album une
organisation suivant le numro de la piste. Ensuivant, slectionnons une organisation
quelconque, par exemple chelonn. Slectionnons ensuite un style suivant nos prfrences et
donnons le titre relation notre tat.

Voici notre premier tat Access de cr. Slectionnons notre tat et cliquons sur modification.
La fentre reprend les diffrents composants de notre tat en mode modification: des titres et
des champs. Commenons par analyser les diffrentes zones de cet tat.

L'entte d'tat reprend les textes qui seront repris au dbut de notre impression. L'entte de
page reprend les textes (images, ) qui seront imprims sur toutes les pages, sans exceptions.
En-tte de groupe classement reprend ce qui sera imprim pour chaque classement (ici le code
de chaque album). Dans notre cas, nous avons insr le champ, ce qui sera imprim sera donc
le contenu du champ. En dtail, sont repris le contenu de chaque album. En pied de page, ce
qui sera imprim sous chaque page.

39

Nous allons modifier certaines parties. Commenons par la zone dtail. En cliquant sur
numro de piste, nous pouvons dplacer ce champ. Pour cela, pointons notre souris en haut
gauche du champ et dplaons le vers la gauche. Nous pouvons faire de mme pour les autres
champs. Nous pouvons faire de mme avec les titres dans la partie entte de page. Nous
pourrions faire mieux. Supposons que nous souhaitions faire des jaquettes pour mettre au dos
de nos pochettes. L'idal serait de ne pas avoir d'enttes de page, reprendre un album par
pages. Le pied de page ne nous intressant pas trop. Fermons notre tats.
Slectionnons l'tat relation et avec le menu contextuel, slectionnons COPIER. Collons
maintenant notre tat. Donnons comme nom album et slectionnons-le en modification.
Slectionnons le titre et appuyons sur la touche <del> pour le supprimer. Si nous essayons de
rduire la zone, Access reprend quand mme une petite zone. Pour rduire toute cette zone, il
nous faut d'abord effacer la ligne de sparation qui a t cre automatiquement. L'entte de
page totalement rduit, plus rien ne sera imprim.
Nous souhaiterions reprendre chaque album sur une page. Dans les outils, reprenons la
commande Saut de page et insrons l dans la partie en-tte de groupe. Ceci insrera un saut
de page entre chaque album (un album par page).

Ceci est un exemple de base de donne. Nous n'avons ici utiliser que les fonctions de liaisons
entre bases de donnes et de tris. Ce serait sous-utiliser les bases de donnes et Access en
particulier. Notre but n'est pas de rentrer dans la programmation, mais d'organiser notre
travail.

40

Etats spcifiques.
Toutes les impressions passent par ces tats. Si nous voulons crer un tat sur un tri
particulier, nous pouvons, soit utiliser les fonctions de regroupement dans la cration de l'tat,
soit crer une requte de dpart pour crer ce regroupement.

Utilisation des regroupements.


Prenons un exemple simple de cration d'tat en utilisant le regroupement, la liste des albums
de notre discothque. Crons un formulaire en mode "assistant cration" et slectionnons
simplement la table album (qui contient uniquement les donnes spcifiques au CD musical).
Slectionnons le champ Classement comme regroupement. Comme tri, nous pouvons par
exemple choisir la date. Mme si cet exemple est simpliste, c'est la premire mthode pour
crer rapidement un petit tat.

Cration d'un tat via une requte.


Outre les avantages de tris ci-dessus, cette deuxime mthode a quelques avantages,
notamment de permettre de n'afficher que les enregistrements avec une condition sur un
champ. Nous avons dj utilis cette mthode mais nous allons l'amliorer pour ne plus
reprendre une condition fixe, mais une question demande avant d'afficher l'tat.

Crons une requte l'aide de l'assistant sur la table album. Slectionnons Tri croissant pour
le champ classement. Comme critre, nous allons choisir [Quel-classement?"]. Ce champ
n'existe pas mais justement, Access va demander la valeur de ce classement et finalement
n'afficher que les enregistrements correspondant.

41

Seul petit dfaut ce systme, le contenu de la question doit tre exactement celui demand.
Pour les chiffres et les dates, vous pouvez mme crer une condition infrieure et une
condition suprieure (rsultat compris entre des valeurs). Ceci est galement valable pour les
formulaires, ...
Conditions Access
> suprieur
=> suprieur ou gal
< infrieur
=< infrieur ou gale
<> diffrents.
= gal

Personnalisation d'tats Access


Pour personnaliser nos tats, nous pouvons galement insrer quelques champs particuliers,
notamment l'heure d'impression. Par exemple, en insrant le code "Zone de texte"
=Maintenant() dans le pied de page, Access insre la date d'impression au format dsir (par
les proprits de cette zone de texte).

42

Macro
Continuons par une cration de base de donne plus professionnelle, les MACROS. Une
macro permet de crer des listes de commandes. Sans rentrer dans la programmation qui
dpasserait le cadre de cette initiation, ceci va nous permettre de crer un menu de dmarrage
personnalis. La deuxime partie de la formation (Access avanc) reprend le menu Macro et
procdure vnementielles.
Dans le menu macro, slectionnons Nouveau. Dans la partie gauche, slectionnons "Ouvrir
formulaire". Dans les proprits en dessous, slectionnons le formulaire que nous souhaitons
ouvrir. Enregistrons notre macro comme Ouvrir le formulaire. Et voil, nous venons
simplement de crer une petite macro qui ouvrira le formulaire spcifi et s'insrera dans un
autre formulaire. C'est ce que nous allons faire.
Vous pouvez galement crer plusieurs oprations la suite de l'autre l'aide de ces macros.

Un menu de dpart.
Commenons par crer un nouveau formulaire en mode cration. Dans ce mode, aucune table
ou requte n'est demande. C'est justement cela qui nous intresse.
Dans la barre d'outils, slectionnons "Boutons de commande" et dessinons notre bouton sur la
zone de formulaire.

43

Directement, un assistant va nous permettre de slectionner une fonction.


A. Dplacements entre enregistrements va nous permettre tous nos dplacement mais ces
fonctions sont dj reprises dans notre barre de dplacement en bas.
B. Oprations sur les enregistrements permet d'ajouter, supprimer, ... les enregistrements.
C. Oprations sur les formulaires, tats, ... va permettre d'ouvrir, ... les formulaires et les
tats.
D. Applications, permet d'excuter d'autres programmes (Word, excel, ...)
E. Divers reprend justement les macros
Slectionnez "Macros", ensuite la macro cre ci-dessus. En utilisant les diffrentes fonctions
vous pouvez par exemple faire un menu d'entre permettant d'ouvrir diffrents formulaires,
tats, ... Dans un chapitre ultrieur, nous verrons mme comment obliger l'utilisateur
n'utiliser que les formulaires ainsi crs mais le but actuel est uniquement de nous faciliter la
vie.
Depuis la version Access XP, une nouvelle commande est insre dans le menu outils qui
permet une fonction similaire: le gestionnaire de Menu General.

Afficher le formulaire au dmarrage d'Access.


Dans le menu Outils, slectionnons la commande Dmarrage

44

Il suffit de mettre le nom de notre formulaire d'entre dans la case Afficher Formulaire /
page pour que notre formulaire soit automatiquement affich au dmarrage de l'application
Access.
Cette commande permet galement de rduire les possibilits des utilisateurs au dmarrage de
l'application Access.

Afficher

la

fentre de base de
donne

Access,

affiche ou non la
fentre

reprenant

les tables, requtes,


formulaire

Afficher la barre
d'tat
Autoriser
menus

Affiche ou non la barre d'tat en bas de votre fentre

les

complets

permet de limiter
les commandes du
menus

aux

commandes
utilisateurs.

Les

menus
Afficher
barres

les
d'outils

intgres, affiche
ou non les barres
d'outils standard de
Access
45

F11

Place la fentre Base de donnes au


premier plan.

Utiliser

les

CTRL+G

Appelle la fentre Excution.

CTRL+F11

Bascule

entre

la

barre

de

menus

personnalise et la barre de menus

touches spciales

intgre.

d'accs
CTRL+PAUSE

Dans un projet Microsoft Access, arrte


la rcupration des enregistrements du
serveur par Access.

ALT+F11

Dmarre l'diteur Visual Basic

Ces proprits de dmarrage permettent donc de limiter les possibilits d'utilisation spciales
votre la base de donne. Ce n'est nanmoins pas un niveau de scurit d'accs que nous
verrons dans un chapitre ultrieur avec accs par mot de passe. Pour dmarrer normalement,
ouvrez la base de donne Access en maintenant la touche <shift> enfonce.
Ce chapitre termine la premire partie de la formation Access. Nous reviendrons l'utilisation
et la cration d'une macro en tudiant le menu Macro.

46

Tableavance:propritdeschamps
Dans le chapitre sur la cration d'une table Access de cette formation, nous nous contentions
de choisir le type de donnes.
Cette partie va nous permettre de personnaliser les tables:

Afficher les donnes suivant une notation prcise


Imposer la manire de rentrer les donnes dans les requtes.
Modifier automatiquement les donnes rentres suivant un format dfini
et bien d'autres

Proprits des champs Access


Chaque champ d'une table Access reprend des caractristiques spcifiques supplmentaires:
1. Taille du champ (champs de types texte et numriques l'aide de caractres
spciaux)
2. Format: Ce format agit sur la manire d'afficher les informations (pas de les rentrer)
et ne modifie pas le contenu)
3. Masque de saisie: dtermine la manire dont les donnes doivent tre saisies
4. Dcimales: (types numriques et montaires uniquement), le nombre de chiffres
derrire la virgule.
5. Lgende: un nom qui remplacera le nom du champ dans les feuilles de donnes.
6. Valeur par dfaut: la valeur propose automatiquement
7. Valide si: rgle de validation des donnes rentres.
8. Message si erreur: Texte affich si les donnes rentres ne sont pas conforme
"Valide si"
9. Null interdit: Si le choix est oui, une donne doit effectivement tre rentre
10. Chane vide autorise: (champs de type texte, memo et liens hypertexte) autorise
rentre le caractre d'espace comme valeur. Cette caractristique est souvent utilise
pour permettre de ne rien rentrer comme donne (espace quand mme) si la
caractristique "Null interdit" est active.
11. Nouvelles valeurs (uniquement les champs de type NumroAuto): incrment (+1) ou
alatoire. Dans les 2 cas, les doublons sont interdits.
12. Compression unicode: (champs texte et Memo), dtermine si le contenu doit tre
enregistr en format compress ou non.
Toutes ne sont pas vues ici, seulement les principales.

Le format d'un champ.


Reprenons notre table album dans le chapitre "table Access".

47

Champ Classement (cl primaire)


champ texte "Titre album"
champ date "date de l'album"
champ texte "titre 1" pour le premier titre de l'album
champ texte "interprte 1".

Le premier problme vient du classement, le format n'est pas impos. Nous allons faire
quelques amnagements. Dans la partie proprit, Commenons par dlimiter la taille du
champ. Par exemple, dans notre cas, nous allons utiliser 5 positions. La taille du champ va
donc tre de maximum 5 caractres. Si cette rgle transgresse le format de donnes existantes,
vous pouvez augmenter la taille.

Passons maintenant au format. Ceci va modifier la manire dont les donnes sont affiches
(pas rentres). La manire de rentrer les donnes ci-dessus va modifier les caractres rentrs:
">" va convertir les donnes en majuscules, - va afficher le caractre "-" et @ va obliger de
rentrer un caractre ( chaque fois).

Type
de
Symboles
donnes
Numrique /

Explication
Sans format de champ, affichage des donnes comme elles sont
saisies

montaire
0

Affiche un chiffre. En l'absence de chiffre, un 0 est affich.

Affiche un chiffre. S'il n'y a pas de chiffre, rien n'est affich.

affiche le caractre F (pour francs)

, (virgule)

dtermine la position de la virgule dans l'affichage

<espace>

Sparateur des milliers


48

(<Space>)
%
E+ ou e+
E- ou eDate / heure /

Multiplie la valeur par 100 et rajoute le symbol %


Notation scientifique avec le signe + pour les exposants positifs
et signe - pour les exposants ngatifs
Notation scientifique avec signe - pour les exposants ngatifs,
aucun signe pour les exposants positifs.
spare le jour, le mois, l'anne
Dtermine l'affichage du jour

j=5
jj = 05
jjj = mar
jjjj = mardi

dtermine l'affichage du mois

m=1
mm = 01
mmm = janv
mmmm = janvier

Dtermine l'affichage de l'anne


a

, (vigule)

aa = 99
aaaa = 1999

Spare les heures, les minutes et les secondes


dtermine l'affichage des heures

h=4
hh = 04

Dtermine l'affichage des minutes


n

n=7
nn = 07

Dtermine l'affichage des secondes


s

s=3
ss = 03

49

Texte
Memo

Gnral

AM/PM

Dtermine l'affichage par 12 heures et rajoute la mention

caractre de texte requis

&

Caractre de texte non requis

>

Convertit les textes en majuscule

<

Convertit les textes en minuscule

*(caractre)

utilise le caractre spcifi aprs * pour le remplissage

Quelques exemples:
>@@-@@@ oblige rentrer 5 caractres qui seront affichs en majuscules avec un tiret de
sparation. fa001 sera donc affich FA-001
# ###,00" ": un chiffre sera affich avec 2 dcimales, sparateur des milliers, suivi de .
1526,3 deviendra 1 526,30

Masque de saisie
Cette fonction Access est a utiliser avec prcaution. Le masque de saisie va obliger rentrer
des donnes suivant un format prdfini. Si vous crer un masque de saisie aprs avoir rentrer
des donnes, les valeurs seront vrifies et ventuellement rejetes.

exemple
aucun masque de saisie, les donnes sont affiches
telles que saisies
masque 0000, le chiffre
0

chiffre, signe + ou -, saisie obligatoire

123 est refus, le chiffre


+123 est accept

Chiffre ou espace, la saisie est facultative

chiffre ou espace, la saisie est facultative

Lettre, saisie obligatoire

Lettre, saisie facultative

lettre ou chiffre, saisie obligatoire


50

masque 9999, le chiffre 1


est accept

n'importe quel caractre (lettre, chiffre, ...), saisie

&

obligatoire
n'importe quel caractre (lettre, chiffre, ...), saisie

facultative
>LLL:

lettres

Tous les caractres droite du symbole sont obligatoires,

>

convertis en majuscule

automatiquement
converties en majuscule

Tous les caractres droite du symbole sont

<

convertis en minuscule

Masque rempli de droite vers gauche

le caractre est ajout sous sa forme asci


masque LL-999: 2 lettres

/,.;:()

Caractres spciaux utiliss tels quels dans le obligatoire,


masque de saisie

automatiquement,

ajout
3

chiffres facultatifs

Exemple:
le masque LL-000 oblige rentrer 2 lettres suivis de 3 chiffres.
le masque CC/CCC permet de rentrer 5 caractres maximum. Les 2 premiers sont suivis du
symbole /

Valide Si.
Sans rentrer dans trop de dtails, cette proprit permet de crer une rgle pour les messages.
Par exemple:
> 2000: chiffre obligatoirement suprieur 2000
> 01/01/2005: champ date, la date doit tre suprieure au premier janvier 2005
Pour combiner 2 conditions de validit, vous pouvez utiliser ET et OU.

ET ncessite que les 2 conditions sont vrifies


OU ncessite qu'au moins un condition soit vrifie.

51

Exemple: un champ date >=01/01/2000 ET <01/01/2011 n'acceptera que les dates comprises
entre le 01 janvier 2000 et le 31 dcembre 2010 (=< 01/01/2011)

Message si erreur
Ceci permet d'afficher un message dans le cas d'une donne non valide (dans le cas de
l'utilisation de Valide si). Par exemple, si la rgle d'une date est >01/01/1900 et le message:
erreur d'encodage, la date doit tre suprieure 1900. En cas de date infrieure, la fentre
suivante apparat:

Null interdit
Cette fonction fort utile permet d'obliger l'utilisateur rentre une valeur (cas null interdit:
Oui). Elle travaille souvent en coordination avec la fonction suivante: Chane vide autorise
qui permet de rentrer un espace au lieu d'une valeur.

Chane vide autorise.


Cette commande permet d'autoriser rentrer l'utilisateur de la table access rentre un espace
comme valeur dans un champ. Cette possibilit est souvent utilise avec la commande Null
interdit. En acceptant les 2 proprits, vous obligez l'utilisateur rentrer une valeur, mais
autorisez de rentrer un espace dans des cas exceptionnels.

Index.
Cette commande permet directement de trier un champ en ordre croissant. L'option avec ou
sans doublon est une contrainte supplmentaire. Si vous choisissez sans doublons, la table
refusera de rentrer la mme valeur dans le champ pour 2 enregistrements diffrents de la table
access. Mieux vaut gnralement utiliser une requte pour cette fonction

52

Compression unicode.
Oui par dfaut. Access utilise le codage unicode qui enregistre les lettres sur 2 octets (au lien
d'un). Ce systme permet d'afficher les caractres dans n'importe quelle langue.
Malheureusement, ceci double la taille des caractres enregistrs. La compression va
compenser en partie ce doublement d'espace. Cette caractristique n'est affiche que pour les
champs de type texte, memo et liens hypertextes.

Exemple de contraintes d'un champ


Comme les possibilits sont multiples, nous allons essay quelques exemples de ces
caractristiques des champs Access.

Champ texte
A. Imposer de rentrer une valeur chaque fois:
Null interdit: Oui - Chane vide autorise: Non.
B. Imposer de rentrer 2 lettres, suivi de 3 chiffres mais afficher le sparateur - et lettres
transform en majuscule. Exemple: MA516 rentrer.
Taille du champ: 5 - Masque de saisie: >LL\-000

Champ Access numrique


A. Champ numrique compris en 10 et 100
Type numrique, type entier long - Valide si: >10 ET <100

Champ Access de type Date


A. Date obligatoire comprise suprieure au 01/01/2005
Valide si: >01/01/2005 - Null interdit: Oui - Chane vide autorise: Non
B. Anne
Un cas particulier, vous ne souhaitez que l'anne. Plusieurs solutions sont possibles.

Champ numrique avec valide si suprieur 2000 par exemple pour anne comprises
entre 2001 et ..., dcimales: 0 + masque de saisie: 0000
Champ texte avec les mmes solutions, + longueur du champ 4.

La premire solution permettra de faire des calculs (exemple, + 3 ans)

53

Quelques remarques
Les contraintes et formats d'affichage des champs d'une base de donne Access peuvent tre
implants soit dans la table, soit dans le formulaire (ventuellement dans les tats). Ceci est
laiss au libre choix suivant votre application. Nanmoins, si vous imposez les contraintes
dans la table, elles sont valables galement pour les requtes, formulaires, tats, ... Dans le cas
o ces contraintes sont rentres directement dans le formulaire, elles ne sont valables que pour
le formulaire. Rentrer des donnes directement dans la table ou dans une requte n'imposera
pas le masque de saisie, d'o un risque d'incohrence de donnes informatiques.
D'un autre cot, imposer une contrainte directement dans la table va entraner long terme des
problmes de conception. Mme si une base de donne est gnralement dveloppe au dpart
sans modifications futures, par exprience, on est amener ajouter des champs (ou augmenter
la taille), souvent plusieurs annes plus tard. Insrer les contraintes directement dans la table
risque de vous poser quelques problmes lors de ces modifications de l'application
informatique, notamment parce que lors de chaque changement de proprits de champs,
Access va vrifier si les donnes sont cohrentes. Vous risquez donc de perdre des donnes ou
de devoir revrifier manuellement tous les enregistrements que la table accepte les
modifications, ce qui n'est pas le cas pour les formulaires.

54

Exemple:
Dans ce tutorial Access, nous avons vus les diffrentes parties de cration d'une base de
donnes. Voyons un cas plus explicite comme exemple, la gestion financire d'une petite
association: entres et sorties globales ou par activit. Cette application a t dveloppe pour
le comit des ftes de Lambermont mais vous pouvez l'adapter n'importe quel club sportif
ou autre. Elle remplace les applications standards sous Excel qui montre vite ses limites
lorsqu'il faut dissocier les diffrente sources de rentres et de sortie, notamment si vous
voulez rellement suivre les paramtres par activit. Le logiciel Ciel association peut dans
certains cas vous convenir (conforme notamment la lgislation belge sur les ASBL) Vous
pouvez galement utiliser des logiciels de comptabilit de type CIEL Compta, mais cette
mthode demande des connaissances en comptabilit des entreprises.
Si vous dbutez sous Access (et dans les bases de donnes en gnral), vous pouvez au
pralable lire notre tutorial Access en ligne reprenant les diffrentes parties de la conception
d'une base de donne. Un autre exercice Access est repris en rcapitulatif des formations
Access de niveau 1.

Cration de la table
Commenons par crer une nouvelle base de donne appele club. Crons une table appele
facturier reprenant les champs suivants:

Date, date format date rduit (date de la facture)


Anne, texte, 10 (anne de l'activit)
numero, entier simple (numro dans le facturier d'entre ou de sortie)
type, texte,1 liste de choix, R (pour rentre) ou S (Sortie)
description, texte 50 (une petite description de la facture)
Activit, texte, 50 (l'activit proprement dite, par exemple la fte du village)
Sousactivit, texte, 50 (une sous activit, par exemple la tombola de la fte)
montant, rel (le montant de la rentre ou de la sortie)
pay, oui/non (suivi des payements)

Cette base de donne va reprendre les entres et sorties.


55

Premire modification, pour la date, rentrons en "valeur par dfaut" la fonction


Maintenant(). Ceci affichera automatiquement la date du jour, mais pourra tre modifie.

Deuxime modification, pour le champ type, crons une liste de choix.

Slectionnons "Je taperais les valeurs souhaites" (la deuxime possibilit sera vue cidessous).

Slectionnons une seule colonne.

56

Le deuxime onglet est automatiquement modifi. Dans "Contenu", tapons simplement R;S.
Le ; sert sparer les diffrents choix possibles. Il nous restera mettre sous l'onglet Gnral,
R (Rentres) comme valeur par dfaut, en esprant avoir plus de Rentres que de Sorties.
Enregistrons notre table, ne crons pas de cl primaire.
Une petite remarque, de par sa conception, cette base de donne est utilisable les annes la
suite de l'autre. Il n'est pas ncessaire de recrer une base de donne chaque anne. Ceci
permettra de faire des comparaisons sur une activit d'une anne l'autre.

Les requtes, formulaire et tat, utilisation de la base de donnes.


Pour la suite de cet exercice, crons une requte base sur cette table triant les diffrentes
lignes en ordre croissant sur la date appele "date" l'aide de l'assistant.

Crons maintenant un formulaire reprenant cette requte appele "facture". Notre formulaire
se prsentera par exemple comme ci-dessous.

Modifions notre formulaire pour nous faciliter encore un peu plus la vie. La date se met
automatiquement - cause de la table, valeur par dfaut maintenant(). Ne jouons pas sur le
numro.
Le type peut-tre R pour rentre ou S pour sortie. Nous avons bloqu ces 2 possibilits sur la
table mais nous pouvons galement bloquer sur ces 2 valeurs l'aide du formulaire. Dans le
57

menu Affichage, slectionnons proprits. En slectionnant le champ type, slectionnons dans


la fentre proprit et dans la partie "Valide", tapons ="R" ou "S". Access n'acceptera dans ce
champ que r ou s (majuscule ou minuscule). Tapons galement en valeur par dfaut R
Nous pourrions faire de mme avec le champ pay pour cocher la case par dfaut.
Revenons nos activits. Notre but est que pour chaque entre / sortie, la ligne rentre
dsigne une activit: la fte, le barbecue, le souper annuel, Pourquoi pas.
Plusieurs possibilits existent. Nous n'en verrons qu'une. Crons une table dsigne par
activit reprenant uniquement le champ activit. Dans cette table tapons les activits
suivantes:

Fte
barbecue
vtt

Reprenons notre table CLUB en modification. Modifions le champ activit. Notre but est de
choisir les donnes dans une zone modifiables et de les reprendre directement dans le champ
Activit . Les diffrentes possibilits sont inscrites dans la table activit. Cette solution
sera plus facile s'il faut rajouter des activits dans la table.

Slectionnons "Je veux que la liste modifiable et slectionnons la table "Activit".


Slectionnons le champ activit et le tour est presque jou.

Slectionnons uniquement le champ activit.


Nous allons stocker la valeur dans le champ "activit".
58

Comme nom de champ choisissons activs.


Il nous faut encore organiser le droulement des oprations par "Ordre de tabulations" dans le
menu Affichage. Passons en mode formulaire et rentrons quelques donnes. Enregistrons
notre formulaire et vrifions dans la table si les donnes sont correctement rentres. Et non, la
table "Facturier" reprend le numro de l'activit.
Revenons notre formulaire en mode cration. Slectionnons les proprits de notre zone
modifiables et dans la case nbre de colonnes, slectionnons 2 au lieu de 1. Ca marche.
Un dernier point, nous devons encore rentrer l'anne manuellement. Il faudrait nanmoins la
modifier chaque anne. Utilisons une autre mthode. Dans la table, slectionnons anne et
tapons la fonction suivante dans la valeur par dfaut: anne(maintenant()), en respectant les
parenthses. Ceci demande de choisir l'anne de la date du jour par dfaut (l'anne est donc
modifiable), et ceci sera rpercut dans le formulaire.
Maintenant que nous pouvons rentrer des donnes, sans trop de problmes, allons voire dans
les tats nos diffrentes possibilits.

Un premier tat serait une feuille reprenant les factures payes par la caisse centrale ou non
(en utilisant la case paye. Dans Access, nous devons passer par une requte. Crons l.
Slectionnons tous les champs de la table facturier en slectionnant d'abord anne, puis date,
puis tous les autres. Pour les champs date et anne, slectionnons un ordre croissant. Comme
anne est en premier dans l'anne, il sera repris dans le tri en premier. Sous la case "Pay",
tapons dans la case critre le chiffre 0. Automatiquement, la requte n'affiche plus que ce qui
n'est pas pay. Sauvons cette requte sous le nom "A payer". Passons maintenant notre tats.
Ce ci va nous permettre d'imprimer les factures en entres et en sorties non payes.

59

Crons un tat l'aide de l'assistant. Slectionnons la requte "A payer" comme source et
slectionnons tous les champs. Dans la fentre suivante, slectionnons un ordre de
regroupement suivant l'activit, puis suivant le type. Nous n'avons pas besoin de tri, ils sont
dj fait dans la requte de dpart "A payer". Cliquons sur le bouton "Options de synthse".
Ceci affiche la fentre suivante. Cliquons sur la ligne "montant" dans la case Somme.
Slectionnons le mode de prsentation qui nous convient. L'aperu de l'tat affiche un tas de
texte inutile. Modifions notre tat et supprimons le texte "= synthse " Diminuons
galement l'espace rserv. Ceci n'est dj pas si mal, mais la somme globale en dessous
reprend la somme des entres et des sorties, ce que nous souhaiterions modifier. La solution
est de rentrer systmatiquement les sorties avec un montant ngatif. Ceci permet de vrifier
les sommes que l'on doit recevoir diminuer des sommes que l'on doit payer.

A ce stade, les activits sont reprises "annes mlanges". Les comptes du VTT 2000 sont
repris avec les comptes du VTT 2001. Pas trs intressant. La solution est de crer un nouvel
ordre de regroupement sur l'anne. Dans le menu Affichage, slectionnons ordre de
regroupement, dans la troisime ligne, dans la colonne champ/expression, slectionnons
anne. Slectionnons la ligne et montons avec le curseur jusqu'au dessus de "Activit. Dans
les case de proprits, slectionnons entte de groupe et pieds de groupe sur Oui. En affichant
la liste des champs, glissons le champ anne dans la zone "Entte de groupe anne". Faisons
de mme dans le pied du groupe anne, en copiant le champ "Somme ) dans la zone audessus et en revenant dans la partie pied, utilisons la fonction copier. Ceci nous donnera une
somme par anne.

60

Nous aurions pu utiliser le systme ci-dessous pour regrouper par anne. Je vous laisse le
loisir de le faire votre gr.

Il est possible dans une requte de filtrer manuellement les champs. Crons une nouvelle
requte l'aide de l'assistant, en utilisant la table facturier et en reprenant tous les champs les
uns aprs les autres. Dans la zone critre sous la colonne anne, tapons "[Anne]". Dans la
mme ligne mais sous la colonne "Activit", tapons [activit]. Les pseudo champs crs ainsi
nous poserons la question. Lorsque nous excutons la requte, Access demande d'abord
Anne?, puis Activit? Et affiche uniquement les donnes qui correspondent ces 2 critres.
Le pseudo champ doit imprativement tre en 1 seul mot, mais vous pouvez utiliser des "_"
entre les mots. [Anne_activit] fonctionne. Par contre [anne_de_l'activit] ne fonctionne pas
cause du caractre accentu ('). Sauvegardons cette requte sous le nom de rsultat par
activit.

Le seul problme vient du fait que cette requte n'affiche que les lignes, pas de totaux. Il nous
faut effectivement crer un tat. Crons cet tat l'aide de cette requte en effectuant un
regroupement suivant le type (R ou S) et en utilisant les options de synthses. Ceci nous
61

donne un tat reprenant les entres et les sorties de chaque activit. Vous pouvez mme
insrer dans votre tat les pseudo champs (idem ceux rentrs dans la requte).

Ce systme est dj pas mal mais nous souhaiterions le perfectionner. Ceux qui sont (ou ont
t) trsorier d'un club savent que gnralement on aime bien savoir ce qui se passe au sein
mme d'une activit: quel montant le bar a rapport, Nous arrivons au principal problme
des bases de donnes: la modification. En effet, ajouter un champ dans une table n'est pas trs
compliqu, mais nous allons devoir modifier toutes les requtes, formulaires et champs. Pour
ma part, dans ce cas, je recre souvent directement toutes les autres parties l'aide des
assistants.
Quelques imperfections existent encore. Reprenons notre formulaire en mode Modification.
Nous allons crer une zone de liste modifiable. Cliquons sur le bouton associ dans la bote
d'outils et crons notre zone sur le formulaire. Access propose un choix suivant 3 options.
Slectionnons la deuxime, je taperai les valeurs souhaites. Nombre de colonne: 1, stockons
la valeur dans ce champ que nous slectionnons comme "TYPE"
Donnons le nom type comme tiquette. Chaque fois que nous rentrons une valeur dans la zone
modifiable type, la valeur s'insre dans le champ type. Nous souhaiterions n'avoir plus que 2
choix (R pour rentres et S pour sortie). En modification, slectionnons notre zone
modifiable. Avec la touche droite de la souris, slectionnons la commande "proprit". Dans
la zone Contenu, tapons "R";"S". En reprenant notre formulaire en mode formulaire, nous
n'avons plus que le choix entre R ou S et le champ type est toujours modifi. Nous pouvons
ds lors supprimer le champ type du formulaire. Il nous faudra forcment organiser notre
cran et ventuellement l'ordre de tabulation dans le menu Affichage.

62

Notre formulaire semble maintenant complet. Attaquons maintenant les Etats qui permettent
d'imprimer les rapports. Le premier va nous permettre de faire les comptes annuels. Nous
pourrions directement crer un tat mais nous devons d'abord crer les filtres et dans Access,
la seule manire est de travailler sur les requtes. Crons donc une requte en mode cration.
Choisissons la table facture avec tous les champs et appelons cette requte "Par anne".
Modifions-l comme suit. Dans la ligne critre sous le champ anne, tapons
=[anne_des_activits]. attention de bien respecter la syntaxe, pas d'espaces. En ouvrant la
requte, Access pose automatiquement la question anne? Il suffit de rentrer l'anne
demande, par exemple 2002 et seules les entres sorties de 2002 seront affiches. Pendant
que nous y sommes, crons une deuxime requte qui demande l'anne et l'activit. Pour cela,
slectionnons la requte "par anne" avec la touche droite de la souris et slectionnons
"Copier". Ensuite utilisons la commande "Coller". Access demande un nouveau nom de
requte, rpondons "par anne et activit". Comme critre sous le champ activit, tapons tous
simplement =[activit_souhaite]. Access demandera l'anne et l'activit.
Dans la partie gauche, choisissons Etat et dans la partie droite l'aide des assistants.
Slectionnons la requte "par anne" et tous ses champs.

Slectionnons anne comme regroupement et SUIVANT. En tri, slectionnons date (par


exemple) et montant comme option de synthse, la somme pour le champ montant. Le rsultat
sera par exemple comme ci-dessous. Modifions notre tat pour parfaire la lecture. Choisissons
la difficult, modifions l'tat existant. Nous allons une fois de plus utiliser la barre d'outils.

63

Dans la zone d'en-tte, insrons une zone de texte et dans cette zone, tapons
[anne_des_activits]. Nous pouvons ventuellement changer la mise en forme de ce champ
(gras, hauteur suprieur. Une deuxime modification possible serait de dissocier par activit
les rentres et les sorties. Nous aurions pu le faire la cration, mais faisons-le directement en
mode modification. Dans le menu Affichage, slectionnons "Trier et regrouper". Insrons le
champ TYPE et tapons Oui en pied de groupe, dplaons TYPE entre activit et date.
Insrons maintenant une zone de texte et remplaons le terme indpendant par
=somme([montant]) dans le pied de groupe TYPE. Nous pouvons crer le mme ETAT pour
la requte "par anne et activit". D'autres modifications sont possibles, 2 dcimales dans les
proprits des somme, insrer des pieds de page en bas de chaque groupement d'activit, Je
vous laisserai le faire.

Menu d'entre
Crons une macro. Dans la partie gauche, slectionnons "Ouvrir formulaire". Dans les
proprits, slectionnons le formulaire que nous souhaitons ouvrir. Enregistrons notre macro
comme Ouvrir le formulaire. Crons une deuxime macro pour ouvrir l'tat "Par anne".
Slectionnons la commande ouvrir tat et en proprit ETAT par anne. Dans la proprit
Affichage, slectionnons aperu avant impression. Crions la mme pour l'tat 'par anne et
activit.
Crons maintenant un formulaire en mode cration. Notre but n'est pas ici d'afficher des
champs, mais de faire un menu de dpart.
Crons un bouton, slectionnons comme choix "Divers", excuter macro. Slectionnez la
macro Formulaire. Slectionner soit un texte, soit une image de votre choix.. Tapez
Formulaire comme nom de bouton. Faite de mme pour les 2 autres macros.
64

Recrez un quatrime bouton. Slectionnez la catgorie Applications gauche et Quitter une


application droite. Suivant. Slectionner par exemple le panneau de sortie. Ceci permettra de
quitter Access.
Dans le menu OUTIL d'Access, slectionnez la commande "Dmarrage".

Comme "Afficher " Slectionnez Principal. Le reste est de la mise en page. A partir de
maintenant, en cliquant sur l'application, le menu principal apparatra en premier et les
diffrents tats et formulaires seront accessibles par les boutons.

65

Listedechoix
Une liste de choix permet de slectionner une valeur pour un champ dans une liste de valeurs
possibles. Selon la configuration du champ, la liste peut-tre limitative ou non (vous ne
pouvez choisir qu'une valeur de la liste ou pouvez en proposer d'autres). Mme si une brve
introduction dans les tables a dj survol ces listes, il est temps de voire les 3 mthodes
distinctes de cration d'une liste de choix pour un champ Access.

La premire mthode consiste crer manuellement la liste. Cette solution est la


plus simple pour un petit nombre de valeur mais oblige dans la pratique modifier la
structure de la table pour ajouter, modifier ou supprimer un choix de la liste. Cette
solution n'est donc utiliser que pour de petites listes non variables.
La deuxime solution utilise directement une table (ou une requte) pour rcuprer
les donnes. Cette mthode est relativement souple, un simple menu reprenant la table
permet de modifier les donnes de la liste. Cette mthode passe ventuellement par
une solution SQL.
La dernire solution est la plus volutive, puisqu'elle permet de reprendre dans une
table les valeurs prcdemment tapes. Cette solution est la plus difficile
appliquer, mais n'impose pas de modifier la table chaque nouvelle entre. Par contre,
elle ne permet pas de limiter une liste dfinie l'avance.

Liste de choix par valeurs souhaites.


Cette solution est la plus simple. Crons une nouvelle table appele adresse par exemple.
Dans cette table crons un champ titre dont les valeurs possibles sont:
Monsieur
Madame
Monsieur et Madame
Mademoiselle
Dbutons par crer le champ, dans le type de donnes, slectionnons: Assistant liste de choix

66

La premire question reprend le type de liste de choix que vous souhaitez crer. Dans cette
premire partie, nous allons slectionner "Je taperai les valeurs souhaites"

Slectionnez 1 colonne, nous tudierons le cas de plusieurs colonnes ci-dessous. Cliquez sur
le bouton terminer. Rien n'a l'air d'avoir t cr, le type de champs est mme redevenu texte.
Access n'a pas tap les valeurs possibles votre place, le gestionnaire de base de donne a
juste "prpar le terrain". Dans la partie proprit du champ titre, slectionnez Liste de Choix.
Il ne reste plus qu' taper les valeurs souhaites spares par le caractre ";".

En passant en mode Affichage, la liste apparat lorsque vous essayez de rentrer une valeur
dans le champ Titre.

67

Proprits des Listes de Choix


Nous pouvons galement utiliser les proprits du champ titre pour crer des contraintes sur
ce champ. Pour le champ titre, reprenons les proprits de la liste de choix.

Afficher le contrle: Cette fonction permet de dterminer comment la liste de valeurs


est affiche dans les formulaires et tables Access. Le choix va galement modifier la
liste des proprits.

Zone de
liste
droulante:

Zone de
liste

Zone de
texte

supprime la fonction

Origine Source
Cette proprit permet de slectionner la manire dont les donnes sont rcupres dans la
liste droulante.

68

Nous reparlerons dans le bas de ce chapitre des diffrentes possibilits.

Contenu. Spcifie le contenu de la liste de choix, une liste de valeurs tapes, table
requte, ...
Colonne lie et nombre de colonnes.
Lorsque vous crez une liste de choix, vous pouvez demander de rentrer les donnes
dans 2 colonnes (ou plus). Cette possibilit permet d'afficher 2 colonnes pour la liste
de choix. Normalement, Colonne lie devrait permettre de slectionner la ligne
contenant plusieurs colonnes et d'insrer comme valeur la deuxime la deuxime.
Entte de Colonne: cette proprit permet d'afficher la premire ligne comme en-tte
de colonne.
Largeur de colonne: permet de spcifier la largeur en centimtre de la colonne de
choix.
Lignes affiches (zone de liste droulante uniquement): Cette proprit permet de
choisir le nombre de lignes affiches sans ascenseur dans les zones de listes
droulantes.
Largeur Liste (zone de liste droulante uniquement): permet de dterminer en
centimtres la largeur de la liste.
Limiter liste (droulante uniquement): permet de limiter les valeurs slectionner
uniquement la liste reprise ci-dessus. Cette possibilit est utile dans de nombreux
cas.

Pour rappel, dans les proprits du champ, vous pouvez galement utiliser la proprit Null
Interdit et surtout Chane vide autorise. Ceci permet de taper un espace comme valeur.

Liste de choix par table


La deuxime possibilit de crer une liste de choix utilise une table (ventuellement une
requte pour un classement en ordre croissant). Cette possibilit permet de crer une table
reprenant tous les choix possibles. Pour ajouter ou modifier des donnes, il suffit de modifier
la table.

Commenons par crer une table reprenant nos diffrentes possibilits. Cette table que nous
appellerons TITRE ne contient qu'un seul champ, que nous appellerons Titre, galement cl
primaire.
Rentrons dans cette table les diffrentes possibilits: Monsieur, Madame, ...

69

Reprenons la table adresse et pour le champ titre, modifions les proprits du type pour
slectionner "Assistant Liste de choix". Slectionnons "Je veux que la liste de choix
recherche les valeurs dans une table ou une requte".

Comme table, slectionnons notre table Titre et slectionnons le champ titre.

Ajustons la taille de la colonne pour reprendre l'ensemble des donnes l'affichage. Et voil.
Notre liste de choix est cre. De plus comme le champ titre de la table Titre est dj trie par
ordre croissant, il n'y a plus aucune opration faire.

Liste de choix par requte de regroupement.


Cette possibilit va nous permettre de reprendre les donnes dans une requte, sauf que la
requte est de type regroupement. Cette solution permet de rentrer des valeurs dans notre table
adresse, mais la liste de choix va reprendre toutes les valeurs possibles prcdemment cres.
C'est la solution la plus souple.

70

Crons une simple requte


comme ci-dessous

Ajoutons simplement la
table Adresse. Dans la
barre d'outils, slectionnons
. Cette possibilit va crer
une

requte

de

regroupement. De ce fait,
notre requte (appelons-l
titre

regroupement)

va

reprendre toutes les donnes


dj tapes dans la table
Adresse
Titre.

pour

le

champ

Comme

tri,

slectionnons Croissant.

Il ne nous reste plus qu' crer une liste de choix dans la table adresse reprenant cette requte.
N'oubliez pas de mettre la proprit de la zone de liste, limiter liste sur non.

71

CrationdeMacro
Qu'est ce qu'une macro?
Une macro reprend une ou plusieurs commandes Access excutes les unes la suite des
autres, chacune excutant une tche prcise. Les actions excutes peuvent tre l'ouverture (la
fermeture) d'un formulaire, imprimer un tat ou rafrachir la fentre en cours par une
procdure vnementielle.
Dans le chapitre 7 de cette formation, nous avons utilis l'aide de l'assistant pour crer un
menu de dmarrage. Cette mthode pour crer une macro a l'avantage d'tre simple et le
dfaut d'avoir un choix d'actions limites.
L'autre possibilit utilise le menu Macro. Cette solution permet d'autres choix, mais galement
de faire excuter plusieurs actions les unes derrire les autres. Nous verrons dans le chapitre
suivant que ces macros sont surtout utilises dans les procdures vnementielles. Analyser
toutes les macros Access serait trop long, ce chapitre reprend donc les principales.
Nous n'utiliserons pas dans cette formation Access les modules, plus spcifiques la
programmation.
Une dernire remarque, la diffrence des macros de Word ou d'Excel, une macro Access
n'est pas enregistre en suivant vos actions mais bien en slectionnant les commandes
disponibles.

Notre premire macro


Commenons par une cration simple. Slectionnons le menu Macro et cliquons sur le bouton
Nouveau. La fentre suivante apparat.

72

La fentre Macro est divise en 3 parties:


1. la partie action, en haut gauche (en gros une liste de choix), reprend la liste des
commandes disponibles.
2. une partie commentaire optionnelle
3. en dessous les options en fonction de l'action slectionne.
Nous allons crer une macro qui ouvre un formulaire pour dbuter.
Slectionnons comme action "Ouvrir Formulaire"

Dans la partie en bas, slectionnez le formulaire l'aide de la liste droulante. Comme mode
d'affichage, vous avez le choix entre: Formulaire (le mode standard), cration (modification
du formulaire), aperu avant impression, feuille de donnes, ...

Vous pouvez galement crer un filtre ou une condition ou slectionner le mode Donnes:
1. Ajout
2. Modification
3. Lecture seule
Cette macro peut tre utilise avec un bouton (cf. le chapitre 7 de cette formation) ou comme
procdure vnementielle (le chapitre suivant).

Macro d'ouverture et fermeture.

73

Commenons par les macros permettant d'ouvrir ou de fermer une table, une requte, un
formulaire ou un tat. Le principe est le mme pour toutes.
Les procdures d'ouverture commencent toutes par ouvrir

Ouvrir une table: OuvrirTable


Cette macro n'est pas trs diffrente de la macro ci-dessus qui ouvrait un formulaire. Elle est
mme plus simple. Un premier point intressant est le mode d'ouverture: ajout (uniquement
ajout d'enregistrement), modification (ajout, lecture et modification, c'est le mode qui offre le
plus de possibilits), lecture seule (pas de modification possible).
L'utilisation de la macro d'ouverture d'une requte OuvrirRequte est parfaitement identique.

Ouvrir un tat: OuvrirEtat


Cette macro d'ouverture d'tat est similaire celle d'une table ou d'une requte. La seule
distinction vient du mode affichage qui peut tre en impression directe (immdiate) ou Aperu
avant impression. Dans ce dernier mode, l'utilisateur doit confirmer la demande d'impression.
Cette option est prfrable, elle vite des erreurs de choix qui imprimeraient des dizaines de
pages inutiles.

Fermer
Toutes les commandes de fermeture sont rassembles sous 1 seule macro: Fermer. Le choix
du type et du nom de l'objet se dfinissent dans les options de la commande.

74

Macro de recherche
Sont regroupes ici les commandes permettant de rechercher des donnes l'aide d'une macro
dans une table, requte ou formulaire actif. L'utilisation de ce type de commande ncessite
donc une ouverture de formulaire, table ou requte dans la mme macro au pralable ou
l'utiliser.
Les options de la commande macro TrouverEnregistrement sont similaires aux recherches
manuelles d'Access.

Pour continuer la recherche, vous pouvez utiliser la commande TrouverSuivant qui ne


possde pas d'options.

Macro de dplacement
La commande AtteindreEnregistrement est parfaitement identique au bouton de navigation
et de recherche Access. La commande AtteindrePage permet de se dplacer dans les pages
d'un tat.

75

Quelques macros spciales

Comme le but de ce cours Access n'est pas d'analyser toutes les macros, je rassemble ici
quelques macros spcifiques utilises dans des cas spciaux.

Actualiser.
Actualiser permet d'actualiser les donnes de la table en cours ou mme des tables et requtes
utilises par le formulaire actualis. Elle vite de fermer et de redmarrer le formulaire en
cours. Nous l'utiliserons rgulirement dans les exercices.
Le Nom de contrle permet de ne ractualiser qu'une valeur du formulaire.

Transfrer en Excel (importer ou exporter)


Cette commande permet d'importer une feuille Excel comme table dans Access ou de
transfrer une table ou une requte vers un fichier Excel. Le nom du fichier - feuille excel et
table - base de donne Access doit tre mentionne.

76

Slectionner objet
Cette dernire commande SlectionnerObjet permet de slectionner un objet (tat, formulaire,
requte ou table) en cours de travail. Elle est utilise en combinaison avec les fonction de
recherche ci-dessus par exemple.

Exemples de Macro.
Pour rappel, les macros peuvent tre utilises l'aide de bouton ou l'aide de procdures
vnementielles (un click sur un objet par exemple, ce sera le prochain chapitre). Nous nous
intressons ici aux macros dveloppes pour les boutons. D'autres exemples de macros sont
repris dans l'utilisation de la barre d'outils ci-dessous.

Macro ouvrant un formulaire et fermant le formulaire prcdant.


Soit un formulaire "Menu" de dpart" et un bouton ouvrant le formulaire "facture" en mode
lecture seule. Ce type d'application assez classique va utiliser 2 lignes de commande:
A. La commande pour fermer le formulaire Menu

B. L'ouverture du formulaire "Facture". N'oubliez pas l'option "Lecture seule" qui empche
toutes modifications des donnes.

77

Enregistrer votre macro. Pour crer le bouton, utilisez la procdure vue prcdemment et
slectionner la macro cre

L'impression d'un tat avec retour au formulaire de dpart.


Cette macro va utiliser 1 lignes de commandes, ventuellement 2
A. Ouverture de l'tat en impression directe (sans aperu avant impression)

B. Dans le cas ou plusieurs formulaires sont ouverts simultanment, vous pouvez rajouter la
commande de slection suivante.

Ajustons la taille de la colonne pour reprendre l'ensemble des donnes l'affichage. Et voil.
Notre liste de choix est cre. De plus comme le champ titre de la table Titre est dj trie par
ordre croissant, il n'y a plus aucune opration faire.

La barre d'outils macro.

78

Cette barre d'outils Access comporte de nombreux petits utilitaires qui vont nous permettre de
tester nos macros.
1. Noms de macros permet de faire des "sous-macros", de crer une macro regroupant
plusieurs macros internes
2. Conditions: permet de crer une ou plusieurs conditions pour l'excution de
commandes.
3. Insrer une ligne permet d'insrer une commande entre 2 lignes d'une macro.
4. Supprimer une ligne permet de supprimer une ligne de commande
5. Excuter permet d'excuter la macro en cours.
6. Pas pas permet d'excuter votre macro ligne par ligne
7. Assistant cration n'est accessible que si vous crez une condition d'excution de la
ligne de commande.

Nom de la macro.
Cette fonctionnalit permet de crer une macro rassemblant plusieurs procdures et de choisir
l'excution d'une ou l'autre selon les besoins. Cette possibilit permet notamment de ne crer
qu'un fichier macro pour l'ensemble ou une partie de votre base de donne Access.
Crons la macro suivante qui va ouvrir le formulaire "client" en mode ajout, ouvrir le
formulaire "Facture", imprimer l'tat "YBET" en mode direct et reslectionner le formulaire
facture.
Ouverture du formulaire client

Ouverture du formulaire facture

Imprimer l'tat YBET

79

Slectionner le formulaire facture:

Cette macro pourrait tre utilise telle quelle. Pourtant, nous dsirons scinder notre macro:
utiliser les 3 dernires lignes de la macro ensemble. Nous allons donner un nom de macro
partie de la deuxime ligne. Cliquer sur le bouton "Nom de macro" dans la barre d'outils fait
apparatre une colonne en plus. Tapons formulaire macro en regard de notre deuxime ligne
de commande.

En registrez cette macro sous le nom "formulaire" et crons un nouveau formulaire de menu.
Crons un bouton de navigation et slectionnons comme commande Divers - excuter une
macro. La liste des macros disponibles apparat de la manire suivante:

Formulaire n'excute que la premire ligne de commande


Formulaire.formulaire facture les 3 dernires lignes de commandes de notre macro
Cette mthode ne permet donc pas de mlanger des macros, sauf que nous aurions pu insrer
une ligne de commande "Excuter macro":

Condition
Cette possibilit va nous permettre de crer des conditions pour qu'une ligne de commande
s'excute.
Supposons dans un formulaire de rentre des factures que nous souhaitons un message dans le
cas o le code du client est nul. Slectionnez le bouton "Condition" et utilisez l'assistant:

80

La macro devient:
s
Enregistrez la macro sous le nom condition, par exemple. Si nous excutons la macro
condition alors que le champ code client est vide, le message suivant est affich.

Pour terminer
Crer une macro Access n'est pas trs complique. L'utilisation de ces lignes de commandes
l'aide d'un bouton a dj t vue. Un chapitre suivant (procdures vnementielles) va aller
plus loin dans l'utilisation des macros puisque nous allons pouvoir crer un vnement
automatique en fonction de diffrents critres.

81

Champscalculs
Jusque maintenant dans ce cours, les seuls calculs que nous avons effectu avec Access se
faisaient dans les Etats, et encore avec seulement 4 fonctions: somme, minimum, maximum,
moyenne. Dans une base de donne, les calculs se font dans les Etats, mais uniquement sur la
valeur d'un champ pour un ensemble d'enregistrements. Dans de nombreux cas, nous devons
calculer directement sur une ligne (sur un enregistrement).
Prenons un exemple: une facturation reprend la quantit, le taux de TVA et le prix unitaire
d'une marchandise. Il nous reste calculer le prix hTVA, TVAc, ... De mme, dans une
gestion de stock, nous pouvons tre amen calculer le stock rel comme la diffrence entre
les entres et les sorties. Pour Excel, la solution passe par des calculs directs (cours excel:
fonction), la solution en Access passe par un champ calcul.
Les champs calculs sont valables pour les requtes, formulaires et tats mais vous ne pouvez
pas utiliser cette fonctionnalit pour une table.
Comme exercice, nous allons monter une petite facturation sous Access. Commenons par
crer une nouvelle base de donne vide. Dans cette base de donne Access, crons une simple
table reprenant les champs suivants:

Appelons cette table "contenu facture". En effet, la base de donne sera ventuellement
complte par la suite par des tables supplmentaires comme l'en-tte de facture, les produits,
clients, ...

Champ calcul dans une requte


Passons maintenant en mode requte et utilisons le mode assistant. Slectionnons la
table:contenu facture

82

Enregistrons notre requte sous le nom TVAc.


Dans la colonne suivante, nous souhaitons calculer sous Access le prix hTVA payer. Dans
champ, tapons hTVA:[Quantite]*[Prix]. Access ne tient pas comptes des majuscules minuscules.

hTVA est le nom du champ cr


: signale le calcul
[texte]: reprsente le nom du champ de la table / requte.

De mme, dans la colonne suivante, faisons le calcul montant TVAc, la fonction devient:
tvac: [htva]*(1+[TVA]/100). Notez que le calcul tient compte d'un taux de TVA en chiffre
normal (pas en pourcentage) puisqu'il est divis par 100. Le champ calcul prcdemment
(hors TVA) est bien repris comme un champ de la requte.

Pour crer un champs calcul dans une requte: dans la case champ,
tapez: Nom du nouveau champ:calcul o calcul est valeur * [nom de champ inclus
dans la requte]
83

Passons en mode affichage par le bouton

en haut gauche (barre d'outils cration) et

rentrons les donnes suivantes:

Access calcule automatiquement le montant hTVA et le montant TVAc.

Champ Access calcul dans un formulaire.


Crer un calcul Access dans un formulaire n'est gure plus difficile. A l'aide de l'assistant,
crons un formulaire Access reprenant tous les champs de la table "Contenu facture" en mode
tabulaire.

Une fois le formulaire cr, utilisez la barre d'outils pour crer une zone de texte. Une zone de
texte permet en fait d'insrer un champ. La zone cre reprend une tiquette (reprise dans
l'exemple ci-dessus comme Texte8) et une zone de champ reprise dans l'exemple ci-dessus
comme indpendant.
Dans la zone de texte, tapons =[Prix]*[quantite]. Si nous affichons les proprits de ce
champ, la source de contrle est remplac par notre texte. Nous pouvons galement changer le
nom de notre zone de texte par hTVA. L'tiquette associe n'est pas modifie, elle ne
reprsente qu'un texte descriptif qui peut dans notre cas tre effac. Vous pouvez passer en
mode formulaire pour vrifier que le montant hors TVA est bien mis jour en fonction du
prix et de la quantit dans notre formulaire contenu facture.
84

Pour le prix TVA comprise, nous allons utiliser l'autre mthode qui consiste utiliser les
fonctionnalits de la fentre proprits. Mme si cette possibilit n'a pas encore t aborde
dans ce cours en ligne (mais fait dj partie de la matire vue dans notre formation Access en
entreprise ou dans nos salles de formation) Crez une nouvelle zone de texte, slectionnez-l
avec la touche droite de la souris pour afficher la fentre de proprits. Dans la case "Source
Contrle", slectionnez la zone l'extrieur droit:

. Ceci nous permet d'afficher le

gnrateur d'expression.
En cliquant sur les petits +, ouvrez Formulaires -> Formulaires chargs. Slectionnez Quantite
(Valeur) et double cliquez dessus (Utilisez le bouton Coller fonctionne galement). Taper
dans la fentre au-dessus * et slectionnez les champs, tapez les valeurs souhaites pour
obtenir: tvac: [htva]*(1+[TVA]/100)

85

En mode visualisation, votre formulaire Access doit afficher ceci:

Champs Access un tat.


Pour avoir dj travaill sur les tats Access, nous avons dj fait des options de synthses.
Cette fonction permet de faire une somme, maximum, minimum et moyenne sur des valeurs
d'un mme champ pour des enregistrements spcifis. Nous allons utiliser la mme technique
que pour les formulaires. Commenons par crer un tat l'aide de l'assistant en utilisant de
nouveau la table "Contenu Facture", sans regroupements.
Utilisez le mme principe qu'avec le formulaire pour crer les champs calculs hTVA et
TVAc

86

Les fonctions de calcul hors TVA et TVA comprise sont identiques celles des formulaires:

87

TPn:BasedeDonnes

Notions de bases : Qu'est-ce qu'une base de donnes ?

Une base de donnes (son abrviation est BD, en anglais DB, database) est une entit dans
laquelle il est possible de stocker des donnes de faon structure et avec le moins de
redondance possible. Ces donnes doivent pouvoir tre utilises par des programmes, par des
utilisateurs diffrents. Ainsi, la notion de base de donnes est gnralement couple celle de
rseau, afin de pouvoir mettre en commun ces informations, d'o le nom de base. On parle
gnralement de systme d'information pour dsigner toute la structure regroupant les moyens
mis en place pour pouvoir partager des donnes.
Une base de donnes est :

une collection de donnes relies les unes aux autres ;


une donne est un fait qui a t enregistr et qui possde un sens implicite.

Par exemple :

les noms, prnoms, adresses et tlphones de mes amis,


sont enregistrs dans mon carnet d'adresses.

Plus prcisment :

une BD reprsente un certain aspect du monde rel (l'univers du discours) ;


c'est une collection cohrente de donnes structures.

Une base de donnes est :

conue, implante et peuple de donnes, dans un objectif prcis;


destine des utilisateurs identifis,
accessible par des applications rpondant aux besoins des utilisateurs.

88

BD = ensemble structur de donnes


accessibles simultanment par
plusieurs utilisateurs en temps opportun
Une base de donnes peut tre de taille et de complexit variables....

mon rpertoire tlphonique (une centaine de couples <nom, adresse>)


la liste des livre dune bibliothque (ISBN, Genre, Auteur, Titre)
la liste des albums dune Major (Artiste, Titre, Genre)

Caractristiques de l'Approche "Bases de Donnes"

Catalogue (mta-donnes) : le schma est contenu dans la BD


Vues multiples sur la BD : des donnes virtuelles drives et non stockes
Indpendance donnes-programmes : sparation des niveaux logique et physique
Accs concurrents : gestion qui s'appuie sur la notion de transaction
Performances : mthodes d'accs et optimisation des requtes

Bases de Donnes et Systme d'Information : les acteurs

Sur le devant de la scne :


o Administeurs de bases de donnes
o Concepteurs d'applications de bases de donnes
o Programmeurs d'applications de bases de donnes
o Utilisateurs
Derrire le rideau :
o Concepteurs et dveloppeurs de bases de donnes
o Dveloppeurs d'outils
o Oprateurs d'exploitation

Exercice 1 : Access cration de table

Le contexte choisi pour le dveloppement des TPs est la gestion d'une discothque.
Lancement de ACCESS
1. Lancer ACCESS depuis le menu Dmarrer/Microsoft Office/ Access. Vous devez obtenir
l'cran suivant. Choisissez l'option " Nouvelle base de donnes ".

89

2. Choix du nom et de l'emplacement de la base de donnes


Vous allez crer une base de donnes appele Bd-Tpnom (mettez votre nom la fin) vous
DEVEZ IMPERATIVEMENT la placer dans un rpertoire sur le disque utilisateurs (u:).
Une fois que vous avez appuy sur OK une nouvelle fentre s'ouvre vous demandant le nom
de la nouvelle base de donnes.

90

Appelez votre base de donnes bd-tpnom (bd-tp suivi de votre nom). L'extension devra par
contre tre '.mdb'. Regardez l'aide de l'explorateur les fichiers que Access a crs. Combien
y en a t-il ?
3. La fentre d'accs la base de donnes
Revenez Access vous devez avoir l'cran ci-dessous:

91

Cette fentre apparat chaque fois que vous ouvrez votre base de donnes (en mode standard).
Elle permet d'accder aux diffrents types d'objets que l'on peut crer en Access.

Les tables, bien videmment (pour stoker des donnes).


Les requtes qui sont en fait des vues (pour interroger les tables),
Les formulaires qui servent d'interface entre l'utilisateur de la base et les donnes ellesmmes (pour que lutilisateur puisse lancer des requtes).
Les tats qui permettent de dfinir des ditions.
Les macros qui permettent de lancer automatiquement les commandes les plus
couramment utilises dans une base, telle que Ouvrir un formulaire, ...
Les modules : ensembles de procdures ou fonctions crites en VBA qui permettent de
dcrire des traitements sur la base tels que ouverture de formulaire, modification de
donnes dans une table, cration d'une requte, ...

4. Il est demand de crer les tables dcrites ci-dessous, en respectant scrupuleusement les
noms donns aux tables et aux champs.
Des informations concernant la cration des tables sont dcrites dans : Aide
Quelques rgles sont respecter :
1. Ne pas mettre d'accent, d'espace ou de caractres particuliers dans les noms des tables, ou
92

des champs, et respectez les noms donns,


2. Donnez systmatiquement la description des noms des champs,
3. Pour dfinir prcisment le type de donnes d'un champ, penser rduire au maximum la
taille des champs,
4. Lorsque l'on prcise des proprits sur les valeurs de certains champs, utilisez la proprit
valide si pour assurer la cohrence de vos donnes, et d'autre part dfinissez un message
d'erreur explicite.
5. Le symbole

plac devant un champ dans la description d'une table, signifie que ce

champ fait partie de la cl de la table.


6. Tous les champs de type texte devront s'afficher en majuscule sauf indication contraire.

Les caractristiques dcrites ci-dessous, peuvent se traduire au niveau des tables de 2 faons.
Soit en termes de proprits des champs, soit en termes de proprits au niveau des relations
entre tables.
Chanson : Un enregistrement de cette table correspond une chanson dans un album. Il est
noter qu'une mme chanson peut apparatre dans plusieurs albums.

Comme pour la plupart des autres tables les cls de type texte seront des chanes de
caractres formes de 5 caractres (sauf indication contraire).
L'ordre de la chanson est un entier compris entre 1 et 20.

Album : Une ligne de cette table correspond la description d'un album. Le titre, mme si
nous pouvons considrer qu'il est unique, ne sert pas de cl. La raison de l'introduction du
champ CodeAlbum en tant que cl, est le fait que l'on vite d'utiliser en cl des champs de
type texte de dimension trop grande. Ici par exemple on peut considrer que TitreAlbum sera
au moins de longueur 50.
93

Artiste : Une ligne correspond un artiste ou groupe

Le nom de l'artiste ne peut pas tre vide.

Genre : Une ligne dcrit un genre musical.

Astuces :
Copie d'un attribut vers une autre table. Il suffit de se placer en mode cration sur la table
source, de slectionner les lignes correspondantes aux attributs qui nous intressent, de les
copier. Ensuite dans la table destination, en mode cration, faire coller.

Lors de la cration de plusieurs tables "ressemblantes", se placer dans la fentre Base de


Donnes, copier la table source et coller dans cette fentre la table, ACCESS demande
automatiquement le nom de la nouvelle table. Vous pouvez ensuite modifier la table obtenue.

Cration d'une table


Lors de la cration d'une table, la fentre suivante s'ouvre :

94

Elle permet de choisir un mode de cration pour la nouvelle table. En ce qui nous concerne
nous crerons nos tables en Mode Cration.
Une fois ce mode de cration choisi, il reste dfinir les diffrents champs de la table. La
premire tape consiste leur donner un nom, et un type, et une description. Il reste ensuite
dfinir les proprits du champ.

Les types de donnes


Access propose 10 types de "base" dcrits ci-dessous.

95

1. Texte : C'est le type par dfaut. Il s'agit de texte ou combinaisons de texte et de


nombres, ainsi que des nombres qui ne ncessitent pas de calculs, tels que des
numros de tlphone. Une valeur de type texte contient 255 caractres au maximum
ou la longueur dfinie par la proprit Taille de champ (Field Size) si elle est
infrieure.
2. Mmo : Texte assez long ou combinaisons de texte et de nombres. Jusqu'
65 535 caractres.
3. Numrique : Permet de stocker des donnes numriques utilises dans des oprations
mathmatiques. La proprit Taille du champ permet de spcifier la nature des
nombres manipuls.
1. Octet : Nombres entre 0 et 255. (1 octet)
2. Entier : Nombres entre 32 768 et 32 767. (2 octets)
3. Entier long : (Valeur par dfaut) Nombres entre 2 147 483 648 et
2 147 483 647. (4 octets)
4. Rel simple : Nombres entre 3,402823E38 et 1,401298E45 pour les
valeurs ngatives et entre 1,401298E45 et 3,402823E38 pour les valeurs
positives. (4 octets)
5. Rel double : Nombres entre 1,79769313486231E308 et
4,94065645841247E324 pour les valeurs ngatives et entre
1,79769313486231E308 et 4,94065645841247E324 pour les valeurs
positives. (8 octets)

4. Date/Heure : Permet de grer des valeurs de date et heure pour les annes comprises
entre 100 et 9999. (8 caractres)
5. Montaire : Permet de grer des valeurs montaires et des donnes numriques
utilises dans des oprations mathmatiques sur des donnes de 1 4 dcimales.
Prcision 15 chiffres gauche de la virgule et 4 chiffres droite. (8 caractres)
6. NumroAuto : Il s'agit d'un numro squentiel unique (incrment de 1 en 1) ou
numro alatoire attribu par Access lorsqu'un nouvel enregistrement est ajout une
table. Les champs NumroAuto ne peuvent pas tre modifis. (4 octets)
7. Oui/Non : Permet de grer des valeurs boolennes (Oui et Non) et des champs qui
contiennent exclusivement une valeur duale (Oui/Non, Vrai/Faux, ou Actif/Inactif).
(1 bit)
8. Objets OLE : Permet d'insrer dans une base de donnes des donnes telles qu'une
feuille de calcul, un document texte, une image, des graphiques, des sons ou toute
autre donne binaire. Ce type d'objet peut tre li ou incorpor une table.
9. Liens Hypertexte : Texte ou combinaisons de texte et de nombres enregistres sous
forme de texte et utilises comme adresse de lien hypertexte.
Une adresse de lien hypertexte peut comprendre jusqu' trois parties :
a. Texteaffich : texte qui apparat dans un champ ou contrle.
b. Adresse : chemin d'accs vers un fichier (chemin UNC) ou une page (URL).
c. Sous-adresse : emplacement dans le fichier ou la page.
La mthode la plus simple pour insrer une adresse de lien hypertexte dans un champ
consiste cliquer sur Lien hypertexte dans le menu Insertion.
96

10. Liste de choix : L'assistant Liste de choix Cre un champ qui permet de choisir une
valeur partir d'une autre table ou d'une liste de valeurs l'aide d'une zone de liste ou
d'une zone de liste modifiable.

Proprits des champs


Taille du champ : Cette proprit permet de spcifier la taille maximale des donnes pouvant
tre contenues dans un champ pour les donnes de type Texte, Numrique ou NumroAuto.
Format : Vous pouvez utiliser la proprit Format pour personnaliser l'affichage et
l'impression des chiffres, des dates, des heures et du texte. La proprit Format utilise
diffrents paramtres selon les types de donnes. Elle n'affecte que l'affichage des donnes,
elle n'affecte pas leur enregistrement. Si vous dfinissez la proprit Format d'un champ dans
une table affiche en mode Cration, Access utilise ce format lors de l'affichage des donnes
dans les feuilles de donnes. Il applique galement la proprit Format du champ aux
nouveaux contrles crs dans des formulaires et des tats.
Masque de saisie : Vous pouvez utiliser la proprit MasqueSaisie (InputMask) pour faciliter
l'entre de donnes et pour contrler les valeurs que les utilisateurs peuvent taper dans un
contrle de zone de texte. Par exemple, vous pouvez crer un masque de saisie pour un champ
Tlphone qui vous montre exactement comment taper un nouveau numro: (_) __-__-__-__.
On peut dfinir un masque de saisie en utilisant les caractres suivants :
0

Chiffre (0 9, entre obligatoire, signes plus (+) et moins (-) non


accepts).

Chiffre ou espace (entre facultative, signes plus et moins non


accepts).

Chiffre ou espace (entre facultative, positions vierges converties


en espaces en mode dition, mais les espaces sont effacs lors de
la sauvegarde des donnes, signes plus et moins accepts).

Lettre (A Z, entre obligatoire).

Lettre (A Z, entre facultative).

Lettre ou chiffre (entre obligatoire).


97

Lettre ou chiffre (entre facultative).

&

Caractre quelconque ou espace (entre obligatoire).

Caractre quelconque ou espace (entre facultative).

. , : ; - Sparateur de dcimales, de milliers, de date et d'heure (le


/

caractre effectivement utilis dpend des paramtres de la bote


de dialogue Proprits pour Paramtres rgionaux du Panneau de
configuration Windows).

<

Convertit tous les caractres en minuscules.

>

Convertit tous les caractres en majuscules.

Permet un remplissage du masque de saisie partir de la droite et


non de gauche droite, lorsque les caractres situs gauche du
masque de saisie sont facultatifs. Les caractres taps dans le
masque le remplissent toujours de la gauche vers la droite. Le
point d'exclamation peut tre plac n'importe o dans le masque de
saisie.

Affiche le caractre qui suit sous sa forme ASCII littrale (par


exemple, \A s'affiche sous la forme A).

Lgende : La proprit Lgende (Caption) permet de fournir des informations utiles


l'utilisateur. Les lgendes de champ spcifient le texte des tiquettes attaches aux contrles.
Elles sont cres en faisant glisser un champ partir de la liste des champs, et servent d'entte de colonne pour ce champ quand la table ou la requte est affiche en mode Feuille de
donnes.
ValeurParDfaut : Vous pouvez utiliser la proprit ValeurParDfaut (DefaultValue) pour
spcifier une valeur qui est automatiquement entre dans un champ lors de la cration d'un
nouvel enregistrement. La proprit ValeurParDfaut (DefaultValue) s'applique tous les
champs de table, l'exception des champs de type NumroAuto et Liaison OLE.
ValideSi et MessageSiErreur: Vous pouvez utiliser la proprit ValideSi (ValidationRule)
pour spcifier des conditions s'appliquant des donnes entres dans un enregistrement, un
champ ou un contrle. Lorsque des donnes ne rpondant pas aux conditions fixes par le
98

paramtrage ValideSi sont tapes, vous pouvez spcifier le message afficher l'utilisateur
en dfinissant la proprit MessageSiErreur (ValidationText) du champ.
Null interdit : La proprit Null interdit (Required) permet de spcifier si une valeur est ou
non requise dans un champ. Si la valeur Oui est attribue cette proprit, lorsque vous entrez
des donnes dans un enregistrement, vous devez entrer une valeur dans le champ ou dans
n'importe quel contrle dpendant de ce champ. De plus, sa valeur ne peut pas tre Null.
Chaine Vide autorise : La proprit AllowZeroLength permet de spcifier si une chane
vide (" ") est une entre valide dans un champ de table. La proprit AllowZeroLength
s'applique uniquement aux champs de table de type texte, mmo et lien hypertexte.
Index : La proprit Index (Indexed) permet de dfinir un champ individuel comme index.
Un index acclre les requtes sur les champs indexs ainsi que les oprations de tri et de
regroupement. La proprit Index (Indexed) utilise les paramtres suivants :
Non

(Valeur par dfaut) Pas d'index.

Oui (Doublons OK) L'index autorise les doublons.


Oui (Pas de

L'index n'autorise pas les doublons.

doublons)

Cration de la cl primaire
Une fois la description de la table termine, il faut dfinir une cl pour la table. Dans le cas o
l'utilisateur oublie de crer la cl, le message suivant apparat :
(La cl primaire est une donne unique qui permet de diffrencier chaque enregistrement,
deux albums peuvent avoir le mme auteur et le mme genre, on utilise cette cl pour les
diffrencier)

99

Si l'utilisateur rpond oui, un nouveau champ est ajout la table pour servir de cl. Ce
champ est automatiquement de type numrotation automatique.
Par contre si vous dsirez crer votre propre cl, il faut slectionner le ou les champs que vous
souhaitez dfinir comme cl primaire. Pour slectionner un champ, cliquez sur le slecteur de
ligne en regard du champ. Pour slectionner plusieurs champs, maintenez la touche CTRL
enfonce et cliquez sur le slecteur de ligne correspondant chaque champ. Puis Cliquer sur
Cl primaire dans la barre d'outils.

Dfinition des relations entre tables

En access nous parlerons de relations pour nommer les liens, et de tables pour nommer les
relations.
Liens particuliers
Pour crer une relation entre une table et elle-mme, la table doit tre ajoute deux fois dans
la fentre de dfinition des liens.
Pour dfinir plusieurs liens entre deux mmes tables celles-ci doivent tre ajoutes autant que
ncessaire dans la fentre de dfinition des liens.
Compatibilit des types
Pour dfinir les liens entre tables toutes les tables doivent tre fermes. Il n'est pas possible de
crer ou modifier des relations entre des tables ouvertes.
100

Dans la plupart des cas, le lien fait intervenir le champ cl primaire (qui est affich en gras)
d'une table avec un champ correspondant d'une autre table (souvent du mme nom) appel la
cl externe.
Les champs lis ne doivent pas obligatoirement avoir le mme nom, mais ils doivent possder
le mme type de donnes et contenir le mme type d'informations. Il existe deux exceptions
cette rgle :

un champ Numrotation automatique peut tre li avec un champ Numrique dont la


proprit Taille du champ est Entier long
un champ Numrotation automatique peut tre li avec un champ Numrique si les
deux champs ont ID de rplica comme paramtre de la proprit Taille du champ.

En outre, lorsque les champs correspondants sont des champs de type Numrique, ils doivent
avoir le mme paramtrage de la proprit Taille du champ.
Intgrit des donnes
Lors de la dfinition des rgles d'intgrit rfrentielle, Access peut refuser d'appliquer la
rgle si les donnes contenues dans la base invalident la rgle en cours de dfinition.
Dans ce cas il faut rendre cohrente la base avant de redfinir les rgles d'intgrit.
5. Cration des relations entre tables
Pour complter le modle relationnel propos il est demand de dfinir les liens entre les
tables cres. (Un lien permet de lier deux table entre elle grce un champ prsent dans
les deux tables. Exemple : Album et Chanson CodeAlbum)
Attention ne pas tenir compte de la table Exemplaire

101

La dfinition d'une relation entre deux tables est ralise grce la boite de dialogue suivante

:
Il est possible d'appliquer l'intgrit rfrentielle, de mettre jour en cascade les champs
correspondants, d'effacer en cascade les enregistrements correspondants, et de dfinir le type
de jointure que l'on souhaite avoir pour les tables concernes.
Pour chacune des relations que vous dfinirez, pensez dfinir des rgles de mises jour qui
garantissent un maximum de cohrence pour votre base de donnes.
Pouvez-vous expliquer les problmes rencontrs lors de la cration des liens?
6. Saisie de donnes
Nous vous demandons maintenant de saisir les informations suivantes dans votre base de
donnes.
Artiste
102

Le blanc dans l'attribut CodeGenre correspond la valeur NULL.


Genre

Aller sur un site Internet type FNAC pour trouver des titres dalbum, lartiste, les
chansons et le genre.
Exemple :
Artiste :

James

Blunt

Titre album : All the lost souls


Genre : pop rock
Chansons :
1 1973
2 One of the brightest stars
3 I'll take everything
4 Same mistake
5 Carry you home
6 Give me some love
7 I really want you
8 Shine on
9 Annie
10 I can't hear the music
Pouvez-vous expliquer pourquoi vous avez rencontr des problmes dans certains cas et pas
dans d'autres cas.

Cration de formulaire
103

Lorsque l'on cr un formulaire il est ncessaire de passer par certaines tapes. Nous
prsentons ci-dessous la cration d'un formulaire simple en prsentant les diffrentes
caractristiques d'un formulaire.
Etape 1 : Demande de cration
Il est possible de crer soi-mme un formulaire ou de demander l'Assistant Formulaire de
Microsoft Access de s'en charger pour soi. L'Assistant Formulaire permet de gagner du temps
en excutant pour vous les tches essentielles. Il pose des questions et cre un formulaire en
fonction

des

rponses.

Mme si la cration de formulaires peut sembler simple, il est utile de faire appel un
Assistant Formulaire pour crer rapidement tous les contrles d'un formulaire. On peut
ensuite basculer en mode Cration pour personnaliser le formulaire.
Lorsque l'on demande la cration d'un formulaire la fentre suivante apparat :

A cette tape on choisit le mode de cration pour le formulaire ainsi que la source de
donnes, qui peut tre une table ou une requte.
Pour la cration de notre formulaire nous choisirons la table Genres.
Etape 2 : Construction du formulaire

104

En mode d'apprentissage il convient d'utiliser le mode cration pour bien comprendre ce que
vous faites et les possibilits offertes par Access.
En mode d'apprentissage il convient d'utiliser le mode cration pour bien comprendre ce que
vous faites et les possibilits offertes par Access.

Le formulaire ci-dessus est construit en utilisant la bote outils qui permet de choisir les
contrles placer dans le formulaire.
Il est possible de faire apparatre les noms des champs de la source de donnes lorsque celleci existe. En ralisant un presser-dplacer d'un nom de champ de cette fentre vers la fentre
du formulaire, on place un contrle de type zone de texte li au champ utilis.
Nous dcrivons les principaux contrles dans l'ordre o ils apparaissent dans la bote outils.
tiquette : Contrle qui affiche du texte descriptif un titre, une lgende ou des
instructions dans un formulaire ou dans un tat.
105

Zone de texte : Zone utiliser pour afficher, entrer ou modifier les donnes de la source
sous-jacente d'un formulaire ou d'un tat, pour afficher les rsultats d'un calcul ou accepter
des donnes entres par un utilisateur.
Groupe d'options : Contrle utilis en conjonction avec des cases cocher, des boutons
d'options ou des boutons bascule de manire afficher un jeu de valeurs alternatives.
Zone de liste : Contrle qui permet de manipuler une liste droulante de valeurs. En mode
Formulaire, on peut raliser une slection dans la liste pour entrer une valeur dans un nouvel
enregistrement ou pour modifier la valeur d'un enregistrement existant.
Bouton de commande : Permet d'excuter des actions, par exemple, rechercher un
enregistrement, imprimer un enregistrement ou appliquer un filtre formulaire.
Il est demand de crer le formulaire FAlbum suivant :

Les Requtes

106

Des informations concernant les requtes en ACCESS sont dcrites dans : glossaire et aide sur
le site http://circe.univ-fcomte.fr/Sylvie-Damy/bd/tp-2005/index.html
Les exemples de requtes prsents ci-dessous utilisent la table chansons suivante:

Il est demand de crer les requtes suivantes :

RSTitres
Cette requte donne le titre et l'ordre des chansons contenues dans l'album N 10000.
L'affichage tant ralis par ordre alphabtique sur le titre des chansons.

RSTitresL
Donne les enregistrements de la table chansons dont le titre commence par la lettre "L".

107

RTitres73
Donne les noms des chansons et des artistes des albums sortis en 1973. L'affichage tant
ralis par ordre alphabtique des artistes et des titres de chansons.

108

Sources
http://www.commentcamarche.net/bdd/bddintro.php3
http://www.ybet.be/access/formation_access.htm

109