Vous êtes sur la page 1sur 368

sans

Thierry Capron
taboo
DExcel
Access
Croiser, extraire et analyser ses donnes
Pour que linformatique
soit un outil
et non un ennemi !
sans
taboo
Pour un traitement plus performant de vos donnes !
> Construisez une base de donnes minimale grce aux listes de
Access, l o Excel sarrte donnes sous Excel et Calc
Quand il faut consigner chiffres > Triez et filtrez des enregistrements dans vos listes de donnes
et donnes, le premier rflexe est de
recourir au classique tableur Excel (ou > Exploitez vos listes de donnes laide de la fonction Sous-total
Calc). Cependant, par crainte de satta- et des tableaux croiss dynamiques
quer aux concepts redouts des bases > Modlisez une base de donnes relationnelle prenne et volutive
de donnes, ou par mconnaissance, sous Access et Base
lutilisateur se prpare des lendemains > Concevez les tables et leurs diffrents champs
difficiles. En effet, le tableur est vite
dbord mesure que les besoins aug- > Crez une table par importation de fichiers Excel et Calc
mentent. Dans bien des cas, il suffit de > tablissez les relations entre les tables matres et esclaves
faire jouer les fonctionnalits de base de > Btissez vos formulaires et alimentez votre base
donnes dExcel ou mme de passer
Access (ou Base) pour crer et grer ses > Apprenez crer et modifier des requtes de slection
donnes dans une vritable base. > Identifiez les doublons et les enregistrements sans correspondance
> Effectuez des calculs, tests conditionnels et manipulations
de chanes de caractres
> ditez et modifiez vos tats
Thierry Capron est diplm de lESCP. Il a
exerc diverses responsabilits opration-
nelles en entreprise durant 15 ans (CBS, qui sadresse cet ouvrage ?
Arcelor Mittal, Point P). Depuis 10 ans, il > Aux associations, TPE et PME dont la base de donnes atteint une
consacre tout son temps la formation en
masse critique ingrable avec des feuilles de calcul Excel ou Calc.
comptabilit et bureautique auprs de
publics varis (EDF GDF, Eurocopter, Ceram > Aux utilisateurs dExcel et de Calc qui se sentent limits par
Sophia Antipolis). lorganisation en feuilles et classeurs.
> Aux dbutants en base de donnes qui veulent partir

Conception : Nord Compo


Tlchargez les fichiers des cas pratiques du bon pied aussi bien sous MS-Office que sous
sur www.editions-eyrolles.com OpenOffice.org.
DExcel
Access
Croiser, extraire et analyser ses donnes
Ouvrages consacrs Excel et Access
Excel 2007 avanc. Access 2007 Missing Manual.
P. Moreau et P. Mori. M. MacDonald.
N12217, 2008, 240 pages. N12096, 2007, 740 pages.

Excel Missing Manual. Access 2003.


M. MacDonald. P. Mori et Y. Picon.
N12095, 2007, 818 pages. N11490, 2004, 422 pages.

Mmento Excel. VBA pour Access 2003.


M. Grey et M. Bergame. A. Taylor et V. Anderson.
N11756, 2005, 14 pages. N11465, 2004, 636 pages.

Excel 2003 Programmation VBA.


D. David.
N11622, 2005, 272 pages.

Ouvrages consacrs Calc et Base

OpenOffice.org 2 Calc. Mmento Calc OpenOffice.org 2.


S. Gautier, avec la contribution de J.-M. Thomas. S. Gautier et M. Bergame.
N11667, 2006, 220 pages. N11729, 2005, 14 pages.

OpenOffice.org Calc 2 Initiation. OpenOffice.org 2.2 efficace Writer, Calc, Impress, Draw, Base.
P. Moreau. S. Gautier, C. Hardy, F. Labb et Michel Pinquier.
N12035, 2006, 210 pages. N12166, 2007, 394 pages.

OpenOffice.org Calc 2 avanc.


P. Moreau.
N12036, 2006, 186 pages.

Collection Sans taboo

Scuriser enfin son PC Rflexes et techniques contre les virus, Mac OS X Tiger.
spams, phishing, vols et pertes de donnes. Laboratoire SUPINFO des technologies Apple.
P. Legand. N12204, 2007, 292 pages.
N12005, 2006, 400 pages .
Mac OS X Leopard.
Ciel Compta. Laboratoire SUPINFO des technologies Apple.
N. Crouzet. paratre.
paratre.

Chez le mme diteur


M. Nebra. Russir son site web avec XHTML et CSS, 2e dition. N12307, 2008, 316 pages.
P. Labbe. Photoshop CS3. N12121, 2008, 530 pages.
C. Gmy. Gimp 2.4. Dessin et retouche photo, 2e dition. N12152, 2008, 402 pages.
A. Andrieu. Russir son rfrencement web. N12264, 2008, 302 pages.
I. Taylor et B. Jelen. Analyse marketing et reporting avec Excel. N12251, 2008, 234 pages.
V. Messager Rota. Gestion de projet. Vers les mthodes agiles. N12165, 2007, 252 pages.
A. Fernandez-Toro. Management de la scurit de linformation. Implmentation ISO27001. N12218, 2007, 256 pages.
M. Grey. Mmento Firefox et Thunderbird. N11780, 2006, 14 pages.
C. Bonnin. Mmento SQL. Bases relationnelles. N06258, 1998, 14 pages.
C. Soutou. Apprendre SQL avec MySQL. Avec 40 exercices corrigs. N11915, 2006, 398 pages.
C. Soutou De UML SQL. Conception de bases de donnes. N11098, 2002, 500 pages.
H. Tardieu, A. Rochfeld et R. Colletti. La mthode Merise. Principes et outils. N52473, 2000, 352 pages (ditions dOrganisation).
D. Dionisi. Lessentiel sur Merise. N09046, 1998, 272 pages.
P. Roques. UML 2 par la pratique. tude de cas et exercices corrigs. N12322, 2008, 368 pages.
F.Valle. UML pour les dcideurs. N11621, 2005, 300 pages.
Thierry Capron sans
taboo
DExcel
Access
Croiser, extraire et analyser ses donnes
DITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.com

Le code de la proprit intellectuelle du 1er juillet 1992 interdit en effet expressment la photocopie usage collectif sans
autorisation des ayants droit. Or, cette pratique sest gnralise notamment dans les tablissements denseignement,
provoquant une baisse brutale des achats de livres, au point que la possibilit mme pour les auteurs de crer des uvres
nouvelles et de les faire diter correctement est aujourdhui menace.
En application de la loi du 11 mars 1957, il est interdit de reproduire intgralement ou partiellement le prsent ouvrage,
sur quelque support que ce soit, sans autorisation de lditeur ou du Centre Franais dExploitation du Droit de Copie, 20,
rue des Grands-Augustins, 75006 Paris.
Groupe Eyrolles, 2008, ISBN : 978-2-212-12066-0
Avant-propos
Btir une base de donnes relationnelle ne simprovise pas. louverture
des cours Access que nous donnions au Ceram Sophia Antipolis, nous
demandions aux tudiants si lun deux connaissait ce logiciel et ce quil en
pensait. La meilleure rponse fut quAccess est un logiciel dlicat . Qui-
conque sest frott ce type de logiciel sans prparation, sans connais-
sance et sans mthode particulire, apprciera la pertinence de la remarque.
Ces futurs managers ntaient pas particulirement ports sur linforma-
tique et encore moins sur la bureautique. Pourtant, en deux jours, ils
taient capables de monter une base de donnes relationnelle simple
pour grer leurs problmes quotidiens de planning, doccupation de
salles, voire de trsorerie ou de gestion du personnel.
Ce livre reprend les outils pdagogiques dvelopps cette occasion et
tests grandeur nature avec un excellent taux de russite. Dans la pre-
mire partie notamment, il expose de faon dtaille les tonnantes listes
de donnes, bases de donnes simplifies sous tableur, trs largement
mconnues et sous-utilises pour tre complet sur le sujet.

qui sadresse ce livre ?


Vous grez pniblement les statistiques commerciales de votre entreprise
grand renfort de classeurs, de feuilles de calcul et de formules
alambiques ? Vous devez suivre le planning doccupation des salles de
runion ou celui des prochaines vacances ? Vous devez grer les membres
et les cotisations de votre association ? Vous voulez suivre vos prts de
DVD ? Vous souhaitez connatre linventaire de votre cave vin et en
grer la consommation ?
DExcel Access

Que ce soit pour des besoins professionnels ou personnels, vous trou-


verez dans cet ouvrage plusieurs applications de la mme notion de base
de donnes. Ce livre est un condens de lexprience accumule en for-
mation sur ce thme pour des publics trs varis (tudiants, cadres, mais
galement employs en rorientation professionnelle...).
Nul besoin dtre un virtuose du clavier ou un champion des macros
pour sapproprier cette mthode. tre laise avec son ordinateur, ma-
triser lessentiel de Windows et des fonctions de base dun tableur suffi-
ront amplement.

Quelles sont les caractristiques de cette


mthode ?
Structurer son approche dun logiciel de base de donnes conditionne
99 % la russite dun projet. Cest donc trs logiquement que nous met-
trons ici laccent sur la mthodologie de travail plus que sur les techni-
ques pures qui, de toute faon, trouveront naturellement leur place en
temps et en heure.
De plus, pour intresser le public le plus vaste possible, lensemble de nos
explications sont directement applicables par les utilisateurs de Micro-
soft Office 2003 et 2007 (Access et Excel) ainsi que par ceux
dOpenOffice.org 2.2 (Base et Calc).

Priorit la mthode de travail


Avec Access et Base, et dans une moindre mesure avec Excel et Calc,
concevoir, programmer et exploiter une base de donnes ncessite certes
des comptences techniques, mais surtout et avant tout une mthode de
travail prcise et une approche mthodologique sans faille. Aussi avons-
nous ax notre dmonstration sur le droul dune mthodologie rigou-
reuse et teste avec succs, inspire en partie de la mthode Merise.
Au plan des techniques proprement dites, Access et Base sont des logi-
ciels extrmement vastes, touffus et complexes avec lesquels le risque de
perdre de vue lessentiel est important. Aussi avons-nous fait le choix de
ne dvelopper que les techniques incontournables, celles quil est impos-
sible de ne pas connatre. Heureusement, les choses sont bien faites :
elles suffisent rsoudre la plupart des cas qui se prsenteront vous !
Toutefois, nous avons pu prsenter la quasi-intgralit de ce quExcel et
Calc proposent en matire de liste de donnes le sujet est plus simple.

VI
Avant-propos
100 % compatible Microsoft Office (2003 et 2007) et
OpenOffice.org 2.2
Cette mthode aborde les bases de donnes sous deux angles : les
tableurs et les bases de donnes relationnelles. Nous nous devions de
maintenir cette ouverture sur le plan des logiciels traits. Nous avons
ainsi choisi de prsenter les solutions apportes par la dernire version de
Microsoft Office (Excel et Access 2007) car elle deviendra terme la
plus rpandue, mais nous navons pas oubli les utilisateurs de la version
prcdente (Excel et Access 2003). Enfin, soucieux de fournir au lecteur
une ouverture sur le monde du logiciel libre, nous traitons galement
dOpenOffice.org 2.2 avec Calc et Base.
Puisquil fallait bien choisir un angle de vue privilgi pour les explica-
tions et les captures dcran, nous avons dcid daxer notre expos par
dfaut sur Excel et Access 2007. chaque fois que cela a t ncessaire,
nous avons spcifi les particularits des versions 2003 ou
OpenOffice.org 2.2 dans des sections ou encadrs spcifiques.

Que trouverez-vous concrtement dans ce


livre ? RESSOURCE Les cas pratiques du livre sont
la fin de ce livre, vous serez capable de concevoir, programmer et disponibles en tlchargement
exploiter des listes de donnes sous tableur (chapitres 1 4) ou des bases Tous les cas pratiques de cet ouvrage, logiciel par
de donnes relationnelles simples (chapitres 5 13). Ces deux parties, logiciel et chapitre par chapitre, sont disponibles
indpendantes, sont articules chacune autour de leur cas pratique, vri- en tlchargement sur le site des ditions Eyrolles.
B www.editions-eyrolles.com
tables fils directeurs pdagogiques.

Les listes de donnes sous tableur (Excel et Calc)


Les listes de donnes sous tableur sont, tort, trs largement mcon-
nues. Pourtant, elles offrent des possibilits tonnantes et sont trs sim-
ples dutilisation. Plus dune fois, il nous est arriv de conseiller nos
clients dadopter pour leurs statistiques commerciales une solution de ce
type. Les retours de terrain, manant aussi bien des fonctionnels chargs
de llaboration de ces listes de donnes que des oprationnels qui en
taient destinataires, ont toujours t excellents en termes de fiabilit, de
rapidit et de finesse.
Le chapitre 1 balaye, un peu la manire dune bande-annonce, les
avantages dcisifs mais trop peu connus des listes de donnes par rapport
aux feuilles de calcul traditionnelles.

VII
DExcel Access

Le chapitre 2 traite des rgles de construction dune liste de donnes per-


formante et fiable, celle qui vous fera gagner du temps. Il aborde gale-
ment les tonnantes analyses visuelles quautorise Excel 2007, notamment.
lissue du chapitre 3, vous saurez tout des possibilits de tri et de slec-
tion denregistrements dans une liste de donnes.
Enfin, dans le chapitre 4, la dcouverte et la mise en uvre des fonctions
de sous-total et de tableau crois dynamique vont vous permettre de raliser
toutes les analyses statistiques de votre liste de donnes, mettant ainsi dfi-
nitivement au placard les bonnes vieilles fonctions Somme () et autres .

Les bases de donnes relationnelles (Access et Base)


Access et Base sont des logiciels dlicats dutilisation quil est impossible
daborder comme un traitement de texte ou un tableur. Priorit est donc
donne lapproche mthodologique, aussi bien pour la prparation du
travail (la modlisation) que pour la programmation proprement dite. Le
concept cl de relation est particulirement dvelopp.
Le chapitre 5 est ax sur la dcouverte du vocabulaire et des principes
fondamentaux qui prsident au fonctionnement des bases de donnes
relationnelles.
Les mthodes danalyse et de modlisation du modle traiter sont
dtailles au chapitre 6. Cest une particularit importante de cette
mthode que de traiter, en termes clairs et simples, tous les concepts
fondamentaux qui vous permettront coup sr de dfinir prcisment le
dessein et lorganisation de votre base de donnes relationnelle.
Le chapitre 7 permet de se familiariser avec linterface logicielle et les
oprations essentielles (crer et ouvrir une base, grer les problmes de
scurit, crer une table et ses champs...).
Ltablissement des relations entre les tables, fondement du modle rela-
tionnel dune base de donnes, fait lobjet du chapitre 8. Essentielle
entre toutes, cette tape valide dfinitivement le travail de modlisation
et de programmation ralis en amont.
Le chapitre 9 traite des mthodes dentre des donnes dans une base,
par saisie directe (dans la table ou via un formulaire) ou par importation
partir de fichiers existants.
Une base de donnes relationnelle ne trouve de justification quau travers
des analyses quon peut raliser sur ses donnes. Les requtes servent de
support ces analyses. Vous saurez btir, manipuler et modifier une
requte danalyse des donnes simple aprs ltude du chapitre 10.

VIII
Avant-propos
Les chapitres 11 et 12 poussent les requtes dans leurs derniers retran-
chements, pour effectuer par exemple des slections denregistrements
multicritres ou encore des calculs, un peu la manire dun tableur.
Le chapitre 13, quant lui, clt lanalyse des bases de donnes relation-
nelles par les tats/rapports qui servent, comme leur nom lindique,
visualiser et imprimer les tables ou les requtes de manire claire, lisible
et professionnelle.
Enfin, il nous a paru intressant dapporter en annexe des complments
dinformation, tout dabord sur la mthode de modlisation Merise, puis
sur les droits et obligations du citoyen et du professionnel au regard de la
Commission Nationale Informatique et Libert.

Remerciements
En comparant les preuves finales avec le tout premier jet de ma rdac-
tion, je ne peux que mesurer lnorme travail de conseil, daccompagne-
ment et de structuration qua ralis toute lquipe ditoriale Eyrolles.
Sans compter une patience, une disponibilit et une bonne humeur
toute preuve. Un norme bravo et toute ma reconnaissance Sandrine,
Sophie, Matthieu et Aurlie avec qui jai travaill en direct, ainsi qu
toutes celles et ceux que je ne connais pas et qui ont apport leur contri-
bution ce livre.
Comment ne pas saluer aussi comme il convient la dream team du
Ceram Sophia Antipolis, Marc, Michel et Fred : Access et PCIE, a
forge des souvenirs...
Merci aussi tous les anciens participants mes cours et sessions de for-
mation. Ils mont rappel tous les jours que si une explication nest pas
comprise cest quelle nest pas claire.
Enfin, toute ma reconnaissance Bernard qui a su voici maintenant
quelques annes porter mon premier projet ddition et Marie-Pierre
qui continue peut-tre contre vents et mares croire en dautres livres.

IX
Table des matires
1. PREMIERS PAS VERS LES BASES DE DONNES ................... 1 Rgle 5 : pas de formule 23
Un traitement de texte ne sait pas grer une base de donnes, Les rgles de validation dune liste de donnes 24
mme trs simple 2 Le paramtrage des rgles de validation proprement dites 25
Le tableur et ses filtres : une solution plus performante 4 Limiter les entres un nombre entier ou dcimal 26
Appliquer un filtre pour slectionner des enregistrements par- Limiter les entres aux donnes dune liste 27
ticuliers 4 Crer une rgle de validation personnalise 28
Changer la slection opre par un filtre 6 Lannulation des rgles de validation 29
Les listes de donnes sous tableur : un pas vers les bases de Laide la saisie et les messages derreur 29
donnes 8 Le dtail des rgles de validation conseilles pour notre cas
Lexpos de notre cas pratique dtude des listes de donnes 8 pratique 31
Notre mission 9 Les mises en forme conditionnelle de liste de donnes 32
Notre cahier des charges simplifi 9 Les mises en forme conditionnelles spcifiques Excel 2007 32
Une dfinition dune base de donnes 10 Isoler un lment dans une srie 33
Pourquoi la solution tableur feuille-classeur Identifier les dix premiers lments dune srie 34
ne convient pas 10 Visualiser la place de chaque lment au sein de la srie 36
Le choix de lorganisation feuille-classeur idale 11 Les mises en forme conditionnelles dExcel 2003 et de Calc 37
Aucune solution feuille-classeur ne saura voluer 12 Synthse : btir une liste de donnes efficace sous tableur :
La solution : les listes de donnes sous tableur 13 structure, rgles de validation et mise en forme 39
La liste de donnes est souple et volutive 13
La liste de donnes sadapte parfaitement au changement 13 3. TRIER ET SLECTIONNER DES ENREGISTREMENTS
Synthse : les avantages des listes de donnes sous tableur 15 DANS LES LISTES DE DONNES .......................................41
Comment accder aux fonctions de liste de donnes 42
2. BTIR UNE LISTE DE DONNES EFFICACE SOUS TABLEUR : STRUC- Les tris de liste de donnes 43
TURE, RGLES DE VALIDATION ET MISE EN FORME ........... 17 Trier sur un seul champ 44
Dfinitions pralables 18 Trier selon un ordre personnalis 44
Les listes de donnes et bases de donnes : Crer une liste personnalise 45
lorganisation de linformation 18 Trier selon une liste personnalise 46
Les champs : la structure 18 Effectuer plusieurs tris successifs 47
Les enregistrements : le contenu 19 Les filtres ou la slection denregistrements 49
Bien structurer une liste de donnes 19 Les filtres simples 50
Rgle 1 : les noms de champ en premire ligne 20 Appliquer un filtre sur un champ unique 50
Rgle 2 : les enregistrements les uns au-dessous des autres 21 Appliquer un filtre sur plusieurs champs 51
Rgle 3 : ni ligne ni colonne vide 22 Dsactiver un filtre 51
Rgle 4 : pas de mise en forme inutile 23 Les filtres volus 52

XI
DExcel Access

Les filtres volus spcifiques Excel 2007 53 La mthode dlaboration dune base de donnes relationnelle 100
Les autres filtres volus dExcel 2007 et 2003 et de Calc 55 La phase de modlisation 100
Synthse : les tris et les slections denregistrements par filtre 57 La mise en uvre pratique dune base de donnes relationnelle 100
La structure dun SGBDR et ses diffrents objets 101
4. EXPLOITER LES LISTES DE DONNES : LES SOUS-TOTAUX ET LES Les phases de la programmation dune base de donnes
TABLEAUX CROISS DYNAMIQUES .................................. 59 relationnelle 103
Totaux et sous-totaux dans une liste de donnes 60 Synthse : base de donnes relationnelle et mthode de travail
Insrer un niveau unique de sous-total 61 avec un SGBDR 105
Exploiter les sous-totaux de listes de donnes 64
Afficher la liste intgrale des enregistrements, 6. LA MODLISATION DUNE BASE DE DONNES
des sous-totaux et du total gnral 64 RELATIONNELLE .........................................................107
Affiner lanalyse : dvelopper ou rduire chaque sous-total 64 Prsentation de notre cas pratique de base de donnes
Supprimer les sous-totaux 66 relationnelle 108
Imbriquer plusieurs niveaux de sous-totaux 66 Btir le schma thorique de la base de donnes relationnelle 109
Moyenne, nombre, variance et autres carts types 68 Dterminer les lments du schma thorique avec la phrase cl 110
Des tats danalyse entirement paramtrables : les tableaux Individualiser les lments de la phrase cl 111
(graphiques) croiss dynamiques 71 Caractriser les lments de la phrase cl 111
Crer un tableau crois dynamique avec lassistant Crer un viter les principaux piges du schma thorique 112
TCD 72 Ne pas crer dlment inutile 112
Exploiter un TCD 75 Ne pas crer un schma thorique en boucle 114
Faire varier la dimension filtre 76 Dduire le schma rel du schma thorique 114
Modifier la structure du TCD 77 Dterminer dfinitivement les tables du schma rel 115
Actualiser un TCD 79 Dterminer les champs et la cl primaire de chaque table 117
Organiser ses TCD 80 tablir les relations entre les tables 118
Le graphique crois dynamique 80 Les principales tapes de la programmation dAccess et de Base 120
Les GCD sous Excel 2007 80 tape 1 : programmer les tables 120
Les GCD version Excel 2003 84 tape 2 : tablir les relations 121
Synthse : les fonctions de sous-total et de tableau (graphique) tape 3 : saisir les donnes 121
crois dynamique sont les instruments indispensables danalyse tape 4 : programmer formulaires, requtes
dune liste de donnes 87 et tats/rapports 122
Synthse : modlisation et mthode de programmation dun
5. INTRODUCTION AUX BASES DE DONNES RELATIONNELLES 89 SGBDR 122
Les limites des listes de donnes 90
Une liste de donnes est un cas particulier dune base 7. OPRATIONS ESSENTIELLES
de donnes 90 SUR UNE BASE DE DONNES ........................................125
Une liste de donnes est une base de donnes Crer une nouvelle base de donnes relationnelle 126
aux performances limites 91 Ouvrir une base de donnes relationnelle existante 128
Les concepts fondamentaux des bases de donnes relationnelles 93 Autoriser louverture de la base pour une session seulement
Les tables : regroupement des donnes dun mme domaine 93 sous Access 2007 130
Les relations entre les tables 94 Autoriser dfinitivement louverture de toutes les bases dun
Tables matres et tables esclaves 97 dossier sous Access 2007 131
La cl primaire : identifiant unique dun lment de table 97 Utiliser lcran daccueil dune base de donnes relationnelle 133

XII
Table des matires
Crer une table 134 Paramtrer une liste de choix par rapport une table
Les caractristiques des champs dune table 135 avec Access 175
Utiliser des noms de champs pertinents 135 Utiliser lassistant Liste de choix par rapport une table 176
Dfinir une cl primaire efficace 136 Paramtrer la fentre des relations avec Access 182
Faciliter la saisie avec un masque de saisie 137 Anatomie de la fentre des relations avec Access 183
Interdire labsence de saisie 137 Paramtrer lintgrit rfrentielle des relations avec Access 183
Crer une nouvelle table 138 tablir les relations avec Base 185
Crer les champs dune table 139 Fonctionnement de la fentre des relations avec Base 185
Mthode gnrale de cration dun champ 140 Paramtrer une relation dans la fentre des relations avec Base 187
Crer le champ cl primaire numrotation automatique 141 Rsoudre les difficults lies au paramtrage des relations 189
Crer un champ numrotation automatique 141 Des donnes ont t saisies avant le paramtrage des relations 189
Dclarer un champ cl primaire 142 Il manque une cl primaire pour une table 190
Crer un champ ordinaire 143 Une table contient une cl primaire inattendue 190
Crer un champ de type Texte 144 Il nexiste pas de liste de choix entre la table esclave et sa table
Crer un champ de type Date 145 matre (Access) 191
Crer un masque de saisie sous Access 145 Synthse : le verdict des relations 192
Crer un champ de type tlphone 148
Crer une table par importation de donnes 150 9. CRER UN FORMULAIRE ET SAISIR LES DONNES ............195
Caractristiques des donnes importer 150 quoi sert un formulaire ? 196
Importer des donnes externes dans une table Access 150 Crer un formulaire de saisie simple 198
Importer dautres objets Access 153 Crer un formulaire avec lassistant 198
Importer des donnes et des programmes sous Base 155 Dterminer la table et les champs du formulaire 200
Modifier la table rsultante aprs importation 156 Choisir laspect du formulaire 202
Manipuler les objets dune base de donnes 156 Le formulaire en mode Contenu 203
Comprendre lutilit des deux modes daffichage dun objet 156 Modifier un formulaire 205
Ouvrir un objet directement dans le mode adquat 158 Modifier ltiquette dun contrle de formulaire 209
Basculer dun mode daffichage lautre 158 Dplacer et redimensionner un contrle dun formulaire 209
Fermer, supprimer et copier un objet 159 Crer un formulaire avec liste de choix sous Base 210
Synthse : oprations essentielles sur une base de donnes 160 Insrer la liste de choix 211
Insrer ltiquette de la liste de choix 214
8. TABLIR LES RELATIONS ENTRE LES TABLES .................. 163 Aller plus loin avec les formulaires 215
Crer toutes les tables de notre cas pratique 164 Crer un formulaire pour agir sur deux tables la fois 215
Crer la table des Guides 167 Crer un menu douverture pour nophyte avec Access 218
Crer la table des Activites 168 Crer le formulaire de menu 218
Crer la table des Inscriptions 168 Automatiser louverture dun formulaire 221
Crer la table des BureauxGuides avec Base 169 Saisir et modifier les donnes 222
tablir les relations par liste de choix avec Access 170 Les spcificits de la saisie des donnes dans une base
Paramtrer une liste de choix manuelle avec Access 171 de donnes relationnelle 222
Utiliser lassistant Liste de choix manuelle 171 Les contraintes dintgrit rfrentielle 222
Vrifier et scuriser la liste de choix avec Access 173 Les donnes sont enregistres immdiatement 223
Assigner une valeur par dfaut dans une liste de choix 174 Saisir, modifier et supprimer des donnes 225

XIII
DExcel Access

Saisir un formulaire ou directement dans la table 225 Visualiser la requte de non-correspondance 267
Saisir des donnes avec un formulaire 225 Le mode Cration de la requte de non-correspondance 268
Saisir des donnes directement dans une table 226 Le mode SQL de la requte de non-correspondance 268
Modifier et supprimer des donnes 227 Crer la requte de non-correspondance en mode SQL avec
viter les difficults lies la saisie de donnes 228 Base 270
Il faut respecter les proprits du champ 228 Crer le code SQL de requte de non-correspondance 270
Il faut respecter le principe dintgrit rfrentielle 229 Crer la requte de non-correspondance en mode SQL 271
Synthse : les formulaires et la saisie des donnes 230 Identifier les doublons dans une table 271
Crer une requte de recherche de doublons avec lassistant
10. EXPLOITER LES DONNES AVEC UNE REQUTE SIMPLE .. 233 Access 273
Quest-ce quune requte ? 234 Modifier une requte existante 275
Plusieurs types de requtes 235 Crer une requte de recherche de doublons en mode SQL 278
Rflexions pralables la cration dune requte 236 Synthse : rechercher des enregistrements particuliers dans une
Choisir les champs participant une requte 236 base de donnes 279
Choisir le mode de cration de la requte 237
Crer une requte simple 237 12. EFFECTUER DES CALCULS ET DES SYNTHSES
Crer une requte avec lassistant Access 238 AVEC UNE REQUTE ....................................................283
Slectionner les champs de la requte (tape 1 de Prendre en compte une modification du cahier des charges 284
lassistant) 238 Identifier les modifications de la base suite au nouveau cahier
Choisir le type de requte (tape 2 de lassistant) 239 des charges 285
Enregistrer la requte (tape 3 de lassistant) 240 Modifier la base de notre cas pratique 287
Crer une requte en mode Cration/bauche 241 Crer des champs calculs 291
Crer une nouvelle requte en mode Cration/bauche 242 Connatre la syntaxe dun champ calcul dans une requte 291
Insrer les tables participant la requte 242 Effectuer un calcul arithmtique 292
Insrer les champs participant la requte 243 Manipuler les chanes de caractres avec Access 297
Comprendre les rsultats dune requte en mode Contenu 244 Effectuer un test conditionnel avec Access 298
Sexercer crer des requtes 246 Raliser des synthses avec une requte 301
Faciliter la saisie des donnes avec une requte sous Access 248 Crer une requte de synthse avec lassistant Access 301
Crer la requte source 248 Crer une requte de synthse en mode Cration/bauche 303
Crer le formulaire bas sur la requte 249 Organiser son travail avec les requtes 304
Synthse : exploiter les donnes avec une requte simple 252 Grer lajout et la suppression de donnes 305
Crer une unique requte avec tous les calculs 306
11. ISOLER DES ENREGISTREMENTS PARTICULIERS DANS Synthse : effectuer des calculs et des synthses avec les requtes 307
UNE BASE DE DONNES .............................................. 255
Modes cration/bauche, assistant et SQL : sorienter 256 13. DITER TABLES ET REQUTES AVEC DES TATS/RAPPORTS
Raliser des slections denregistrements 257 PROFESSIONNELS ....................................................... 309
Crer une requte slection 257 Crer un tat/rapport en trente secondes 311
Crer une requte slection paramtre 258 Crer un tat simple avec lassistant Access 311
Combiner les critres de slection 260 Crer un rapport simple avec lassistant Base 316
Utiliser les critres de slection volus 262 Sentraner la cration dtats/rapports 319
Identifier des enregistrements sans correspondance 262 Crer un tat de synthse avec Access 319
Crer la requte de non-correspondance avec lassistant Access 263 Dterminer les champs participant ltat 320

XIV
Table des matires
Dterminer le niveau de regroupement 321 Le schma rel de lcole de parapente 339
Paramtrer le tri et les synthses effectuer et terminer
lassistant 322
Lanalyse critique de ltat obtenu 324 B. DROITS ET OBLIGATIONS EN MATIRE DE BASE
Modifier un tat existant avec Access 325 DE DONNES341
Anatomie dun tat en mode Cration 326 Vos obligations en tant que gestionnaire de base de donnes 341
Manipuler les contrles 327 La notion de donnes caractre personnel 342
Slectionner un contrle 327 Dans quel cas faut-il dclarer un fichier de donnes
Modifier une tiquette ou un contrle 327 personnelles auprs de la CNIL ? 342
Dplacer un contrle 328 Vos droits en tant que citoyen face lutilisation de vos donnes
Modifier la taille dun contrle 329 personnelles 343
Supprimer un contrle inutile 329 Le droit linformation 344
Arer la prsentation de ltat 330 Le droit dopposition 344
Synthse : les tats et les rapports 331 Le droit daccs 344
Le droit de rectification 345
A. COMPLMENTS SUR LA MODLISATION ....................... 333 Exercez vos droits 345
Le schma thorique de lcole de parapente 334
Exercice sur les couples de nombres cls 336 INDEX ......................................................................347
Prcisions concernant la boucle dans le schma thorique de
lcole de parapente 338

XV
chapitre 1
Premiers pas
vers les bases de donnes

SOMMAIRE
B Le traitement de texte :
une solution inadapte
Grer une base de donnes nimpose pas ncessairement
dutiliser un logiciel complexe comme Access ou Base. B Le tableur et ses filtres :
une solution plus performante
partir dun exemple trs simple, nous allons dcouvrir
B Les listes de donnes sous
ici les avantages dcisifs des bases de donnes simplifies tableur : un pas vers les bases
que sont les listes de donnes sous tableur. de donnes

MOTS-CLS
B Liste de donnes sous tableur
B Filtre de liste de donnes
B Base de donnes
B Cahier des charges simplifi
DExcel Access

Grer une base de donnes noblige pas ncessairement dutiliser un logi-


ciel spcifique et complexe tel quAccess ou Base. Les tableurs Excel et
Calc possdent en effet le mode Liste de donnes permettant, avec un
minimum dinvestissement en temps, de crer et dexploiter une base de
donnes simple.
Lobjet de ce chapitre est de prsenter globalement ce mode, largement
mconnu et donc sous-employ par la majorit des utilisateurs. Il sarti-
cule autour de deux comparaisons, la premire entre traitement de texte
et liste de donnes, la seconde entre utilisation classique du tableur et
liste de donnes.

Un traitement de texte ne sait pas grer


une base de donnes, mme trs simple
Dans la palette des outils les plus utiliss en bureautique figure en tte de
liste le traitement de texte. Nous allons voir ici pourquoi, mme pour un
problme trs simple, il ne peut apporter de solution efficace, et com-
ment la liste de donnes sous tableur fait bien mieux en termes de facilit
et de performances.
Rien ne vaut un exemple concret : dans une cole de commerce, nous
devons organiser la prsence des tudiants au cours de bases de donnes,
car on sy bouscule. Huit dates sont programmes, chacune voyant
chacun des quatre groupes dtudiants suivre une sance d1h30 dans la
seule salle suffisamment spacieuse pour les accueillir tous.
Nous devons ainsi grer trois informations pour convoquer les bons tu-
diants le bon jour, sachant que le cours aura toujours lieu au mme endroit :
le groupe dtudiants concern (qui ?) ;
le jour (quand ?) ;
et enfin le crneau horaire (prcision sur le quand ?).
Ce planning peut parfaitement se prsenter sous forme de tableau de
traitement de texte. Le premier rflexe (et pas le meilleur, nous verrons
pourquoi) peut donc tre de prendre Word ou Writer et de construire un
tableau texte comme celui de la figure 11.
Sa structure est on ne peut plus simple :
Dabord trois colonnes correspondant aux informations fournir aux
tudiants : le Groupe, la Date, le Crneau horaire, chacun de ces
titres tant saisi en en-tte de chaque colonne.
Figure 11
Un planning sous traitement de texte, trs Ensuite, les uns au dessous des autres, les diffrentes combinaisons
simple mais aux possibilits bien limites groupes/jour/crneau. En considrant quil y a quatre groupes et huit

2
1 Premiers pas vers les bases de donnes
sances par groupe, notre tableau doit comporter 8 4 = 32 lignes,
en plus de celle den-tte.
Difficile de faire plus simple, peut-tre. Mais en parallle difficile de
faire plus inoprant. Que pouvons-nous en effet faire de ce tableau,
part le punaiser lentre de chaque salle ?
On peut bien sr le trier. Il est actuellement tri par groupe, nous pour-
rions le trier par date ou par crneau :
Sous Word 2007, dans longlet Outils de tableau Disposition, cliquez
sur le bouton Trier du groupe Donnes.
Sous Word 2003, dans le menu Tableau, utilisez le bouton Trier.
Sous Writer, cliquez sur le bouton Trier du menu Tableau.
Voil, cest peu prs tout et ce nest pas grand chose... Imaginons par
exemple que nous voulions distribuer tous les tudiants leur planning
et uniquement leur planning. Tous les groupes tant prsents sur le
mme tableau, et les traitements de texte ne sachant pas masquer tem-
porairement certaines lignes, on ne pourra queffectuer des copier coller
au sens premier du terme, cest--dire avec des ciseaux et de la colle...
Pas trs performant, non ? Ce problme se posera de la mme faon
quand lintervenant du 17 novembre nous demandera son planning (et
uniquement le sien).
Bref, notre tableau sous traitement de texte ne nous rendra gure de services.

JAI UNE QUESTION Et les fonctions de mailing de Word ?

Vous affirmez que Word est disqualifi pour grer les bases de donnes. Pourtant je gre
personnellement les mailings de mon entreprise entirement sous Word et je men porte
trs bien. Alors ?
Si cette faon de procder vous convient, continuez sans arrire pense ; vous trouverez
mme dexcellents ouvrages qui vous y aideront. Ceci dit :
Le module de mailing de Word a t dvelopp pour ceux qui ne souhaitent pas sini-
tier aux bases de donnes. Le fait que vous lisiez ces lignes prouve que vous nen
faites plus partie.
Les fonctions de mailing de Word et Writer restent bien au dessous, tant en ergo-
nomie quen performance, de ce que vous pourrez faire avec Excel ou Access la fin
de ce livre, surtout en ce qui concerne les slections de donnes (les abonns de telle
ville, les clients de tel dpartement, les produits de telle gamme, les ventes sup-
rieures la moyenne des ventes, les employs de tel ge, etc.).

3
DExcel Access

Le tableur et ses filtres : une solution plus


performante
Un tableau, sous traitement de texte comme sous tableur, comporte des
lignes et des colonnes. Rien nempche donc de transformer notre plan-
ning de la figure 11 pour obtenir son quivalent tableur de la figure 12
(ici, sous Excel 2007, les prsentations Excel 2003 et Calc sont quasi-
ment identiques), soit en le recrant intgralement, soit, plus facilement,
en procdant par copier/coller.
Remarquez combien sa prsentation est plus attractive. Et surtout,
observez les flches apparues ct de chacun des trois en-ttes de
colonnes : elles vont nous permettre deffectuer des slections denregis-
trements particuliers, par exemple pour isoler le planning du groupe 2 ou
du 17 novembre.

TECHNIQUE Obtenir lapparence de la figure 12

Excel 2007 : ces bandes alternativement grises et blanches (en fait bleues et blanches) et
ces flches ct de chacun des en-ttes de colonne ne sobtiennent simplement quavec
Excel 2007 (dans longlet Accueil, groupe Style, cliquez sur loutil Mettre sous forme
de tableau).
Excel 2003 : ces mmes flches sobtiennent par le menu Donnes, option Filtres puis
Filtres automatiques. Pour les alternances de couleur, par contre, il faudra vous
dbrouiller la main...
Pour Calc, le menu Donnes, options Filtres puis Autofiltre fait apparatre les flches.
Pour les lignes de couleurs alternes, il faudra aussi se dbrouiller la main...

Maintenant, en quoi ce tableau sous tableur est-il plus performant que


Figure 12 son petit frre sous traitement de texte ? Nous allons lexprimenter en
Un planning Excel bien plus performant quelques clics !

Appliquer un filtre pour slectionner des


enregistrements particuliers
La fonction Filtre des tableurs (Excel ou Calc) permet disoler trs sim-
plement certaines lignes (enregistrements) selon des critres entirement
personnalisables.
Nous souhaitons par exemple isoler les lignes relatives au groupe 2. Cli-
quons sur la flche ct de len-tte Groupes, en A1. Une liste drou-
lante apparat (figure 13).

4
1 Premiers pas vers les bases de donnes
Figure 13
Les possibilits de filtre
pour la colonne (champ) Groupes

Le haut de la bote de dialogue de la figure 13 permet deffectuer des tris, EXCEL 2003 ET CALC
mais le plus intressant ici se situe plus bas, au-dessous de la zone Filtres Appliquer un filtre
textuels, o nous retrouvons la liste de nos quatre groupes. Ils sont tous
Les botes de dialogue Excel 2003 et Calc diffrent
cochs, ce qui signifie quils sont tous actuellement affichs. Si nous dco- lgrement de la figure 13, mais offrent avec une
chons les groupes 1, 3 et 4 pour ne conserver coch que le 2 et que nous ergonomie semblable les mmes fonctionnalits,
validons, nous obtenons laffichage du groupe 2 uniquement (figure 14). voir page 7.

Figure 14
Lapplication dun filtre
naffiche que certaines lignes.

Observons laffichage de la figure 14 :


La flche ct de len-tte Groupes sest orne dune sorte d enton-
noir. Il signifie quun filtre est appliqu sur cette colonne. EXCEL 2003 ET CALC
Excel naffiche que le groupe 2 parce quil a masqu les lignes des Reprer quun filtre est actif
autres groupes. Cest vident si on observe les intituls de numros de Lentonnoir prsent sur la flche de la liste drou-
ligne lextrme gauche de chaque ligne : les lignes 2 9 ont tempo- lante dun filtre nest prsent que sous Excel 2007.
rairement disparu. De plus, Excel affiche ces numros de ligne en Pour Excel 2003 et Calc, la flche change de cou-
leur et devient bleue.
bleu pour bien nous rappeler quun filtre est actuellement en cours.

5
DExcel Access

Changer la slection opre par un filtre


Appliquer un nouveau filtre alors quun autre filtre est dj appliqu
recle un pige ; il faut faire attention dans ce cas ne pas appliquer par
mgarde les deux filtres ensemble.
Nous voulons par exemple donner son planning notre intervenant du
17 novembre. Il suffit deffectuer exactement le mme type dopration
que prcdemment, cette fois-ci sur la colonne Crneau, sans oublier
dannuler ventuellement tout filtre dj actif. Dans notre exercice, il
faudra :
1 Commencer par annuler un filtre actif. Sous Excel 2007, cliquez sur
la liste droulante du filtre appliqu la colonne, slectionnez
loption Slectionner tout dans la zone au dessous de Filtres textuels ;
lentonnoir correspondant disparat et les lignes masques rapparais-
sent pour afficher tous les champs. Pour Excel 2003 et Calc, cochez
respectivement les options Tout ou Tous.
2 Activer la slection denregistrement sur le champ Dates. Pour cela,
cliquez sur la liste droulante du filtre Dates. Excel 2007 a prvu un
regroupement par mois comme le montre la figure 15, mais cela ne
correspond pas ce que nous cherchons faire. Il suffit alors douvrir
le mois de novembre en cliquant sur la croix ct du mois pour
slectionner ce fameux 17 novembre (figure 16), puis de valider
pour obtenir ce que nous souhaitions (figure 17).

Figure 15 Figure 16
Les filtres dExcel 2007 regroupent les dates par mois Le choix dun filtre sur une date particulire (ici, le 17 novembre)

6
1 Premiers pas vers les bases de donnes
Figure 17
Le filtre sur une date particulire
(ici le 17 novembre) est appliqu.

Remarquez sur la figure 17 que seules les lignes 5, 13, 21 et 29, corres-
pondant la date du 17 octobre, sont affiches, et que les autres sont
temporairement masques. Cest le principe mme du filtre qui se con-
tente de masquer sans jamais supprimer.
Dans cette manipulation, nous avons bien pris soin dannuler le filtre sur
la colonne Groupe avant dappliquer celui sur la Date. Que ce serait-il
pass si les deux filtres avaient t appliqus en mme temps ?
Cest trs simple : quand diffrents filtres sexcutent en mme temps,
leurs effets se cumulent. Dans notre exemple, voici ce que nous aurions
obtenu pour ce 17 novembre et pour le groupe 2 (figure 18) : la ligne
unique correspondant au groupe 2 et au 17 novembre. Figure 18 Deux filtres appliqus
simultanment se cumulent.
Remarquez galement sur cette figure 18 que licne de filtre (lenton-
noir) apparat la fois sur les colonnes Groupes et Dates, preuve que des
filtres sont appliqus sur ces deux colonnes.

EXCEL 2003 ET CALC Appliquer un filtre sur des dates

Excel 2003 et Calc noffrent pas la possibilit, comme Excel 2007, de slectionner un mois
particulier. Il sagit alors simplement de slectionner dans la liste de choix du filtre correspon-
dant la date souhaite (figures 19 et 110).

Figure 19 Le choix dun critre Figure 110 Le choix dun critre de


de filtre de date sous Excel 2003 filtre de date sous Calc

Les filtres offrent bien dautres possibilits, nous les tudierons en dtail
pages 71 et suivantes.

7
DExcel Access

Les listes de donnes sous tableur : un pas


vers les bases de donnes
Le mode Liste de donnes des tableurs est celui que nous venons dutiliser
RAPPEL Feuilles de calcul et classeurs
dans lexercice prcdent, un peu comme monsieur Jourdain faisait de la
Un classeur Excel ou Calc permet, comme un clas- prose, sans le savoir. Il soppose dans sa construction et dans son utilisation
seur rel, de regrouper des feuilles de calcul trai-
tant du mme sujet pour un classement plus clair
au mode dutilisation traditionnel de ces logiciels, avec des feuilles de cal-
et un accs plus rapide linformation. On peut culs (composes de lignes, de colonnes et de formules dans tous les sens)
par exemple regrouper dans un mme classeur les regroupes en classeurs que vous pratiquez coup sr.
informations relatives un client, un produit, ou
un thme particulier. Il est possible deffectuer, Par exprience, trs peu daficionados du tableur connaissent et utilisent
dans une feuille de calcul, des calculs par rapport les tableurs en mode liste de donnes. Leur principe de base est, au lieu
des cellules dautres feuilles du mme classeur ou dclater linformation dans diffrents feuilles et classeurs, de tout
mme dautres classeurs. Ces manipulations par regrouper sur une seule feuille en un seul tableau.
ailleurs trs pratiques et performantes, un peu trop
longues pour tre dveloppes ici, sont dtailles Voyons les avantages de ces listes de donnes par rapport lutilisation
dans nombres douvrages sur les tableurs, dont PC classique du tableur. Il nest pas ncessaire dexprimenter les manipula-
trucs, du mme auteur, aux ditions Leduc.S ou
tions prsentes dans cette section, elles ne vous sont proposes qu titre
les ouvrages consacrs Excel et Calc dans la col-
lection TSoft aux ditions Eyrolles. dillustration. Leur tude dtaille au travers dun cas pratique fera
lobjet des chapitres 2 4.

Lexpos de notre cas pratique dtude des listes de


donnes
Imaginons que nous venons dintgrer en tant que contrleur de gestion
cette socit de fabrication de matriel dalpinisme, ct dAnnecy.
Pleine dides et de projets, cette dernire a acquis en quelques annes
une notorit tout fait remarquable, en particulier auprs des jeunes
amateurs de grimpe sportive, en indoor et en comptition. Son fonda-
teur, Eddy K., fou de prises et de grattons, est un jeune patron fonceur
et, surtout, a ce quil est convenu dappeler le flair des affaires et le sens
du business. Comme il a eu le talent de sassocier avec Karim L., ing-
nieur tonnamment djant mais totalement gnial, leur petite structure
a trs vite su profiter du boom de cette spcialit sportive en alliant pro-
duits innovants et image forte. Sa principale richesse est linvention de
Karim L. : une fibre textile synthtique qui combine excellence des qua-
lits physiques (rsistance et lasticit) et capacit tre teinte de milles
tonnantes faons, toutes plus fun les unes que les autres. Il en possde,
son nom propre, le brevet mondial.
Aprs quatre ans dexistence, lentreprise prvoit un chiffre daffaires de
10 millions deuros cette anne, et envisage de souvrir lEurope lan
prochain, particulirement dans les pays nordiques.

8
1 Premiers pas vers les bases de donnes
Notre mission
Ce tableau est-il idyllique ? Eh non... Comme bien souvent en pareil
cas, lintendance na pas aussi bien suivi. Notamment en matire de suivi
des performances commerciales de ses reprsentants. Conscient de
lenjeu, Eddy K. nous a confi, comme premire tche, la mise en place
des statistiques commerciales de lentreprise.
Nous sommes donc dans un schma trs classique :
une socit dynamique ;
une croissance rapide ;
une intendance qui na pas suivi ;
des besoins vitaux de statistiques simples, fiables et efficaces.
On na pas de temps perdre !

Notre cahier des charges simplifi


Tout travail sur base de donnes, aussi simple soit-il, ncessite systmati-
quement une rflexion pralable. Autant sous traitement de texte ou
sous tableur on peut toujours au dernier moment ajouter des paragraphes
ou dplacer des colonnes, autant en matire de bases de donnes ce ne
sera pas toujours possible. En clair, il faut dfinitivement perdre ses
rflexes comme je commence programmer comme a et puis on verra
bien plus tard comment a volue je pourrais toujours rajouter une ou
deux colonnes on va pas se prendre la tte . Tout simplement parce que
dans certains cas, il sera impossible de faire voluer dans le bon sens un
travail mal n et quil faudra alors tout reprendre zro. Prendre le temps
de rflchir avant et de poser sur papier clairement le contexte, les con-
traintes, les informations et le but recherch est fondamental, le temps
qui semble perdu sera conomis par la suite au moins au centuple.
Nous avons ainsi runi les informations suivantes :
Notre entreprise compte actuellement quatre reprsentants (Hlne,
Sylvie, Pierre et Jean). Ce nombre est appel crotre rapidement.
Ils interviennent indiffremment dans trois zones gographiques : la
rgion Sud, la rgion parisienne et le Nord. Ce dcoupage sera amen
changer en fonction de lvolution des marchs et dune ventuelle
nouvelle activit dexport.
Nous commercialisons trois gammes de produits : les cordes
dattache, les sangles et les mousquetons. Le dveloppement dune
gamme de baudriers est envisage pour le dbut de lanne prochaine,
les tests ont dj dmarr.
Dans ce contexte, le 24 du mois dernier, Eddy K. a t on ne peut
plus clair. Il veut, chaque lundi, le chiffre daffaires de chaque repr-

9
DExcel Access

sentant pour chaque zone et pour chaque gamme de produits,


priode par priode. Pour le reste, il ne veut rien entendre de nos
contraintes informatiques. nous de nous dbrouiller.
Nous avons ici traiter une information selon quatre axes danalyse
(quatre dimensions) :
le reprsentant :
la zone ;
la gamme de produits (que nous appellerons plus simplement produit) ;
et enfin la priode.
De plus, linformation fournie devra bien videmment tre :
fiable, cest bien le moins que lon puisse demander ;
disponible rapidement : des statistiques mensuelles exactes mais avec
trois mois de retard ne servent pas grand chose ;
volutive et conomique : il nest pas question de passer tout notre
temps grer ces statistiques, Eddy a dautres projets nous confier
par la suite.

Une dfinition dune base de donnes


Notre cas pratique nous amne runir un ensemble dinformations (Repr-
sentant, Zone, Produit et Vente) de faon suivre nos statistiques commer-
ciales. Nous pouvons donc avancer la dfinition suivante : une base de
donnes est un ensemble dinformations organise dans un but dfini .
Les exemples de base de donnes abondent : carnet dadresses, annuaire,
fichier des prospects dune entreprise, systme de gestion comptable avec
gestion des facturations et des encaissements... Pour chacun deux, notre
dfinition est valide. Par exemple, pour un systme de gestion comptable,
elle peut se personnaliser ainsi : ensemble des informations relatives aux
clients, aux produits, aux commandes et aux livraisons, organises de faon
pouvoir suivre, par client, par commande et par livraison, les factures
correspondantes et les rglements effectus . Rajouter des fonctionnalits
complmentaires, par exemple suivre les impays et les relances, pourra
amener ajouter la base de donnes des informations complmentaires,
ici en lespce les dlais de rglements thoriques accords aux clients.

Pourquoi la solution tableur feuille-classeur ne


convient pas
Dans notre cas pratique, le premier rflexe que nous pourrions avoir (
vrai dire celui quauraient 99 % des utilisateurs de tableur) serait douvrir
Excel ou Calc et de nous lancer dans la cration de classeurs avec des
tableaux complexes remplis de formules pour suivre nos statistiques.

10
1 Premiers pas vers les bases de donnes
Figure 111
Une structure dorganisation traditionnelle
(une feuille par priode, un classeur par reprsentant)

Nous pouvons par exemple choisir une organisation de nos donnes


selon le schma de la figure 111 :
un classeur par reprsentant ;
autant de feuilles que de priodes ;
les zones en colonnes et les produits en ligne de chaque feuille
(figure 112).

Figure 112
La feuille de calcul (Zone en colonne et Produit en ligne)
correspondant lorganisation feuille-classeur de la figure 111

Cette solution tableur feuille-classeur oblige disperser linformation


dans de multiples feuilles de calcul qui, mme si elles sont toutes bases
sur le mme schma, sont toutes indpendantes les unes des autres. Ceci
prsente au moins les deux dfauts rdhibitoires suivants :
Elle oblige un choix dorganisation des donnes qui ne pourra tre
modifi.
Elle ne pourra pas suivre lvolution de la structure et des besoins de
notre entreprise.
Pourquoi ?

Le choix de lorganisation feuille-classeur idale


Dans notre tude de cas, nous avons prcdemment choisi lorganisation
de la figure 111. bien y rflchir, il existe beaucoup dautres possibi-
lits dorganisation de nos donnes, par exemple celle de la figure 113,
avec un classeur par reprsentant, une feuille par zone, les priodes et les
produits en lignes et colonnes. Chaque solution potentielle privilgie un
point de vue et comporte avantages et inconvnients :
Figure 113 Une autre organisation
La figure 111 offre une vision claire des ventes par produit et par des donnes par multiplication
zone pour un reprsentant et une priode donns. de feuilles identiques

11
DExcel Access

TECHNIQUE Intervertir lignes et colonnes Par contre, si nous prfrons visualiser les ventes par produit et
dun tableau Excel ou Calc priode pour un reprsentant et une zone donns, il vaudra mieux
Dans notre cas pratique, si, pour des raisons de
opter pour la figure 113.
prsentation, nous dcidons dintervertir lignes et Nous en sommes donc rduits un choix dans lequel, objectivement,
colonnes, il faut procder ainsi : aucune solution ne simpose par rapport une autre, dautant que nous
1. Slectionner le tableau. ne serons jamais certains davoir bien compris ce quEddy avait
2. Le copier par Ctrl + C.
3. Se placer sur une feuille vierge, et via un clic demand, ni mme quil ne changera pas davis...
droit choisir Collage spcial, puis loption
Transpos. Aucune solution feuille-classeur ne saura voluer
Attention quand mme, cette manipulation
dplace contenus et format des cellules. Il vous La vie de lentreprise nest pas un long fleuve tranquille, et la vrit dun
faudra donc certainement reparamtrer intgrale- jour nest pas ncessairement celle du lendemain. Pour ce qui nous con-
ment formats et encadrements qui auront t cerne, il est tout--fait possible par exemple que la dimension Produit
chambouls par la transposition
prenne progressivement un aspect prpondrant, auquel cas aucune de
nos deux possibilits de dpart ne conviendra plus.
Et quand bien mme ce cas ne se produirait pas (ce qui est bien impro-
bable, convenez-en), larrive prvisible de nouveaux produits ( com-
mencer par les baudriers) va nous obliger reprendre tous nos tableaux.
Trs concrtement, pour ajouter un nouveau produit dans notre base
avec une solution feuille-classeur selon le schma de la figure 111
(avec les produits en ligne), il va nous falloir, pour chacune des feuilles de
chaque classeur, insrer la ligne Baudriers et reprendre toutes les for-
mules de totalisation. Avec quatre reprsentants (quatre classeurs) et un
historique de vingt-quatre priodes (cela ne fait jamais que deux ans...),
nous aurons 4 classeurs 24 feuilles = 96 feuilles modifier, avec
chaque fois une ligne insrer et toutes les formules entrer et vrifier.
Franchement, cela vous dit ?

MTHODE Le degr daccessibilit des informations dun tableur

Les donnes figurant dans les lignes et les colonnes dun tableau sont les seules tre
exploitables du premier coup dil (figure 112).
Ds quelles figurent sur une autre feuille, elles sont ncessairement moins disponibles,
car disperses en fait sur plusieurs crans et donc non visualisables en mme temps. Et
cest encore plus vrai si vous les stockez dans dautres classeurs, ou mme dans dautres
dossiers ! Donc autant viter tant que possible de disperser ses informations, par exemple
en les groupant dans le mme tableau...

12
1 Premiers pas vers les bases de donnes
La solution : les listes de donnes sous tableur
Nous venons de constater les limites de lutilisation traditionnelle du
tableur. Lalternative consiste employer des listes de donnes sous
tableur, dont les principaux avantages sont la souplesse, lvolutivit et
les performances. Les quelques exemples qui suivent vont certainement
vous en convaincre.

La liste de donnes est souple et volutive


Avec les listes de donnes, nous naurons plus besoin de nous poser la
question : quest-ce que je vais mettre en ligne, en colonne, en
feuille... . Au contraire, nous allons entrer linformation dans un seul
tableau comme nous le verrons partir du chapitre suivant et, par un
coup de baguette magique, nous pourrons la prsenter exactement
comme nous le souhaitons.
Nous pourrons par exemple fournir Eddy ltat suivant (figure 114) qui
synthtise pour tous les reprsentants les ventes par produit et par zone.
Saperoit-il de la faiblesse des ventes dans le Nord de la France ? En
Figure 114 Les ventes par produit et zone,
deux clics, nous lui fournirons lanalyse de la figure 115. toutes priodes et reprsentants confondus

Figure 115
Zoom par reprsentant et produit pour la zone Nord. Seule Sophie
a vendu des Cordes. Nous retrouvons bien les 3 930 de cordes
pour le Nord de la figure 114.

OBSERVONS Le filtre de la figure 115

En haut de cet tat, ct de lintitul Nord dans le champ Zone, apparat notre entonnoir de
filtre. Il suffira de cliquer dessus pour voir apparatre les trois zones et de slectionner celle de
son choix (la figure 116 donne la mme vision, mais cette fois-ci pour le Sud).

Figure 116 Le mme tat que la figure 115, mais pour la zone Sud

La liste de donnes sadapte parfaitement au changement


Imaginons maintenant quun nouveau reprsentant intgre lentreprise.
Avec une solution feuille-classeur traditionnelle, il y aurait plus ou
moins de travail selon loption choisie :

13
DExcel Access

Avec une organisation du type de la figure 111 ou 113 (un classeur


par reprsentant), il suffirait alors de rajouter un autre classeur pour
ce reprsentant. On se serait alors relativement bien sorti daffaire.
Encore que... Imaginons que dans ce cas nous ayons cr un classeur
de consolidation des ventes, tous reprsentants confondus. Lajout
dun nouveau classeur correspondant ce nouveau reprsentant nous
aurait oblig modifier toutes les formules de consolidation en y
intgrant le nouveau reprsentant
Si, par contre, nous avions choisi dintgrer la dimension Reprsen-
tant en ligne ou en colonne de nos feuilles de calcul, la seule solution
aurait alors t de prendre notre courage deux mains et dinsrer
dans tous les classeurs et dans toutes leurs feuilles soit une ligne, soit
une colonne pour le nouveau reprsentant... Bien videmment, il
PRODUCTIVIT 30 secondes maximum
pour tous ces tats aurait galement fallu reprendre toutes les formules...
Cerise sur le gteau, les listes de donnes se Ces deux solutions ne sont pas satisfaisantes : elles sont toutes deux trs
grent trs simplement et trs rapidement. Avec lourdes et difficilement adaptatives.
une conomie de temps et de moyens remar-
quable. titre dillustration, tous les tats des
Par contre, en mode liste de donnes, il suffit de saisir le nom du nou-
figures 114, 115, 116 et 117 ont t pro- veau reprsentant pour quautomatiquement il soit pris en compte dans
gramms en 30 secondes chrono. Qui dit mieux ? les tats avec bien videmment toutes les formules mises jour. La
figure 117 en fournit la preuve.

Figure 117
Lintgration dun nouvel lment est automa-
tique en mode liste de donnes.

14
1 Premiers pas vers les bases de donnes
Synthse : les avantages des listes de
donnes sous tableur
Une base de donnes peut se dfinir comme un ensemble dinformations
organises dans un but dfini.
Il est possible de traiter une base de donnes simple comme celle de notre
cas pratique de matriel dalpinisme sous ce mode particulier des tableurs
que sont les listes de donnes. Il prsente, par rapport une organisation
traditionnelle des donnes sous forme de feuilles et de classeurs, des avan-
tages dcisifs, en termes de simplicit, de fiabilit, dadaptabilit et de per-
formance. Nous allons en dtailler le fonctionnement au cours des
chapitres 2 4, avant daborder ltude des bases de donnes plus com-
plexes que sont les bases de donnes relationnelles partir du chapitre 5.

15
chapitre 2
Btir une liste de donnes efficace
sous tableur : structure, rgles de
validation et mise en forme

SOMMAIRE
B Dfinitions pralables
Nous allons ici apprendre construire une liste de donnes B Bien structurer
scurise sous tableur et comment une mise en forme une liste de donnes
spcifique permet une analyse efficace. B Les rgles de validation
dune liste de donnes
B Les mise en forme
conditionnelle de listes
de donnes

MOTS-CLS
B Liste de donnes
et base de donnes
B Champ et enregistrement
B Les cinq rgles
dune liste de donnes
B Rgles de validation,
message daide la saisie
et message derreur
B Mise en forme conditionnelle :
isoler un lment, visualiser
les 10 premiers lments,
barre de donnes
B Doublons
DExcel Access

Ce chapitre dbute vritablement ltude des bases de donnes simpli-


fies que sont les listes de donnes sous tableur. Elle se poursuivra au
cours des chapitres 3 et 4.
Aprs quelques prcisions terminologiques, nous dcouvrirons dans ce
chapitre les cinq rgles rgissant la structure de ces listes de donnes. Nous
verrons ensuite comment le paramtrage de rgles de validation permet
dassurer la conformit des donnes, simplifie le travail des oprateurs et
acclre les traitements. Enfin, nous apprendrons isoler par quelques
astuces visuelles et graphiques certains enregistrements parmi dautres.

Dfinitions pralables
Les bases de donnes utilisent un vocabulaire simple mais spcifique. Il
est ncessaire de le matriser. Voyons-en ici les principaux termes.

Les listes de donnes et bases de donnes :


lorganisation de linformation
Une liste de donnes sous tableur est une base de donnes simplifie. Dans
le chapitre prcdent, nous avons dfini une base de donnes comme un
ensemble dinformations organises dans un but dfini . La complexit de
lorganisation des donnes traiter va dterminer si nous avons affaire une
vritable base de donnes ou une simple liste de donnes.
Nous verrons dans les chapitres consacrs Access et Base, partir de la
page 89, quune vritable base de donnes, pour autant que ce mot ait
un sens, se compose de plusieurs lments dpendants les uns des autres.
Par exemple, dans une association, les membres sinscrivent des acti-
vits encadres par des animateurs ; la base de donnes correspondante
devra au moins comprendre trois lments individualiss : Membres,
Activits et Animateurs.
Une liste de donnes est galement une base de donnes, mais une base
de donnes simplifie en ce sens quelle nest compose que dun seul l-
ment, en loccurrence un tableau, comme notre planning du chapitre 1
ou notre cas pratique de matriel dalpinisme. Les tableurs comme Excel
ou Calc possdent des fonctions intgres trs efficaces ddies ces
listes de donnes. Cest leur tude que nous dmarrons ici.

Les champs : la structure


Les champs dune base de donnes sont en fait les informations qui y
seront listes. Ils dfinissent en quelque sorte la structure de la base. Si

18
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
on reprsente la base de donnes sous la forme dun tableau, les champs EXEMPLES Dautres champs
sont en gnral lists en premire ligne, en en-tte de colonne. Par pour dautres bases de donnes
exemple, notre cas pratique de planning dcole de commerce contenait Dans le cas dun annuaire, on peut imaginer que les
trois champs : le groupe, la date et le crneau. champs de la base de donnes seront le nom de
labonn, sa ville, son adresse et videmment son
Une base de donnes comprend autant de champs que lon souhaite, on numro de tlphone, et pourquoi pas son e-mail.
peut en ajouter ou en supprimer volont. Toutefois, une fois que les Pour un fichier de prospects commerciaux, le nom
champs ncessaires ont t crs, en dautres termes une fois que la de lentreprise, le nom du contact, ses coordon-
structure de la base est arrte, le nombre et le nom des champs nont nes, les produits qui peuvent lintresser, les diff-
rents contacts que nous avons eu avec lui, peuvent
plus tre modifis. Dans notre planning dcole de commerce, les trois constituer les diffrents champs de la base. Et
champs Groupe, Date et Crneau sont ncessaires et suffisants, inutile pourquoi pas la date laquelle nous devons le
den ajouter mais interdiction den enlever. recontacter.
La structure des champs dune base de donnes est
donc fonction des buts que lon assigne cette base.
Les enregistrements : le contenu
Les champs dune base de donnes dfinissent sa structure, les enregis-
trements son contenu. Ainsi, notre exemple de planning du chapitre 1
comprenait trente-deux enregistrements correspondant toutes les com-
binaisons groupe/date/crneau. Si nous considrons un annuaire sous
langle base de donnes, les diffrents abonns au tlphone en consti-
tuent les enregistrements.
Dans une base, le nombre denregistrements (tout comme le nombre de
champs) nest heureusement pas limit, cest mme tout lintrt. Par
contre, autant le nombre de champs est stable une fois quil est arrt,
autant le nombre denregistrements est lui constamment variable. Par OUPS Les slecteurs de filtre
exemple, la taille de lannuaire des abonns au tlphone augmente en napparaissent pas
fonction des nouveaux abonns et diminue en fonction des rsiliations. Ne vous inquitez pas si les slecteurs de filtre
napparaissent pas automatiquement sur votre
cran, tout dpend du logiciel que vous utilisez.
Leur fonctionnement est dtaill au chapitre 3.
Bien structurer une liste de donnes
Nous reprenons ici ltude du cas pratique de liste de donnes de matriel
dalpinisme. La figure 21 reprsente la liste de donnes correspondante. TLCHARGER Cette liste de donnes
sous tableur est disponible
Cette liste de donnes se prsente bien comme un tableau classique, avec en tlchargement
les noms de champ en premire ligne et les diffrents enregistrements les
Lidal serait que vous testiez toutes les manipula-
uns au-dessous des autres. tions des chapitres 2 4. Pour vous faciliter la
Sur la figure 21, les flches qui apparaissent dans les cellules des noms tche, la liste de donnes de notre exemple est dis-
de champs sont les slecteurs de filtres, ceux que nous avons utiliss au ponible en tlchargement sur la fiche ouvrage sur
le site www.editions-eyrolles.com. Mais vous
chapitre 1 pour afficher ou masquer certains enregistrements. pouvez aussi la saisir manuellement sur votre
La structure de cette liste de donnes, simplissime, rpond cinq rgles tableur favori, Excel ou Calc. Voire mme crer
directement votre propre liste de donnes.
ncessaires et suffisantes. Dtaillons-les.

19
DExcel Access

Figure 21
La liste de donnes de notre cas pratique :
un tableau classique, les Champs en en-tte
de colonne et les Enregistrements
les uns au-dessous des autres

Rgle 1 : les noms de champ en premire ligne


Nous avions dtermin quatre champs grer : le Reprsentant, la
Zone, le Produit et la Priode. Nous les retrouvons en premire ligne de
la figure 21 :
Reprsentant, Zone et Produit sont respectivement en colonne B, C
et D.
Le champ Priode sest transform en Date, colonne E. Ce champ
est plus dtaill et autorisera plus danalyses, comme lextraction des
ventes ralises entre deux dates.
Nous remarquons galement deux colonnes supplmentaires, correspon-
dant deux champs :
Le montant de chaque vente, celui que nous aurions saisi dans les
cellules de nos tableaux, se trouve tout fait droite en colonne F.
Et le champ Numro qui sert mettre un peu dordre dans notre liste
de donnes.
Notre liste de donnes complte de la figure 21 se compose donc de six
champs, correspondant chacun une colonne :
Numro : ce champ numrote les enregistrements par ordre de saisie,
et ne contient que des nombres entiers de 1 N.
Reprsentant : ce champ naccepte pour le moment que les valeurs
Jean , Sophie , Pierre ou Hlne , et ne contient donc que
des caractres alphabtiques.

20
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Zone : ce champ naccepte pour le moment que les valeurs Nord ,
Sud ou RP pour Rgion parisienne ; il ne contient donc aussi
que des caractres alphabtiques.
Produit : ce champ naccepte pour le moment que les valeurs
Cordes , Sangles ou Mousquetons , et ne contient donc ga-
lement que des caractres alphabtiques.
Date : ce champ est de format JJ-MMMM-AA.
Montant : ce dernier champ est de type numrique sans dcimales,
au format .
Il est important de porter son attention sur le champ Numro, car il joue un
rle essentiel. Nous lavons cr pour pouvoir rapidement trier lensemble
de nos donnes selon lordre chronologique de saisie. Mais il va galement
nous servir nous y retrouver clairement dans notre liste ; par exemple,
plutt que de parler de la vente de cordes de 2 571 du 31 janvier, on par-
lera de la vente n 8. Cest plus simple, plus prcis et plus rapide.

Rgle 2 : les enregistrements les uns au-dessous des


autres
Il suffit de saisir, partir de la ligne 2, les enregistrements de la liste de
donnes, cest--dire son contenu, les uns au-dessous des autres, sans se INFO Nombre de lignes disponibles
sur une feuille de calcul
poser de question.
Une feuille de calcul peut comporter jusqu
Actuellement, notre liste contient trente enregistrements, de la ligne 2 1 048 576 lignes pour Excel 2007, et 65 536 seule-
la ligne 31. Nous pourrions en ajouter satit. Si les ventes augmen- ment pour Excel 2003 et Calc. Cela dit, les ali-
taient, tant en nombre quen volume, il suffirait de les saisir la suite des menter toutes risquera de poser de srieux
autres, sans autre limitation que le nombre de lignes disponibles dans problmes de temps de recalcul, sans compter les
maux de tte...
une feuille de calcul, ce qui laisse tout de mme une certaine marge.
Nous pouvons donc assurer Eddy que notre liste de donnes pourra
accepter toutes les nouvelles ventes de notre socit.
JE ME SUIS TROMP Jai fait une erreur de saisie
PRODUCTIVIT Numroter / renumroter les lignes dune liste de donnes dans la liste de donnes...

Pour numroter ou renumroter les cellules de A1 A100 : Si jamais vous faites une erreur de saisie dans une
1. Saisissez 1 en A1puis saisir 2 en A2. liste de donnes, il suffit de la rectifier comme
vous le feriez dans une feuille de calcul classique.
2. Slectionnez les deux cellules A1 et A2.
Si jamais vous oubliez de saisir une vente, vous
3. Recopiez par la poigne de recopie jusquen cellule A100.
pouvez soit :
Le tableau va alors alimenter les cellules vides en ajoutant la valeur 1 correspondant
simplement lajouter en bas de la liste de don-
lincrment entre 1 et 2 de A1 et de A2. Vous pouvez changer cet incrment :
nes, avec linconvnient que son numro chro-
Si vous saisissez 0 en A1 et 2 en A2, vous obtiendrez la srie suivante : 0, 2, 4, 6, 8... nologique ne correspondra pas la ralit ;
avec un incrment de 2. insrer une ligne au bon endroit, avec lavan-
Si vous saisissez 1 en A1 et 5 en A2, vous obtiendrez cette fois 1, 5, 9, 13, 17, soit un tage que le numro sera correct mais avec
incrment de 4. linconvnient quil faudra alors renumroter
Si vous saisissez 0 en A1 et 5 en A2, vous obtiendrez enfin 0, 5, 10, 15, 20, soit un les lignes, comme expliqu dans lapart Pro-
incrment de 5. ductivit ci-contre.

21
DExcel Access

TRUC Utiliser et faciliter le mode de saisie assiste des tableurs

Quand on saisit des informations dans un tableur, celui-ci, prvenant, regarde toujours
au-dessus dans la mme colonne sil ne pourrait pas nous aider en nous suggrant, au fur
et mesure de notre saisie, des entres dj effectues.
Concrtement, si nous nous plaons la cellule D32 du tableau de la figure 21 et que
nous saisissons S , le tableur va automatiquement nous proposer Sangles parce
que cest la seule entre existante de la colonne commenant par S.
Si nous avions grer deux types de cordes, les Cordes dattache et les Cordes de rappel,
il faudrait saisir Cordes d ou Cordes de pour que le tableur puisse faire la distinc-
tion. Do perte de temps et gain dnervement. Sauf si nous choisissons la terminologie
Attache ou Rappel simplement, auquel cas taper simplement A ou R suffira faire
le distingo et acclrer sensiblement notre saisie !
Penser donc, quand cest possible, ne pas avoir dans le mme champ deux entres avec
la mme initiale. La suggestion automatique des entres de la liste de donnes fonction-
nera bien plus efficacement.

Rgle 3 : ni ligne ni colonne vide


CONDITIONNEL Risque ? Si, par mgarde, notre liste de donnes contient soit une ligne soit une
Excel ou Calc risquent selon le cas de ne tra- colonne intgralement vierge, le tableur risque de ne travailler que sur
vailler que sur une partie de la liste... . Le terme une partie de la liste de donnes et doublier en quelque sorte tout ce qui
risquent est un peu vague. Et tonnament aura t saisi de lautre ct de cette dangereuse ligne ou colonne vierge.
impossible clarifier. Les cas de figure sont trop
nombreux pour tre tous lists, dans certains cas il Prenons lexemple ( ne pas suivre) de la figure 22. Cette liste de don-
ny aura pas de problme et dans dautres il y en nes comprend une ligne vide, la 18. Quand nous utiliserons les fonc-
aura. Dans ces conditions, le principe de prcau- tions de liste de donnes, Excel ou Calc risquent de ne travailler que sur
tion simpose : ninsrer ni ligne ni colonne vierge
une partie de la liste, soit de A1 F17, soit de A19 F28, en omettant
dans une liste de donnes !
donc une partie de la liste.

Figure 22
Une liste de donnes non conforme
(avec une ligne vierge)

22
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
ceci il existe un remde imparable : crer une liste de donnes com-
pacte, sans ligne ni colonne vierge, comme sur notre figure 22.

Rgle 4 : pas de mise en forme inutile


Inutile de se casser la tte insrer des quadrillages, ou chercher ra- EXCEL 2007 Des listes de donnes
liser une mise en page sophistique de la liste de donnes. En effet, elle lgamment quadrilles en un clic
ne sert qu collecter linformation, et jamais elle ne sera imprime en Excel 2007 permet quand mme sans se fatiguer de
tant que telle ; nous ne lutiliserons quau travers de sorties et de docu- crer des surlignages comme dans la figure 21. Le
ments comme ceux que nous avons dj vu et dautres que nous appren- regard y suit plus facilement les lignes, inutile de
sen priver ! Dans longlet Accueil, groupe Style,
drons crer. Contentons-nous simplement de faire quelque chose de
cliquez sur Mettre sous forme de tableau.
propre et de lisible, ce sera largement suffisant...

Rgle 5 : pas de formule


Travailler avec des listes de donnes oblige perdre pas mal de rflexes.
commencer par lhabitude dinsrer des formules un peu partout.
Inutile donc dinsrer la ligne Total en bas de tableau pour calculer le
montant total des ventes. Et encore plus dinsrer des lignes entre les
ventes de chaque reprsentant pour en calculer le total. Les fonctions de
filtres (page 50), de sous-total (page 60) et de tableau crois dynamique
(page 71) le feront en deux temps trois mouvements et sans aucun risque
derreur comme le montre la figure 23.

Figure 23
Une liste de donnes (brute et sans formule)
permet de gnrer automatiquement toutes
sortes de tableaux danalyse.

La liste de donnes ne contient donc que les donnes, sans aucune for-
mule de totalisation.

23
DExcel Access

Nous connaissons maintenant les rgles de base pour construire une liste
de donnes. Il est donc temps daborder ltude des rgles de validation
pour sassurer de la conformit des donnes au moment de leur saisie.

Les rgles de validation dune liste de


donnes
Tout comme on ne remplit pas le rservoir dune voiture diesel avec de
lessence sans plomb, il est essentiel, dans une liste de donnes, de valider les
entres au moment de leur saisie afin dviter pas mal de dysfonctionnements.
Par exemple, dans notre exercice, nous savons quil nexiste que quatre
reprsentants, Hlne, Sophie, Jean et Pierre. Faire une faute dortho-
graphe la saisie sur un nom, par exemple Sofie ou mme
Helene , sans accent, aura pour effet de crer un reprsentant suppl-
mentaire quExcel et Calc traiteront comme un reprsentant part
entire, diffrent, sans faire le lien avec Sophie ou Hlne. Ce sera
encore pire si on saisit dans le champ Reprsentant le nom dun produit,
ou encore si on saisit la date de la vente dans la colonne Montant. Dans
tous les cas, le rsultat sera inexploitable.
Lide gnrale des rgles de validation est de rendre impossible ces erreurs de
saisie et donc de garantir la conformit des donnes avec ce qui est attendu
afin dassurer le bon fonctionnement de la liste de donnes, de mnager les
nerfs des oprateurs de saisie (qui savent ds lors que toute erreur grossire de
saisie est impossible) et donc au bout du compte de simplifier le travail.
Attention : les rgles de validation ninterdisent bien videmment que les
erreurs de conformit de donnes par rapport des rgles. Elles vont
interdire par exemple de saisir un nombre la place dun texte, de saisir
le nom dun reprsentant qui nexiste pas, etc. mais certainement pas les
erreurs de saisie non logiques comme par exemple daffecter Pierre une
vente de Jean. Do la ncessit, malgr la prsence de toutes les rgles
de validation possibles et imaginables, de procder une contrle minu-
tieux de lexactitude de la saisie (et non plus de leur simple cohrence) !
Grce aux rgles de validation, vous allez pouvoir dfinir, pour chaque
champ dont vous voulez contrler lentre :
Les rgles de validation proprement dites, cest--dire les critres qui
rendront la saisie valide ou non.
Les messages daide la saisie pour aider les oprateurs dans leur saisie.
Les messages et les actions effectuer en cas de non conformit avec
les rgles de validation.

24
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Le mode opratoire gnral pour accder au paramtrage des rgles de
validation est le suivant :
1 Slectionnez la zone sur laquelle la rgle devra tre active. Cette zone TRUC Slectionner une colonne
sauf son en-tte
correspond en gnral la colonne entire du champ considr,
lexclusion de son en-tte qui contient non une entre denregistre- Pour slectionner une colonne sans son en-tte, il
faut cliquer sur len-tte de colonne (la lettre A, B,
ment mais le nom du champ. C...) puis dslectionner la premire cellule par
2 Appelez la bote de dialogue Validation des donnes par : Ctrl + Clic.
Le bouton Validation des donnes de longlet Donnes, groupe
Outils de donnes sous Excel 2007.
Loption Validation du menu Donnes avec Excel 2003.
Loption Validit du menu Donnes avec Calc.

Le paramtrage des rgles de validation proprement dites


Cette section va nous guider dans la mise en uvre effective des rgles MTHODOLOGIE Quand paramtrer
de validation dans notre liste de donnes. La figure 24 dtaille la bote les rgles de validation ?
de dialogue de validation des donnes sous Excel 2003 et 2007. Les Les rgles de validation dune liste de donnes
manipulations Calc sont trs proches. sous tableur, la diffrence dAccess ou de Base,
ne sappliquent quaux nouvelles entres, et non
aux donnes dj prsentes dans la liste. Il est
donc ncessaire de les paramtrer ds le dbut de
son travail, avant mme toute saisie.

Figure 24
La bote de dialogue Validation des donnes.

Le tableau ci dessous reprend lessentiel des options proposes par Excel


2007 :
Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel)

Nom de loption de la bote de dialogue Validation des donnes Effet


Tout Aucun contrle nest effectu. Option par dfaut.
Nombre entier * Limite la saisie un nombre entier (avec possibilit de dfinir des bornes).
Dcimal * Limite la saisie un nombre dcimal (avec possibilit de dfinir des bor-
nes), sans toutefois pouvoir dfinir le nombre de dcimales autorises.
Liste * Limite la saisie aux valeurs dune liste.

25
DExcel Access

Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel) (suite)

Nom de loption de la bote de dialogue Validation des donnes Effet


Date Limite la saisie aux entres sous forme de date (JJ/MM/AA ou autre) avec
la possibilit de fixer des bornes.
Heure Limite la saisie aux entres sous forme dheure (MM:SS ou autre) avec la
possibilit de fixer des bornes.
Longueur du texte Permet de limiter la longueur dun champ texte pour viter les listes de
donnes trop volumineuses (limiter un champ Prnom 10 caractres
interdira de saisir Jean-Christophe).
Personnalis * Pour limiter les entres la valeur dune formule comme expos ci dessus.
Ignorer si vide Si coch, permet de ne pas appliquer la rgle de validation quand la cel-
lule est vide. Comme les rgles de validation sappliquent la colonne
entire, il faut bien videmment cocher cette case systmatiquement
(sinon toutes les cellules vides en attente de saisie seront rejetes).

* Ces options sont dtailles ci-dessous.

Limiter les entres un nombre entier ou dcimal


Pour limiter la saisie dun champ des valeurs numriques, slectionnez la
colonne correspondante (sauf son en-tte) et appelez la bote de dialogue
Validation des donnes comme dcrit ci-dessus, slectionnez longlet
Options et paramtrez les critres souhaits. Le paramtrage de la bote de
dialogue de la figure 25 permet par exemple de contrler lentre de
nombres entiers positifs infrieurs gal 12 000. Il est possible de choisir
dautres conditions (suprieur, infrieur, gal, diffrent de ...).

Figure 25
Seuls les entiers compris
entre 0 et 12 000 seront accepts.

26
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Limiter les entres aux donnes dune liste
Loption Liste de la liste droulante de la bote de dialogue Validation des
donnes va permettre de limiter les entres dun champ aux valeurs dune
liste cre manuellement. Par exemple, dans notre cas pratique, pour
contrler strictement la saisie dHlne, Sophie, Jean ou Pierre dans
notre liste de donnes. La figure 26 illustre le paramtrage reproduire
pour cela
1 Saisissez, dans un espace rserv de la feuille de calcul, les entres
autorises : les noms de nos quatre reprsentants. Le mieux est de les
saisir en bloc, bien lcart de la liste de donnes, par exemple dans
notre cas pratique de H1 N1, en prenant bien garde laisser au
moins une colonne libre entre cette zone des entres autorises et la
liste de donnes en elle-mme pour que les donnes ne se
mlangent pas. Une fois la liste cre, appelez la bote de dialogue
Validation des donnes.
2 Choisissez Liste dans la liste de choix Autoriser (et laissez les cases
Ignorer si vide et Liste droulante dans la cellule coches).
3 Dsignez dans la zone Source les cellules o vous avez saisi prcdem-
ment les entres autorises (de H1 H4 dans notre cas pratique pour
le champ Reprsentant).
4 Validez, cest termin.

Figure 26 Le paramtrage dune liste de validation (de H1 H4) pour le champ Reprsentant
(la colonne B correspondant ce champ, lexclusion de la cellule B1, est slectionne)

Il est maintenant impossible loprateur de saisir une valeur absente de


la liste paramtre ci-dessus.

27
DExcel Access

Crer une rgle de validation personnalise


Il est galement possible de limiter les saisies dans un champ, non par rap-
port une liste, mais par rapport une rgle. Par exemple il peut tre int-
ressant dinterdire dantidater des enregistrements dans le futur, cest--dire
que si le jour de saisie est le 12 mai il faut empcher la saisie du 14 mai.
Voici comment faire dans notre liste de donnes (figure 27) :
TECHNIQUE La fonction Maintenant()
1 Slectionnez la colonne du champ concern, ici le champ Date de
Excel et Calc possdent de nombreuses fonctions
dont beaucoup sortent des strictes fonctions de
notre liste, sauf la cellule E1 contenant le nom du champ.
calcul. Comme cette fonction Maintenant() 2 Appelez la bote de dialogue Validation des donnes et choisissez
qui rappelle la date et lheure ( la seconde prs) loption Personnalis.
de la saisie. Son quivalent Aujourdhui() ne
rappelle que la date, sans lheure.
3 Saisissez dans la zone Formule la formule <=Maintenant().
4 Validez.

Figure 27
Une formule comme
rgle de validation des donnes

ALLER PLUS LOIN Crer une rgle de validation dans une simple feuille de calcul

Les rgles de validation ne sont pas rserves aux seules


listes de donnes, elles peuvent rendre galement de
grands services dans une simple feuille de calcul.
Par exemple, vous souhaitez contrler que la somme
de deux cellules ne dpasse pas un certaine valeur. Il
suffit alors de paramtrer sur ces deux cellules une
rgle de validation paramtre. La figure 28 illustre
cette possibilit. La rgle de validation est applique
aux deux cellules B1 et B2 et contrle que la somme de
ces deux cellules ne dpasse pas 10 000 .
Figure 28
Avec les cellules B1 et B2 slectionnes,
cette rgle de validation contrle que la somme
des deux cellules nexcde pas 10 000.

28
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Lannulation des rgles de validation
Pour annuler une rgle de validation, il suffit de :
1 Slectionner les cellules concernes.
2 Ouvrir la bote de dialogue Validation des donnes.
3 Cliquer sur le bouton Effacer tout de la figure 27.

CALC Les rgles de validation

Lessentiel de ce qui a t expliqu pour Excel est valable pour Calc, tant sur le plan des
principes de fonctionnement que sur celui de lergonomie des commandes (figure 29).
On accde ce paramtrage par le menu Donnes, option Validit. Les seules diff-
rences significatives sont :
limpossibilit de paramtrer une rgle de validation en fonction du rsultat dune for-
mule comme expliqu page 28 ;
lannulation des rgles se fait par le bouton Rtablir.

Figure 29 La validation des donnes avec Calc

Laide la saisie et les messages derreur


Les rgles de validation agissent aprs saisie, provoquent sil y a lieu des
messages derreur et ralentissent donc les oprations de saisie, un peu
comme le gendarme qui verbalise un automobiliste et qui bloque le
trafic. Lide des messages daide la saisie est dagir la source et
dinformer loprateur de saisie du format attendu de la donne avant

29
DExcel Access

quil ne la saisisse, pour viter ainsi au gendarme de verbaliser et de blo-


quer le trafic. La donne sera alors saisie de manire conforme et donc
directement valide. Le gain de temps et dnervement sera apprciable :
un homme averti en vaut deux !
Prenons un exemple. Les oprateurs ne savent jamais trop comment
saisir un champ Date : 01/09, 1er septembre, 1er sept. ou encore
langlo-saxonne 09/01. La figure 210 dtaille le paramtrage de la bote
de dialogue permettant laffichage du message daide la saisie de la
figure 211 :
1 Slectionnez la colonne souhaite (sauf la premire cellule comme
nous lavons vu).
2 Ouvrez longlet Message de saisie de la bote de dialogue Validation
des donnes.
3 Saisissez le titre et le contenu du message souhait.
4 Validez.
Le message daide la saisie apparat ds lors que la cellule concerne est
slectionne.

Figure 210
Le paramtrage dun message Figure 211
de saisie pour inviter saisir Le message de saisie qui apparat
la date sous la forme JJ/MM/AA avec le paramtrage de la figure 210

Si, malgr le message daide la saisie, loprateur se trompe, la rgle de


validation rejette lentre et affiche par dfaut un message pas forcment
trs clair, figure 212.

Figure 212
Le message par dfaut de non conformit
avec les rgles de validation nest pas toujours
trs clair pour les non initis...

30
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
TRUC Des messages daide la saisie efficaces

Il sagit dans ces messages de faire efficace et lisible, par forcment de faire joli ou litt-
raire. Prfrez :
Pour le champ Date JJ/MM/AA ou mieux encore 12/01/09 .
Pour le champ Reprsentant, Prnom du reprsentant . Le message Hlne,
Sophie, Jean ou Pierre serait plus prcis, mais devra tre complt ds quun nou-
veau reprsentant rejoindra lentreprise. Sans compter quon peut quand mme sup-
poser que loprateur connait ses reprsentants...
Pour le champ Montant, Montant de la vente .
Plus gnralement, vitez les formules inutilement alambiques du style Merci de saisir
sous la forme suivante... , contentez-vous de la formulation de la rgle brute sans blabla.

Utilisez donc la possibilit qui vous est donn de paramtrer un message


derreur personnalis, en cliquant dans longlet Alerte derreur de la bote
de dialogue Validation des donnes. Cette bote de dialogue fonctionne
exactement comme celle de message daide la saisie.

Le dtail des rgles de validation conseilles pour notre


cas pratique
Le tableau ci-dessous dtaille les paramtrages conseills pour les diff-
rents champs de notre liste de donnes en matire de rgle de validation,
de message daide la saisie et de message en cas derreur .
Tableau 22 Les rgles de validation conseilles pour notre cas pratique

Champ Rgle de validation Message en cours de saisie Message en cas derreur


Numro * Entier Entier de 1 N Entrez un nombre entier de 1 N
Suprieur 0
Reprsentant Liste (Hlne, Sophie, Jean, Pierre) Prnom du reprsentant Entrez le nom dun reprsentant existant

Zone Liste (Nord, Sud, RP) Zone de la vente Entrez une zone existante

Produit Liste (Cordes, Sangles, Mousquetons) Nom du produit Entrez un produit existant

Date Date 12-janv-08 par exemple Entrez une date de format "12-janv-08"
De format 12-janv-08
Montant Dcimal Montant de la vente avec les centimes Entrez le montant de la vente avec les centimes

* Le champ Numro ne sera pas bien gr par ces rgles de validation. En par-
ticulier, rien nempchera de sauter un numro (de passer par exemple du 9 au
11 sans passer par le 10) ou mme de rpter le mme numro (par exemple,
deux fois le numro 31). Sachez que ce type de difficults de numrotation
automatique denregistrement, toujours un peu gnant avec un tableur, sera
rsolu de manire beaucoup plus fiable et simple avec Access ou Base.

31
DExcel Access

Les mises en forme conditionnelle de liste


de donnes
Les fonctions de mise en forme conditionnelle permettent, par des for-
mats automatiques ou diverses astuces visuelles, de mettre en vidence
les enregistrements significatifs de la liste de donnes (les plus grands,
les valeurs extrmes, leur position par rapport la moyenne...). Leur uti-
lit est vidente : faire parler la liste de donnes en en faisant ressortir les
informations pertinentes dans un contexte donn. Pour un directeur
commercial, identifier en un coup dil les reprsentants les plus perfor-
mants. Ou encore, pour un loueur de DVD, ceux les plus frquemment
emprunts. Ces fonctions constituent donc une aide visuelle prcieuse et
simple lanalyse des donnes.
Si Excel 2003 et Calc proposent dj quelques outils en la matire, Excel
2007 frappe vraiment fort et offre une palette danalyses toutes plus effi-
caces et ludiques les unes que les autres. Nous tudierons donc ces deux
familles de logiciels sparment.

Les mises en forme conditionnelles spcifiques Excel


2007
Parmi les nouveauts au chapitre des mises en formes conditionnelles
proposes par Excel 2007, citons le surlignage, la mise en valeur des
donnes extrmes, la visualisation des donnes avec barres de donnes,
les jeux de couleurs ou dicnes comme le montre la figure 213.

Figure 213
La mise en forme conditionnelle
version Excel 2007

Il est trs facile dy accder. partir dune liste de donnes, il suffit de


slectionner le bouton Mise en forme conditionnelle du groupe Style dans
longlet Accueil. Vous avez ds lors le choix dutiliser diffrentes options
de mise en forme conditionnelle. Toutes sont intressantes, mais nous
avons choisi de dvelopper particulirement les points suivants :
Isoler un lment dans une srie.

32
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Identifier les 10 premiers (ou derniers) nombres dune srie.
valuer la place de chaque lment dune srie par rapport
lensemble de cette srie.

Isoler un lment dans une srie


Reprenons notre cas pratique. Nous voulons par exemple reprer les
CHOIX Format conditionnel gal vs. Filtre
ventes de la belle Hlne :
Ce format conditionnel gal ne fait que mettre
1 Dans cette liste de donnes, slectionnez les cellules o sont saisis les
en forme la valeur du champ considr, non lenre-
noms des reprsentants, de B2 B31. gistrement entier et sans masquer les autres enre-
2 Dans longlet Accueil, groupe Style, slectionnez le bouton Mise en gistrements. Il est parfait pour mettre en valeur
forme conditionnelle puis les options Rgles de mise en surbrillance des des lments particuliers tout en gardant en vue
lensemble des donnes. Pour extraire certains
cellules et gal . enregistrements en masquant les autres donnes,
3 Dans la bote de dialogue obtenue (figure 214), saisissez Hlne prfrez les Filtres, voir page 49.
dans la zone approprie.

Figure 214
La bote de dialogue Format conditionnel gal

4 Choisissez le format qui vous convient (ici, Remplissage rouge clair


avec texte rouge fonc) et validez. Cest fait (figure 215) !

Figure 215
Les enregistrements dHlne
sont signals par un format spcifique.

33
DExcel Access

Identifier les dix premiers lments dune srie


Nous voulons maintenant identifier les dix ventes les plus leves. Pour
cela, rien de plus simple :
1 Slectionnez toutes les cellules contenant les ventes, de F2 F31. Il nest
pas recommand de slectionner la colonne entire, ceci pouvant gnrer
des dysfonctionnements selon le logiciel, sa version ou la configuration
de la liste de donnes. Dans le doute, faites un test sur une copie de la
liste de donnes pour viter tout risque daltration des donnes.
2 Dans longlet Accueil, groupe Style, cliquez sur le bouton Mise en
forme conditionnelle. Choisissez alors Rgles des valeurs plus/moins le-
Figure 216 ves puis 10 valeurs les plus leves.
La bote de dialogue Format conditionnel, 3 Vrifiez ou modifiez les donnes de la bote de dialogue obtenue
Dix valeurs les plus leves (figure 216), et validez. La figure 217 illustre le rsultat obtenu.

Figure 217
Le top ten des ventes.

Remarquez aussi sur la figure 216 la possibilit de paramtrer le


nombre de valeurs isoler (par dfaut, 10). Remarquez encore que
longlet Accueil, groupe Style, bouton Mise en forme conditionnelle, option
Rgles des valeurs plus/moins leves permet galement, la place de 10
valeurs les plus leves, de rechercher :
les 10 % les plus leves ;
les 10 valeurs les moins leves ;
les 10% les moins leves ;
Les valeurs suprieures ou infrieures la moyenne.

34
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Vous pouvez bien entendu crer vos propres rgles. Imaginons par
exemple que nous organisons un challenge entre nos reprsentants, en
rcompensant dune prime toute vente dpassant le seuil de 9 000 . Il
est trs facile de crer une rgle personnalise permettant didentifier
visuellement les enregistrements des reprsentants ayant atteint cet
objectif. Voici la manire de procder :
1 Slectionnez la plage F2 F31 de notre liste de donnes (la plage
contenant les ventes). TECHNIQUE Formule absolue avec les $
2 Slectionnez dans longlet Accueil, groupe Style, le bouton Mise en Une formule absolue, caractrise par les signes $,
forme conditionnelle, puis Rgles des valeurs plus/moins leves et enfin prsente la particularit quand on la recopie de
Autres rgles. faire rfrence toujours la mme cellule, contrai-
rement une rfrence relative (sans les $) qui
3 Choisissez loption Utiliser une formule pour dterminer pour quelles incrmente lors de la recopie les indicateurs de
cellules le format sera appliqu. lignes et de colonne et donc se dcale progressive-
ment. Dans notre exercice, conserver les signes $
4 Entrez la formule =F2>=9000 dans la zone Appliquer une mise en forme
aurait pour consquence de faire rfrence la
aux valeurs pour laquelle cette formule est vraie. Attention : Excel va mme cellule F2 pour tous les enregistrements, ce
proposer par dfaut la formule =$F$2>=9000, il faut la modifier manuel- qui serait bien sr incorrect. Il faut donc les enlever
lement en enlevant les symboles de rfrence absolue que sont les $. manuellement. Pour plus dinformations sur ces
formules avec les $ et toutes leurs possibilits,
5 Cliquez sur le bouton Format et choisissez le format souhait (ici, un consultez laide en ligne de votre logiciel ou bien
double soulignement), validez. PC trucs du mme auteur aux ditions Leduc.S ou
6 La bote de dialogue de la figure 218 apparat, il ne reste plus qu encore les ouvrages consacrs Excel et Calc dans
la collection TSoft des dition Eyrolles.
valider pour visualiser nos laurats.

Figure 218
La bote de dialogue nouvelle rgle
de mise en forme par lapplication dune formule

Cette mme procdure permet aussi de reprer les valeurs uniques ou les
doublons par loption Appliquer une mise en forme uniquement aux
valeurs uniques ou aux doublons.

35
DExcel Access

DFINITION Doublons

La notion de doublon intervient souvent en matire de base de donnes et ncessite quel-


ques claircissements. Un doublon, stricto sensu, consiste en la rptition de la mme
donne dans la mme liste de donnes. Il existe deux types de doublons : les doublons sur
un champ et les doublons vritables sur lensemble dun enregistrement.
Il y a doublon vritable (ou doublon tout court) quand le mme enregistrement est
intgralement rpt une ou plusieurs fois dans la mme base. Cest bien videmment le
plus souvent une erreur qui peut entraner des consquences graves. Par exemple, si vous
tes prsent deux fois dans la base des lecteurs de votre commune, vous pourrez voter
deux fois. Sauf exception, une base de donnes ne doit pas avoir de doublon vritable .
Un doublon sur un champ particulier signifie que la mme valeur est rpte au moins
deux fois pour le mme champ, sans pour autant que les enregistrements correspondants
soient entirement gaux. Par exemple, si deux frres sinscrivent la mme cole, il y
aura dans la liste des lves un doublon sur le champ Nom, puisque le mme nom de
famille apparatra deux fois ; il ne sagira pas dans ce cas dun doublon vritable ,
puisquils auront certainement des prnoms diffrents.
Dans toute liste de donnes, il est trs vivement conseill, pour ne pas dire obligatoire,
davoir toujours au moins un champ qui naccepte pas de doublon. Dans notre cas pra-
tique, il sagit du champ Numero. Ce champ servira identifier clairement et sans ambi-
gut un enregistrement parmi les autres : il ny aura ainsi quun enregistrement portant
le numro 1, un seul avec le 2, etc.

Visualiser la place de chaque lment au sein de la srie


Vous pouvez afficher par une Barre de donnes la place relative de la
donne concerne par rapport aux autres. Cette option ne sapplique
bien videmment qu des donnes numriques. Notre opinion est que
cette option est intressante sur le papier, mais quelle a plutt tendance
alourdir la consultation de longues listes de donnes. Faites-vous votre
propre opinion :
1 Slectionnez les ventes de F2 F31 ;
2 Dans longlet Accueil, groupe Style, slectionnez le bouton Mise en
forme conditionnelle puis Barres de donnes.
Chaque donne est maintenant complte dun graphique symbolisant
sa place dans la srie (figure 219).
Il existe des variantes aux barres de donnes : jeux de couleur et jeux
MARCHE ARRIRE Effacer les mises en forme
conditionnelles dicnes (par exemple les feux tricolores). Les graphes barres sont alors
remplacs par des nuances de couleur ou des icnes significatifs, par
Choisissez dans longlet Accueil, groupe Style,
le bouton Mise en forme conditionnelle puis
exemple des feux tricolores rouges pour les valeurs extrmes et verts pour
Effacer les rgles. les valeurs mdianes. Le but est toujours le mme, visualiser la place de
chaque lment dans la srie, seule laccroche visuelle change. Les gots et
les couleurs ne se discutant pas, vous de trouver loption qui vous con-
vient le mieux. Ceci dit, faites quand mme attention aux superbes effets
de couleur imprims ou photocopis en noir et blanc : faites des tests !

36
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Figure 219
Des barres de couleur pour visualiser
la place de chaque donne dans une srie

Les mises en forme conditionnelles dExcel 2003 et de


Calc
Mme si elles sont moins performantes (et surtout moins ludiques) que
leurs homologues Excel 2007, les mises en forme conditionnelles
Excel 2003 et Calc atteignent tout de mme leur objectif : faciliter lana-
lyse des donnes dune liste de donnes par des formats spcifiques.
Dans notre tude de cas, imaginons que nous voulons par exemple
reprer rapidement les ventes extrmes , cest dire en soulignant en
vert les ventes suprieures 7 500 et en barrant en rouge celles inf-
rieures 2 500 . Il faut procder en trois temps, dabord pour la pre-
mire condition, puis pour la deuxime et enfin pour appliquer ces deux
formats conditionnels lensemble des cellules concernes.
Voici le mode opratoire pour la premire condition :
1 Slectionnez la cellule devant recevoir le format conditionnel (ici la
cellule F2 correspondant au montant de la vente du premier enregis-
trement).
2 Appelez le menu Format, option Mise en forme conditionnelle. La
bote de dialogue de la figure 220 apparat.
3 Entrez la premire condition (dans notre exemple si suprieur
7 500 ) avec les valeurs La valeur de la cellule est, Suprieure ou gale
et le montant mettre en valeur, savoir 7 500 .

37
DExcel Access

4 Cliquez sur le bouton Format, spcifiez la mise en forme souhaite


(police verte souligne) et validez.
Nous obtenons maintenant exactement limage de la figure 220 ; la
zone Aperu du format utiliser... est en vert soulign ainsi que nous
lavions demand.

Figure 220
Le format conditionnel la mode Excel 2003

Pour appeler laffichage de la seconde condition (en rouge barr si inf-


rieure 2 500 ), il faut cliquer sur le bouton Ajouter >> et recommencer
la procdure prcdente avec les nouveaux paramtres, figure 221.

Figure 221
Deux conditions notre format conditionnel
Excel 2003

CALC Les formats conditionnels

Le mode opratoire est globalement le mme


sous Calc que sous Excel 2003. Le menu
Format, option Formatage conditionnel
donne accs la bote de dialogue de la
figure 222. Il suffit de lalimenter comme
indiqu sur la figure 222 pour obtenir, peu
de choses prs, ce que nous avions obtenu
avec Excel 2003, la nuance prs que nous ne
pouvons spcifier que trois conditions au
maximum et utiliser que des styles prdfinis
(ici Satisfaisant et Insatisfaisant).
Figure 222
Le format conditionnel la mode Calc

38
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Reste valider et recopier ce format conditionnel sur les autres cellules
pour terminer le travail :
1 Copiez la cellule F2 par Ctrl + C.
2 Slectionnez les autres cellules de la zone des ventes de F3 F31.
3 Appelez le menu dition, option Collage spcial et choisissez loption
Formats ; validez.

Synthse : btir une liste de donnes


efficace sous tableur : structure, rgles de
validation et mise en forme
Les listes de donnes sont des bases de donnes simplifies ralises sous
un tableur. Elles rpondent, comme les bases de donnes relationnelles,
des impratifs de structure et de contrle. En retour, elles proposent
des outils simples danalyse des donnes.
En matire de structure, nous avons dcrit les cinq rgles qui prsident
llaboration dune liste de donnes efficace :
les noms de champ en premire ligne ;
les enregistrements les uns au-dessous des autres ;
ni ligne ni colonne vide ;
pas de mise en forme inutile ;
pas de formule.
Il est essentiel de contrler la validit des donnes entres dans la liste de
donnes afin den assurer la cohrence et de simplifier son exploitation.
On peut, par exemple, imposer le format de saisie des dates ou interdire
la saisie de chanes de caractres trop longues. Excel et Calc proposent
cet effet une large palette de rgles de validation, de messages daide la
saisie et de messages derreur indispensables utiliser ds la cration de
la liste de donnes.
Enfin Excel 2007, et dans une moindre mesure Excel 2003 et Calc, pos-
sdent des outils de mise en forme conditionnelle permettant de reprer
visuellement les caractristiques de certains enregistrements et leur place
par rapport lensemble de la liste, par exemple en figurant les donnes
positives en vert et les ngatives en rouge.
Nous pouvons donc maintenant tudier, dans le chapitre suivant, les
outils de tri et de slection denregistrement de listes de donnes.

39
chapitre 3
Trier et slectionner
des enregistrements dans
les listes de donnes

SOMMAIRE
B Comment accder aux
fonctions de liste de donnes
Maintenant que nous savons construire une liste de donnes
sous tableur, nous allons apprendre la trier dans tous les sens B Les tris de listes de donnes
et y rechercher certains enregistrements en fonction B Les filtres ou la slection
denregistrements
de critres personnaliss.
MOTS-CLS
B Tri croissant (alphabtique)
et dcroissant (antialphabtique)
B Tri personnalis
B Combinaison de tris successifs
B Filtres, filtres automatiques
et autofiltres
B Combinaison de filtres
B Filtres textuels, numriques
et chronologiques
B Filtres volus et labors
DExcel Access

Les fonctions de tri figurent parmi les plus employes par tout utilisateur
de tableur. Nous pousserons celles-ci dans leurs derniers retranchements
en apprenant entre autres trier, non plus simplement dans lordre
alphabtique, mais selon un ordre entirement sur mesure. Nous verrons
ensuite comment extraire de notre liste les enregistrements rpondant
tel ou tel critre avec les fonctions de filtre (les ventes de tel reprsentant,
les ventes dun montant total suprieur telle somme, etc.).

Comment accder aux fonctions de liste de


donnes
Dans le chapitre 2, nous avons appris btir une liste de donnes, en
contrler la saisie et en effectuer des analyses visuelles sommaires.
Nous abordons prsent les fonctions spcifiques aux liste de donnes
qui vont nous permettre de trier et de slectionner des enregistrements
Nous poursuivrons leur tude au chapitre suivant avec les sous totaux et
les analyses statistiques dtailles.
Ces fonctions sont la fois trs simples dutilisation et trs performantes
condition de savoir bien les utiliser. Bien entendu, la liste de donnes
doit rpondre aux cinq rgles exposes dans le chapitre prcdent, et
toutes les rgles de validation de donnes doivent avoir t paramtres.
Mais il faut encore prendre une prcaution : avant daccder aux fonc-
tions de liste de donnes, il est indispensable de slectionner une et une
seule cellule de la liste de donnes.
Si vous respectez ces rgles, Excel et Calc vont comprendre que vous
souhaitez en fait agir sur lensemble de la liste, do limportance de la
rgle qui veut quil ny ait ni ligne ni colonne vierge dans la liste de don-
nes (voir figure 31 gauche).

Figure 31 Vous devez cliquer sur une et une seule cellule de la liste pour accder aux fonctions de liste de donnes.

42
3 Trier et slectionner des enregistrements dans les listes de donnes
ATTENTION Que se passe t-il si on accde aux fonctions de liste de donnes en
ayant slectionn une cellule au dehors de cette liste ?

Si vous suivez nos conseils, notamment celui de naccder aux fonctions de liste de don-
nes quaprs avoir slectionn une seule cellule de la liste, cela ne devrait pas arriver.
Dans le cas contraire, vous obtiendrez un message derreur diffrent selon les logiciels
(figures 32 et 33).

Figure 32 Excel (2007 ou 2003) na pas trouv de donnes trier.

Figure 33 Calc na pas trouv de donnes trier.

Si, par mgarde, vous slectionnez une partie seulement de la liste de


donnes, Excel ou Calc risquent (selon les versions et la configuration de
la liste) de nagir que sur cette zone spcifiquement dsigne, ce qui
serait problmatique (voir figure 31 droite). Et si, cas extrme, vous ne
cliquez dans aucune cellule de la liste, ni Excel ni Calc ne trouveront de
donnes tudier et ils afficheront donc un message derreur.
Rcapitulons ces rgles essentielles pour utiliser sereinement des fonc-
tions de liste de donnes :
Btir une liste de donnes conforme aux cinq rgles.
Paramtrer les rgles de validation ncessaires.
Slectionner une et une seule cellule de la liste de donnes.
Accder aux fonctions de liste de donnes.

Les tris de liste de donnes


Imagine-t-on un annuaire tlphonique non tri ? Bien sr que non, il
faut que chaque chose soit sa place. Cest toute lutilit des fonctions de
tri dune liste de donnes : rorganiser lordre daffichage des enregistre-
ments pour accder plus rapidement linformation souhaite.

43
DExcel Access

Trier sur un seul champ


On peut trier une liste de donnes sur un champ (par exemple le nom du
reprsentant ou le montant des ventes) en ordre alphabtique croissant
ou dcroissant ou selon un ordre personnalis. Le mode opratoire est
trs simple. Cliquez dans une cellule de la colonne du champ de la liste
de donnes, puis effectuez un clic droit et slectionnez loption Trier
Figure 34 (Excel 2007), ou bien slectionnez les outils de tri de la figure 34
Les outils de tri croissant et dcroissant. (Excel 2007, 2003 et Calc).

Trier selon un ordre personnalis


Lordre croissant (alphabtique) ou dcroissant peut ne pas convenir.
Imaginez par exemple une liste de donnes contenant un champ Jour.
Trier selon ce champ par ordre croissant nest gure satisfaisant car vous
obtiendrez le rsultat suivant : dimanche, jeudi, lundi, mardi, mercredi,
samedi, vendredi. Quand au tri par ordre dcroissant, il ne vaudra gure
mieux ! Excel et Calc proposent, pour contourner cette difficult, de
crer des listes personnalises sur lesquelles nous pourrons effectuer tout
tri notre guise.
Illustrons le mode opratoire par un exemple. Nous souhaitons trier
notre liste de donnes selon le champ Reprsentant, non plus simple-
ment par ordre alphabtique croissant mais en mettant les dames en pre-
mier, cest--dire dans lordre suivant : Hlne, Sophie, Jean et Pierre.
Pour ce faire, il va nous falloir crer la liste personnalise selon laquelle le
tri sera effectu puis raliser le tri proprement dit. Mais avant de com-
mencer ces oprations, attardons-nous un peu sur la scurit de nos don-
nes. En effet, nous avons pass beaucoup de temps btir notre liste de
donnes et y saisir les informations, il serait trs dommage quune
fausse manipulation la dtruise ou mme simplement laltre. En cons-
quence, et mme si toutes les manipulations de liste de donnes sont
normalement sres, il faut considrer lventualit dune fausse manipu-
lation qui peut obliger, dans le pire des cas, recommencer le travail
depuis le dbut. Nous ne saurions donc trop vous conseiller, avant
dexprimenter de nouvelles fonctions ou deffectuer des oprations pour
lesquelles un chec serait grave (par exemple un tri sur la liste de donnes
des clients de notre entreprise), de raliser une copie de la liste de don-
nes. Une fois le travail termin, vrifiez-en les rsultats : en cas derreur,
vous disposerez de la copie de sauvegarde pour rcuprer les donnes ini-
tiales. Ouf !

44
3 Trier et slectionner des enregistrements dans les listes de donnes
Crer une liste personnalise
Une liste personnalise va permettre de raliser un tri selon lordre des
termes de cette liste.
Pour crer une liste personnalise avec Excel 2007 :
1 Cliquez sur le bouton Office, puis sur le bouton Options Excel (tout en
bas de la bote de dialogue).
2 Slectionnez la catgorie Standard (en haut gauche de la bote de
dialogue).
3 Cliquez sur le bouton Modifier les listes personnalises. La bote de
dialogue de la figure 35 apparat.

Figure 35
La bote de dialogue Listes personnalises
(remarquez les listes dj prsentes dans
la zone gauche, notamment Lundi, Mardi,
Mercredi, Jeudi...)

4 Vrifiez que loption Nouvelle liste est bien valide, et entrez dans la
zone Entres de la liste les lments de votre liste en validant bien aprs
chaque entre. Vous obtenez, dans notre exemple, la figure 36.
5 Cliquez sur Ajouter, la liste ainsi cre (ici, Hlne, Sophie, Jean et
Pierre) se rajoute au-dessous et la suite de celles qui taient dj
disponibles.

Figure 36
Il ne vous reste plus qu cliquer sur Ajouter
pour valider cette liste personnalise.

45
DExcel Access

EXCEL 2003 Crer une liste personnalise Remarquez que vous pouvez aussi utiliser des zones dune feuille dj
existante pour crer votre liste (en bas de la bote de dialogue des
Le seul changement par rapport la procdure
dcrite pour Excel 2007 est la faon daccder la figures 35 et 36).
bote de dialogue Listes personnalises : allez
dans le menu Outils>Options>Listes person-
PRODUCTIVIT Utilisez les listes personnalises pour acclrer vos saisies
nalises.
Ds quune liste personnalise est cre, il suffit dentrer
dans une cellule son premier lment et de recopier,
laide de la poigne de recopie, le contenu de cette cellule
CALC Crer une liste personnalise au-dessous ou ct pour quExcel ou Calc complte
Pour accder la bote de dialogue Liste de tri, automatiquement par les entres de votre liste. La
allez dans le menu Outils>Options>OpenOf- figure 37 montre comment (ici sous Calc) la recopie
fice.org Calc>Listes de tri. Cliquez sur le laide de la poigne de recopie du premier lment de
bouton Nouveau pour crer une nouvelle liste. notre liste personnalise (Hlne) entrane linsertion de
Sophie, Jean et Pierre sa suite.
Figure 37
La recopie du premier lment dune liste personnalise
entrane linsertion de ses diffrents lments.

Trier selon une liste personnalise


Maintenant que la liste personnalise est cre, nous pouvons param-
EXCEL 2003 Trier selon une liste trer notre tri sur le champ Reprsentant selon lordre de cette liste. Avec
personnalise Excel 2007 :
1. Dans la bote de dialogue Trier, cliquez sur le 1 Appelez la bote de dialogue Trier (allez dans longlet Donnes puis,
bouton Options. dans le groupe Trier et filtrer, cliquez sur le bouton Trier).
2. Slectionnez la liste personnalise dans la liste 3 Reproduisez le paramtrage de la figure 38 et slectionnez la liste
droulante sous Normal.
que vous souhaitez, par exemple notre nouvelle liste.

CALC Trier selon une liste personnalise Figure 38 Lappel dune liste personnalise dans la bote de dialogue Trier
1. Dans la bote de dialogue Tri, slectionnez
longlet Options, 4 Validez, la figure 39 apparat.
2. Cochez la case Ordre de tri utilisateur . 5 Validez une deuxime fois pour obtenir le rsultat dfinitif de notre
3. Slectionnez la liste ad-hoc.
tri (figure 310).

46
3 Trier et slectionner des enregistrements dans les listes de donnes
Figure 39
Une liste personnalise est slectionne
comme critre de tri.

Figure 310
Notre liste trie, les femmes dabord !

Effectuer plusieurs tris successifs


Il est bien rare quun seul tri suffise. Lannuaire tlphonique de la
France entire, tri uniquement sur le nom de labonn, ne serait pas trs
pratique. Cet annuaire est donc tri dabord par dpartement, puis par
ville, puis par nom. Ce qui fait trois tris successifs. Eddy nous demande
de trier notre liste de la faon suivante :
1 dabord sur le nom du reprsentant selon notre liste personnalise ;
2 puis par ordre alphabtique sur la zone ;
3 puis par ordre alphabtique sur le produit ;
4 et enfin sur la date, en affichant la vente la plus rcente en tte (donc
en ordre chronologique inverse).

47
DExcel Access

Cette demande ncessite quatre tris successifs. En voici le mode opra-


toire avec Excel 2007 :
1 Appelez la bote de dialogue Trier (allez dans longlet Donnes, puis
dans le groupe Trier et filtrer et cliquez sur le bouton Trier).
BIEN RANG Rcuprer sa liste de donnes
dans lordre o elle a t saisie 2 Entrez le premier tri effectuer conformment la figure 38.
3 Cliquez sur le bouton Ajouter un niveau, une nouvelle ligne de tri
Aprs avoir ralis de nombreux tris, on peut avoir
lenvie de retrouver sa liste de donnes dans apparat au-dessous de la premire ligne. Il suffit de la paramtrer
lordre initial de saisie. Cest l que notre champ son tour comme nous venons de le voir.
Numro (denregistrement) trouve, entre autres, 4 Continuez cette opration jusqu obtenir laffichage de la figure 311,
toute son utilit : il suffit de trier selon ce champ.
puis validez.

Figure 311
Quatre tris successifs, le premier selon une
liste personnalise et le dernier en sens chro-
nologique inverse

Il ne vous reste plus qu aller voir Eddy avec votre tableau tri comme
dans la figure 312.

Figure 312
Notre liste de donnes trie. Observez
en particulier le tri des deux lignes du haut.

48
3 Trier et slectionner des enregistrements dans les listes de donnes
EXCEL 2003 ET CALC Effectuer plusieurs tris successifs

La bote de dialogue Trier de ces deux logiciels propose par dfaut de 3. Effectuez les tris successifs par paquet de trois, en oprant (et cest
trier sur trois champs successifs au maximum. l toute lastuce) du dernier paquet au premier. Dans notre
Au maximum ? Pas tout fait, grce la mthode suivante : exemple, il faut donc dabord effectuer un premier tri selon le der-
1. Listez sur une feuille de papier les tris successifs dans lordre o nier paquet (incomplet, ne comprenant que le champ Date,
vous souhaitez les effectuer (dans notre exemple : Reprsentant, figure 313) puis effectuer un deuxime tri selon le premier paquet
Zone, Produit, Date). (complet avec les trois champs Reprsentant, Zone et Produit,
2. Groupez-les par paquets de trois en partant du premier critre de figure 314).
tri ; si le nombre de critres nest pas divisible par trois, le dernier Et cest tout. Les figures 313 et 314 illustrent la dmarche suivre
paquet sera incomplet. Dans notre exemple, nous aurons un pre- dans cet exemple sous Calc (sans dtailler le paramtrage du tri selon
mier paquet comprenant Reprsentant, Zone et Produit et un la liste personnalise pour le champ Reprsentant).
deuxime paquet incomplet ne comprenant que Date.

Figure 313 Le premier tri sur le dernier paquet, incomplet Figure 314 Le deuxime tri sur le premier paquet, complet

Les filtres ou la slection


denregistrements
Les filtres permettent, dans une liste de donnes, de slectionner les
enregistrements qui rpondent certains critres : les ventes de telle date
ou de tel mois, les sommes gales tel montant ou encore, dans notre cas
pratique, les ventes de tel ou tel reprsentant. Nous avons dj voqus
les filtres au chapitre 1. Leur simplicit de fonctionnement les rend
incontournables pour extraire de linformation dune liste de donnes.

49
DExcel Access

Pour afficher les fonctions de filtre assurez vous dabord, comme dhabi-
tude, de navoir slectionn quune et une seule cellule de la liste de don-
nes. Il vous suffit ensuite :
dans Excel 2007 de vous rendre dans longlet Donnes puis cliquer sur
le bouton Filtrer ;
dans Excel 2003 dutiliser le menu Donne, option Filtrer puis Filtre
automatique ;
dans Calc de vous rendre dans le menu Donnes, options Filtre puis
Autofiltre.

Les filtres simples


Dans cette section, nous allons apprendre comment appliquer un filtre
sur un ou plusieurs champs et dsactiver un filtre actif. Vous matri-
serez ainsi les bases de la manipulation des filtres.

Appliquer un filtre sur un champ unique


Dans notre cas pratique, filtrer sur un seul champ permet de nafficher
par exemple que les ventes ralises par un reprsentant. Il suffit de
EXCEL 2003 ET CALC slectionner la valeur souhaite dans la liste droulante du filtre
Combinaison de slections dans un filtre
(figure 315) et de valider.
On ne peut raliser des combinaisons de filtres
avec ces logiciels quen utilisant des filtres volus. Il est possible de slectionner plusieurs valeurs pour le mme champ. Par
Reportez-vous dans ce cas directement page 55 exemple, le paramtrage de la figure 316 permet dafficher toutes les ventes
pour Excel 2003 et page 57 pour Calc. effectues en province, Nord et Sud runis. Sur la figure 317, la case Slec-
tionner tout permet de demander laffichage de tous les enregistrements.

Figure 315 Les choix disponibles dans un filtre Figure 316 Slection dun sous-ensemble Figure 317 La case Slectionner tout
correspondent aux diffrentes valeurs que peut de donnes avec plusieurs critres valids. ractive toutes les entres dun champ.
prendre le champ (ici le champ Reprsentant).

50
3 Trier et slectionner des enregistrements dans les listes de donnes
Appliquer un filtre sur plusieurs champs ALLER PLUS LOIN
Quand plusieurs filtres sont appliqus en mme temps sur diffrents Quand aucun enregistrement ne
correspond une combinaison de filtres
champs dune mme liste de donnes, leurs effets se combinent. Si nous
appliquons uniquement le filtre Sud sur le champ Zone, nous obtenons Si nous souhaitons extraire les ventes de Pierre
dans la zone Nord, nous allons commencer par
les ventes effectues dans la rgion Sud. De mme, si nous appliquons appliquer le filtre Pierre sur le champ Reprsen-
uniquement le filtre Pierre sur le champ Reprsentant, nous obtenons les tant. Mais, au moment dappliquer le deuxime
ventes de Pierre. Si nous appliquons le filtre Pierre sur le champ Repr- filtre (Nord pour le champ Zone), nous nous aper-
sentant et le filtre Sud sur le champ Zone, nous obtenons uniquement cevons que cette valeur nest pas disponible dans
la liste de choix. En effet, Pierre na rien vendu
les ventes ralises par Pierre dans la rgion Sud (figure 318).
dans le Nord et la seule vente de cette rgion a t
effectue par Sophie (la vente n 19).

Figure 318 Deux filtres concomitants sur les champs Reprsentant et Zone permettent daffi-
cher la seule vente effectue par Pierre dans la rgion Sud, il sagit de lenregistrement n 14.

ALLER PLUS LOIN DANS LA LOGIQUE ET et OU

En matire de slection denregistrement par lutilisation de critres, on est souvent


amen utiliser pour sexprimer les conjonctions de coordination ET et OU (par exemple,
les ventes de Sophie ET de Jean, celles de Cordes OU de Mousquetons, etc.). Le problme
vient que leur acception dans le langage courant ne correspond pas exactement la ra-
lit logique et amne donc des confusions.
Que dire par exemple du filtre paramtr de la figure 316 concernant les ventes ralises
en province ? Sagit-il des ventes ralises dans le Nord ET dans le Sud comme le langage
commun tend le dire ? Eh bien non. bien y rflchir, la mme vente ne peut avoir t
ralise dans le Nord ET dans le Sud. Elle na pu tre ralise que dans le Nord OU dans
le Sud. La logique amne donc formuler que les ventes de province sont les ventes du
Nord OU du Sud, ce qui exclut alors la rgion parisienne. En cas de combinaison de critres
sur le mme champ il faut utiliser le critre OU.
Par contre, pour une combinaison de critres sur plusieurs champs, il est aussi possible
dutiliser le critre logique ET : la figure 318 prsente bien lunique vente ralise par
Pierre ET dans le Sud. Parler des ventes ralises par Pierre OU dans le sud aurait retourn
une liste contenant la fois les ventes de Pierre (sans critre de lieu) et les ventes ralises
dans le Sud par tous les reprsentants. Ce qui nest pas tout fait pareil...
En logique, nous disons que le rsultat retourn par loprateur OU sera vrai ds que lune
au moins des valeurs teste est vraie ; alors que pour loprateur ET il faudra ncessaire-
ment que toutes les valeurs testes soient vraies pour que le rsultat soit vrai.

RAPPEL Un filtre nefface rien


Dsactiver un filtre Lactivation dun filtre nefface bien videmment
Le danger dans lutilisation des filtres est den appliquer un sur un champ aucun enregistrement de la liste. Il ne fait que les
en oubliant quun autre filtre est actif sur un autre champ. Si cest le cas, masquer temporairement et les raffiche ds quil
est dsactiv.
comme nous venons de le voir, leurs effets se combinent.

51
DExcel Access

B.A.-BA Les trois indices indiquant quun filtre est actif

Premier indice : certaines lignes sont masques temporairement. Sur la figure 318
par exemple, la seule ligne visible est la ligne 15 (lunique vente de Pierre dans le sud),
toutes les autres sont masques.
Deuxime indice : les numros de ligne se colorent en bleu (uniquement sous
Excel 2007 et 2003).
Troisime indice : la flche de slection du filtre change dapparence, elle sorne dune
sorte d entonnoir sous Excel 2007 (figure 319) ou se colore en bleu avec
Excel 2003 et Calc.

Figure 319
Lentonnoir signale quun filtre est actif
sur le champ Reprsentant.

Pour dsactiver un filtre, cliquez sur la flche de liste droulante de filtre,


puis slectionnez :
Slectionner tout sous Excel 2007 ;
Tous sous Excel 2003 (figure 320) ;
Tout avec Calc.
Il est aussi possible de dsactiver les fonctions de filtre :
Sous Excel 2007 : dans longlet Donnes, allez dans le groupe Trier et
filtrer, dcochez le bouton Filtrer.
Avec Excel 2003 : dans le menu Donnes, choisissez loption Filtrer
Figure 320 puis dcochez Filtre automatique.
La dsactivation dun filtre Avec Calc : allez dans le menu Donnes, puis choisissez loption Filtre
(ici sous Excel 2003)
et dcochez Autofiltre.

Les filtres volus


Par filtre volu, il faut comprendre un filtre qui permet, par exemple, de
slectionner des enregistrements avec une date prcise ou dont un
champ numrique est compris entre tel et tel montant.
tant donn limportance des nouveauts dExcel 2007, trs innovantes
au plan de la facilit dutilisation et les possibilits offertes, nous avons
choisi de vous les prsenter part.

52
3 Trier et slectionner des enregistrements dans les listes de donnes
Les filtres volus spcifiques Excel 2007
Ces filtres volus sappliquent du texte, des nombres ou des dates.

Les filtres volus dExcel 2007 appliqus du texte


Ces filtres appliqus du texte vont permettre daller plus loin dans la
slection denregistrement, en permettant par exemple de raliser des fil-
tres non plus sur le contenu complet du champ, mais uniquement sur une
partie de ce contenu (comme sur les deux premiers caractres dun code
postal pour extraire les enregistrements dun dpartement particulier).
Appliquons un filtre textuel sur le champ Reprsentant dans notre cas
pratique. Aprs avoir activ les filtres, cliquons sur la flche de liste
droulante ct de len-tte de champ et choisissons loption Filtres tex-
tuels (figure 321). Les quatre options permettent deffectuer des slec-
tions par des filtres efficaces et simples comme le montre le tableau 31.

Figure 321
Les diffrentes options des Filtres textuels

Tableau 31 Les filtres textuels Excel 2007

Option Effet
Commence par Prend en compte la ou les premires lettres du mot (P slectionnera Pierre, S Sophie, etc.)
Se termine par Prend en compte la ou les dernires lettres du mot (E slectionnera Pierre, Hlne et Sophie, mais non Jean)
Contient Prend en compte la prsence dun ou de plusieurs lettres dans le mot (X ne slectionnera rien, aucun nom de repr-
sentant ne contenant la lettre X)
Ne contient pas Prend en compte labsence dune ou de plusieurs lettres dans le mot (X slectionnera tous les enregistrements)

53
DExcel Access

ALLER PLUS LOIN Les caractres gnriques


On utilise galement ces caractres gnriques dans les moteurs de recherche sur
Internet. Ces caractres * et ? permettent daller plus loin dans la finesse des fil-
tres, * reprsentant au moins un caractre et ? un seul caractre. Imaginons une
liste de donnes avec un champ CodePostal. Le filtre 74* (figure 322) slectionnera
tous les enregistrements de Haute-Savoie, le filtre 74?00 slectionnera 74000, 74100,
74200, 74300, 74400, 74500, 74600, 74700, 74800 et 74900, mais pas 74010.

Figure 322
Utilisation des caractres gnriques dans un filtre Contient

Les filtres volus dExcel 2007 appliqus des nombres


On accde aux filtres numriques en choisissant loption Filtres numri-
ques de la liste droulante des filtres. Il est possible de choisir parmi plu-
sieurs options danalyse en fonction du problme rsoudre : suprieur
, infrieur , 10 premiers, au-dessus ou en dessous de la moyenne, etc.
(figure 323). Dans la figure 324, nous avons choisi de fournir Eddy
la liste des ventes suprieures la moyenne.

Figure 323 Figure 324


Toutes les possibilits de Filtres numriques Une application du filtre numrique Au-dessus de la moyenne

Les filtres volus dExcel 2007 appliqus des dates


Ds quune colonne de liste de donnes contient des dates, Excel 2007 le
reconnat et propose loption Filtres chronologiques. Ces filtres proposent
deffectuer des slections selon des critres varis : hier, demain,
aujourdhui, la semaine prochaine, lanne prochaine, etc. Leur utilisation
ne pose pas de problme particulier, il suffit de choisir loption souhaite.

54
3 Trier et slectionner des enregistrements dans les listes de donnes
Les autres filtres volus dExcel 2007 et 2003 et de Calc
Ces filtres ne portent pas le mme nom selon le logiciel que vous
utilisez : avanc pour Excel 2007, labor pour Excel 2003, spcial pour
Calc. Comme leurs fonctionnalits sont trs proches, nous utiliserons,
pour ne fcher personne (sauf dans les descriptifs spcifiques), le terme
gnrique dvolus.
Ces filtres volus permettent de raliser des combinaisons de filtres plus
complexes que les filtres simples. Leur mode dutilisation peut drouter,
cest pourquoi nous allons le dtailler. Il sagira en gnral de :
1 Commencer par paramtrer une zone de critres.
2 Paramtrer et excuter le filtre volu.
Partons dun exemple simple. Nous voulons prsenter Eddy ltat des ventes
pour un reprsentant et une zone donns : les ventes de Jean pour le Sud.

Paramtrer la zone de critres


La premire opration va consister crer une plage indpendante de
cellules dans laquelle Excel ou Calc vont lire les conditions du filtre. Le
principe est simple : crer une mini-liste de donnes, ct de notre liste
principale, contenant les noms des champs filtrer en premire ligne et
les valeurs souhaites pour chaque champ au-dessous, en prenant bien la
prcaution de sparer ces deux listes de donnes par une colonne vide
afin dviter quelles ne se mlangent (figure 325).

Figure 325
La zone de critres dun filtre labor, ici pour
deux champs et une valeur pour chaque
champ. Remarquez que cette zone est spare
de la liste de donnes par une colonne vide.

Paramtrer et utiliser le filtre volu


Une fois le filtre cr, il ne reste plus qu lutiliser. Voici la mthodo-
logie suivre pour notre exercice, en supposant que la liste de donnes
soit saisie dans la plage (groupe de cellules) A1 F31 et la zone de cri-
tres dans la plage H1 I2, comme dans la figure 325.
1 Slectionnez une et une seule cellule de la liste.
2 Appelez la bote de dialogue Filtre avanc en vous rendant dans longlet
Donnes, puis dans le groupe Trier et filtrer et en cliquant sur le bouton
Avanc pour Excel 2007 (dans le menu Donnes, options Filtrer puis
Filtre labor sous Excel 2003 ou encore dans le menu Donnes,
options Filtre puis Filtre Spcial sous Calc). Normalement, la bote de
dialogue doit montrer, dans la zone Plages, la zone contenant la liste de
donnes, dans notre exemple de A1 F31 (modifiez si ncessaire).

55
DExcel Access

3 Cliquez maintenant dans la Zone de critres et indiquez la plage de


H1 I2 qui contient nos fameux critres. Il ne vous reste plus alors
qu valider (figure 326).
Tout lintrt de ce type de filtre est de combiner rapidement autant de
filtres que souhaits en saisissant dans la zone de critres tous les champs
cte--cte et toutes les valeurs acceptables les unes au-dessous des
autres. Vous gagnez ainsi un temps apprciable par rapport aux filtres
traditionnels. La seule condition est que la plage de critres ainsi dfinie
soit compacte, sans ligne ou colonne vide et bien spare de la liste de
Figure 326 Le paramtrage dun filtre
donnes. Lexemple de la figure 327 permet de filtrer toutes les ventes
volu sous Excel 2003 de cordes de Jean ou dHlne suprieures 5 000 .

CRIRE Suprieur/infrieur, ALLER PLUS LOIN Les combinaisons ET/OU dans les filtres volus
suprieur/infrieur et/ou gal
Lutilisation des combinaisons de critres ET/OU recle quelques piges. Dans la figure 327,
Dans les critres de filtre, suprieur et infrieur se
la zone de critres comprend deux lignes : une pour Hlne et lautre pour Jean ; les deux
notent > et <, suprieur ou gal et infrieur ou
autres conditions (cordes et >5000) sont rappeles sur chacune de ces lignes. La signification
gal >= et <=.
logique est les ventes de (Jean OU dHlne) ET de cordes ET strictement suprieures
5 000
Si ces deux autres conditions ne figuraient que sur une seule ligne (par exemple, sur celle
dHlne, comme sur la figure 328), ce qui signifierait logiquement (toutes les ventes
de Jean) OU (toutes les ventes dHlne ET de cordes ET strictement suprieures
5 000) , nous aurions obtenu tout fait autre chose, savoir les ventes de cordes
dHlne suprieures 5 000 , ainsi que toutes les ventes de Jean (aucun filtre nayant
t prcis pour les champs Produit et Montant de Jean).
Figure 327 La zone de critres dun filtre Reportez-vous page 51 pour des prcisions complmentaires sur ET et OU.
labor permettant dobtenir les ventes de
cordes dHlne ou de Jean suprieures
5 000 . Remarquez la rptition des critres Filtrer les donnes vers un nouvel emplacement
Cordes et >5000 sur les deux lignes.
Les filtres que nous avons utiliss jusqu prsent procdaient par mas-
quage temporaire des enregistrements (lignes) qui ne correspondaient
pas aux critres dfinis. Loption Copier vers un nouvel emplacement de la
bote de dialogue dun filtre volu (figure 326) permet au contraire de
compiler les rsultats des recherches dans un nouvel emplacement.
Figure 328 La zone de paramtres qui donne
les ventes de cordes dHlne suprieures
Lavantage de cette mthode est que la liste de donnes reste intacte, le
5 000 et toutes les ventes de Jean. filtre procdant par copie de lignes et non par masquage.

Annuler un filtre volu


Le plus simple pour annuler un filtre volu est deffacer totalement la
zone de critres dans la bote de dialogue de la figure 328 ou daller
dans le menu Donnes, options Filtrer puis Afficher tout.

56
3 Trier et slectionner des enregistrements dans les listes de donnes
CALC Les filtres standards et spciaux
On accde aux filtres standards de Calc par le menu Donnes, En ce qui concerne les filtres spciaux (quivalents des filtres vo-
options Filtres puis Filtres standard. Le bouton Options permet lus), il suffit de vous rendre dans le menu Donnes, options Filtre
daccder en plus dautres possibilits (respecter ou non la casse, puis Filtre spcial, et de cliquer ensuite sur le bouton Options. La
copier le rsultat vers une zone spcifie, conserver ou non les dou- figure 330 illustre le paramtrage sous Calc du filtre effectu sous
blons...). La figure 329 permet par exemple de filtrer les ventes de Excel 2003 selon la figure 326.
Jean comprises entre 4 000 et 5 000 .

Figure 330 Lquivalent sous Calc du filtre Excel de la figure 326

Figure 329 Les filtres standards de Calc

Synthse : les tris et les slections


denregistrements par filtre
Pour une utilisation sans problmes de toutes les fonctions spcifiques de
listes de donnes, comme les tris et les filtres, il est indispensable de :
1 Btir une liste de donnes conforme aux cinq rgles.
2 Paramtrer les rgles de validation ncessaires.
3 Slectionner une et une seule cellule de la liste de donnes.
Il est possible de trier une liste sur un ou plusieurs champs conscutive-
ment, de A Z ou de Z A (par ordre croissant ou dcroissant pour des
valeurs numriques). Crer des listes personnalises permet de raliser
des tris selon un ordre entirement paramtrable.
Les fonctions de filtre permettent, elles, disoler certains enregistrements
dune liste de donnes selon des critres simples (les ventes dun certain repr-
sentant par exemple) ou plus volus (les abonns au tlphone de Haute-
Savoie), avec laide notamment des caractres gnriques de recherche * et ?.
Le chapitre suivant va aborder ltude des fonctions de sous total et de
tableau crois dynamique de liste de donnes, qui sont trs probable-
ment les fonctions spcifiques aux listes de donnes les plus perfor-
mantes et les plus tonnantes !

57
chapitre 4
Exploiter les listes de donnes :
les sous-totaux et les tableaux
croiss dynamiques

SOMMAIRE
B Totaux et sous-totaux
dans une liste de donnes
Dans ce chapitre, nous allons apprendre utiliser les fonctions
les plus tonnantes des listes de donnes sous tableur, qui vont B Des tats danalyse
entirement paramtrables :
nous permettre deffectuer toute les analyses statistiques les tableaux (graphiques)
de nos donnes sans avoir entrer une seule formule ! croiss dynamiques

MOTS-CLS
B Totalisation de cellules par
simple slection
B Total et sous-total
B Sous-totaux imbriqus
B Somme, moyenne, nombre, cart
type, variance
B Tableau crois dynamique TCD
B Pilote de donnes PDD
B Graphique crois dynamique
DExcel Access

Tout notre travail jusqu prsent en matire de liste de donnes tait de


lextraction dinformation : nous navons encore rien cr au sens premier
du terme. Nous avons en particulier consciencieusement list nos enregis-
trements les uns au-dessous des autres en notant chaque fois le montant
de la vente mais nous nen connaissons mme pas le montant total et
encore moins le total par reprsentant. Ce qui est pour le moins dommage.
Cest l quinterviennent les dernires fonctions spcifiques aux listes de
donnes que nous allons tudier : les sous-totaux et les tableaux croiss
dynamiques. Autant dire tout de suite que nous avons gard le meilleur
pour la fin et que vous ne serez pas du, tant les caractristiques de ces
fonctions sont tonnantes : trs facilement et trs rapidement, sans
modifier la liste de donnes et sans aucun risque derreur, vous serez
capable de produire des synthses multidimensionnelles de vos donnes
(sous-totaux par reprsentant, synthse des ventes par reprsentant et
par zone, graphique des ventes par produit et par zone, etc.).
Les fonctions prsentent lnorme avantage de vous faire gagner du
temps et de vous librer du stress inhrent la ralisation de tableaux
abscons, remplis de formules compliques, afin de pouvoir prendre du
recul, analyser les donnes et rflchir.

Totaux et sous-totaux dans une liste de


donnes
Imaginons que vous souhaitiez calculer un total des ventes par reprsen-
tant ou par zone, ou bien par reprsentant puis par zone. Tout cela est
possible grce aux fonctions de sous-totaux de listes de donnes qui, en
plus, sont trs simples demploi.
La figure 413 (page 67) montre un exemple de sous-total par reprsen-
tant puis par zone :
La dernire ligne (total gnral) donne le montant total des ventes.
Nous avons ensuite quatre sous-totaux par reprsentant.
Et enfin, lintrieur de chaque sous-total par reprsentant, nous
avons les sous-totaux par zone.
On parle dans ce cas de structure hirarchique (ou imbrique) de total et
de sous-totaux, le premier contenant le deuxime, un peu la manire
des poupes russes. Lensemble des totaux et des diffrents sous-totaux
dans une liste de donnes seffectue grce aux fonctions de Sous-total.

60
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
PRODUCTIVIT Obtenir des totaux par simple slection de cellules
Dans une feuille de calcul, vous avez besoin de connatre rapidement barre des tches, en bas droite de votre cran (figure 41) : le total
le total de certaines cellules et vous navez ni la possibilit, ni lenvie, des cellules slectionnes saffiche (Excel 2007 fournit en prime la
ni le temps dentrer des formules ou dutiliser les fonctions de sous- moyenne et le nombre de cellules non vides).
total de listes de donnes ? Excel et Calc ont une fonctionnalit trs Cette manipulation fonctionne aussi avec des slection de cellules
pratique. Il vous suffit de slectionner la plage des cellules concernes non contigus ; il suffit alors de slectionner les cellules souhaites les
puis dobserver la barre dtat, qui se trouve juste au-dessus de la unes aprs les autres en maintenant la touche Ctrl enfonce.

Figure 41 Informations fournies par Excel 2007 sur les cellules slectionnes (F25 F31).

Insrer un niveau unique de sous-total


Reprenons lexercice cit en introduction de ce chapitre : calculer les
sous-totaux des ventes par reprsentant. Dans ce but, il y aurait bien sr
la possibilit dinsrer des lignes aux bons endroits, chaque change-
ment de reprsentant, et dy entrer une formule de type Somme(). Mais
cette technique est fastidieuse et comporte de nombreux risques derreur,
notamment si on se trompe dans les insertions de ligne et dans les rf-
rences des formules Somme().
Oublions donc ces mauvais rflexes et utilisons les excellentes fonction-
nalits de sous-total offertes par les listes de donnes. La mthodologie
pour les insrer est trs simple, elle sera plus longue expliquer qu
excuter !
Tout dabord, avant de crer un sous-total, il faut surtout ne pas oublier
de trier la liste selon le champ qui sera utilis pour le sous-total. Dans
notre exemple, commenons donc par trier notre liste par reprsentant
en utilisant un ordre alphabtique ou notre liste personnalise (les
femmes en premier, voir page 44). RAPPEL Avez-vous pens effectuer une
copie de sauvegarde de votre liste ?
prsent, il convient dinsrer le sous-total :
Imaginons le pire. Vous faites une btise en gn-
1 Cliquez sur une cellule (et une seule) de la liste de donnes. rant vos sous-totaux ; vous avez compltement
2 Sous Excel 2007 : allez dans longlet Donnes puis, dans le groupe dtruit votre liste de donnes dorigine et vous
avez oubli den faire une copie. Vous devriez alors
Plan, cliquez sur le bouton Sous-total. Sous Excel 2003 ou Calc : uti-
tout recommencer...
lisez la commande Sous-total (ou Sous-totaux) du menu Donnes.

61
DExcel Access

3 La bote de dialogue Sous-total saffiche. Compltez-la comme


indiqu dans la figure 42.
Aprs validation, vous obtenez laffichage de la figure 43 qui intgre
maintenant nos fameux sous-totaux.
Remarquez dans la bote de dialogue de la figure 42, la case cocher
Elle permet de gnrer le total gnral de bas
Synthse sous les donnes.
de liste.

Figure 42 Linsertion dun sous-total :


chaque changement de Reprsentant, utilisons
la fonction Somme pour le champ Montant et
ajoutons une Synthse sous les donnes.
Lcran est ici un cran Excel 2007/2003, la
version Calc est trs semblable.

BOGUE ? Abandonnez la Mise en forme


sous forme de tableau sous Excel 2007
pour les sous-totaux
La version dOffice 2007 qui a servi cet ouvrage
comporte la bizzarerie suivante : il est impossible Figure 43 Les sous-totaux sont affichs.
daccder aux fonctions de sous-total exposes ici
Remarquez les affichages spcifiques de sous-total en marge gauche.
quand la mise en forme automatique Mise en
forme sous forme de tableau est applique
la liste de donnes. Est-ce fait exprs (on ne voit MTHODE Ajout ou suppression denregistrement avec les sous-totaux
pas bien pourquoi dailleurs), ou est-ce un bogue
qui sera rectifi ? En tout cas, si vous ne pouvez Considrant la facilit dutilisation de la fonction de sous-total, nous vous recommandons
accder ces fonctions de sous-total, enlevez pour tout ajout, suppression ou modification denregistrements alors que des sous-totaux
cette mise en forme automatique et tout devrait sont dj paramtrs, de :
rentrer dans lordre.
supprimer les sous-totaux existants, voir page 66 ;
effectuer les modifications des donnes ;
paramtrer de nouveau les sous-totaux.
Cette faon de faire vous garantit dobtenir des rsultats fiables. Elle a de plus lavantage
de bien sparer la saisie des donnes de leur exploitation.

62
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
ATTENTION Pourquoi trier la liste de donnes avant dinsrer le sous-total
En observant la figure 42, vous remarquez quune somme a t insre dans la colonne Mon-
tant chaque changement de reprsentant. Cest pour cette raison que nous avons tri la liste
dabord selon le champ Reprsentant. Si nous ne lavions pas fait, Excel (aussi bien que Calc)
aurait trouv chaque reprsentant plusieurs fois dans la liste, et aurait donc insr plusieurs
sous-totaux pour chaque reprsentant, ce qui aurait t la fois faux et illisible (figure 44).

Figure 44 La liste de donnes est trie par Numro. Un sous-total a donc t insr
pour chaque nouvelle occurrence dun nom de reprsentant.

CALC Les sous-totaux avec Calc

Seule lergonomie de la bote de dialogue Sous-total de Calc (figure 45) diffre de celle
dExcel. La nuance essentielle tient la prsence donglets qui vont permettre la cration
simultane de plusieurs niveaux de sous-totaux imbriqus, comme nous allons le voir plus
loin, par exemple par reprsentant, puis par zone, puis par produit. Remarquez aussi les
diffrentes fonctions disponibles, autres que la simple Somme().

Figure 45 Les sous-totaux sous Calc

63
DExcel Access

Exploiter les sous-totaux de listes de donnes


Lcran spcifique de sous-total va nous permettre de dtailler ou non le
contenu de chaque sous-total, par exemple en affichant ou en masquant
le dtail des ventes de tel ou tel reprsentant. Avec une facilit telle quon
va vite se demander comment on faisait avant...

Afficher la liste intgrale des enregistrements, des sous-totaux et


du total gnral
Lcran obtenu directement aprs la validation des sous-totaux (figure 43)
donne le dtail des enregistrements, avec le total gnral au bas de ltat et
les quatre sous-totaux par reprsentant ainsi que nous lavions demand.
Nous sommes certains que les totaux sont exacts et quaucune vente na t
oublie dans les calculs. Quiconque a un peu lhabitude dutiliser la fonc-
tion Somme() apprciera cela. Mais ce nest pas tout : nous allons pouvoir
afficher ou masquer volont le dtail des ventes par reprsentant !

Affiner lanalyse : dvelopper ou rduire chaque sous-total


Vous avez probablement remarqu lapparition, gauche de la bande
grise des intituls de colonne, des boutons numrots 1, 2 et 3 et des
boutons de dveloppement/rduction des sous-totaux + et - (figure 46).
Ils vont servir afficher ou masquer la demande tout ou partie des
sous-totaux et des dtails. En voici le mode demploi :
Cliquez sur le bouton 1. Seul le total gnral est visible (figure 47).
Cliquez sur le bouton 2. Les sous-totaux par reprsentants rapparais-
sent, mais les dtails par reprsentant restent masqus (figure 48).
Cliquez sur le bouton 3. Nous voyons nouveau tous les dtails,
comme sur la liste dorigine de la figure 43.
Il est encore possible daller plus loin :
Cliquez sur le bouton 2, pour masquer le dtail de toutes les ventes,
puis par exemple sur le bouton + ct de Jean. Le dtail des ventes de
Jean apparat, en plus des sous-totaux par reprsentant (figure 49).
Cliquez nouveau sur le bouton qui a remplac le bouton + au
niveau du total de Jean puis sur le bouton + de Sophie. Seul le dtail
de Sophie est maintenant visible (figure 410).
PARALLLE Les + et les des sous-totaux Nous allons ainsi pouvoir fournir :
Les boutons + et des sous-totaux fonctionnent un rcapitulatif des ventes par reprsentant Eddy (en cliquant sur le
comme les boutons de lexplorateur Windows qui 2) et le dtail de chacun (en cliquant sur le bouton 3) ;
permettent volont de dvelopper (+) ou rduire le dtail des ventes de chaque reprsentant au reprsentant concern,
(-) les diffrents niveaux darborescence
avec en prime le total des ventes des autres.

64
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Figure 46
Les outils spcifiques pour dvelopper ou rduire
la demande chaque niveau de sous-total

Figure 47
Uniquement le total gnral. Remarquez
que les lignes 2 35 sont masques.

Figure 48
Le total gnral, avec les sous-totaux
par reprsentant en prime

Figure 49
La figure 48, avec en plus le dtail de Jean

Figure 410
Toujours la figure 48, avec cette fois-ci
le dtail de Sophie

65
DExcel Access

Exercez-vous : pouvez-vous dcomposer les oprations ncessaires pour


obtenir laffichage de la figure 411 ?

Figure 411
Le dtail pour Pierre, le total pour les autres

Solution : aprs avoir insr les sous-totaux, il suffit de cliquer sur le


bouton 2 pour nobtenir plus que les sous-totaux par reprsentant, puis
sur le bouton + de Pierre pour dvelopper son dtail.

Supprimer les sous-totaux


Pour supprimer les sous-totaux et revenir laffichage classique de la
liste de donnes, il ne faut bien videmment pas supprimer manuelle-
ment les lignes de sous-total. Tout se fait automatiquement :
Pour Excel 2003 et 2007, appelez la bote de dialogue Sous-total de la
figure 42, puis cliquez sur le bouton Supprimer tout, en bas gauche.
Pour Calc, partir de la bote de dialogue Sous-total de la figure 45,
cliquez sur le bouton Supprimer, en bas droite.
Nayez cependant pas dinquitude ! Les boutons de suppression des
sous-totaux ne suppriment en aucun cas les enregistrements de la liste de
donnes.
Vous constatez ainsi que linsertion de sous-totaux dans une liste de
donnes ne la modifie en rien ; ces sous-totaux sont en quelque sorte
plaqus au-dessus de cette liste et sont donc totalement rversibles (ainsi
que toutes les autres fonctions de liste de donnes dcrites ici).

Imbriquer plusieurs niveaux de sous-totaux


Il est frquent davoir insrer plusieurs niveaux de sous-total. Par
exemple, il serait intressant de fournir Eddy, trs attentif lvolution
des ventes de chaque reprsentant par zone, un document effectuant une
sous-totalisation par reprsentant puis par zone.
Les tapes suivre sous Excel sont les suivantes :
1 Supprimez les sous-totaux ventuellement prsents dans la liste de
donnes.
2 Triez la liste selon tous les champs sur lesquels vous dsirez insrer
des sous-totaux. Par exemple, si on veut insrer des sous-totaux par

66
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Reprsentant puis par Zone, il faut pralablement trier par Reprsen-
tant puis par Zone.
3 Effectuez la procdure dinsertion de sous-totaux imbriqus.
Les deux premires tapes de cette procdure (suppression de sous-
totaux et tri) nous tant familires, attachons-nous la procdure
dinsertion de sous-totaux imbriqus proprement dite.
1 Paramtrez le premier niveau de sous-total (dans notre exemple pour
le champ Reprsentant, figure 42) et validez.
2 Recommencez immdiatement la mme procdure dinsertion de
sous-total, cette fois-ci pour le deuxime niveau (cest--dire dans
notre exemple le champ Zone, figure 412), en prenant bien garde
ne pas cocher la case Remplacer les sous-totaux existants, et validez.
3 Renouvelez ltape prcdente autant de fois que ncessaire en fonc- Figure 412
tion du nombre de niveaux de sous-totaux insrer. Linsertion sous Excel dun niveau
de sous-totalisation par Zone. Remarquez
Le pige dans cette procdure dinsertion de sous totaux imbriqus est de que la case Remplacer les sous-totaux
cocher la case Remplacer les sous-totaux existants de la figure 412. Dans existants nest pas coche.
cet exemple, a aurait leffet de remplacer la totalisation dj effectue (par
Reprsentant) par la nouvelle (par Zone). Vous nobtiendriez alors quun CALC Insrer des sous-totaux imbriqus
seul niveau de sous-totalisation (par Zone) et non deux comme souhait. La bote de dialogue Sous-totaux de Calc auto-
rise (figure 45) linsertion directe de plusieurs
niveaux de sous-totaux dun seul coup. Il suffit
dutiliser les onglets 1er groupe, 2e groupe,
3e groupe pour les sous-totaux de premier
niveau, deuxime niveau et troisime niveau. Dans
notre exercice, entrez le sous-total par reprsen-
tant dans longlet 1er groupe et celui par zone
dans le 2e groupe.

Figure 413
Deux niveaux de sous-totaux imbriqus.
La lisibilit est moins vidente...

67
DExcel Access

CALC Insrer un changement de page La figure 413 dtaille ce que nous obtenons aprs avoir inser les sous-
entre chaque groupe totaux par reprsentant puis par zone. Lorganisation des icnes spcifi-
Cette option, une exclusivit de Calc, peut aider ques de sous-total reste globalement identique, mais sest singulirement
obtenir des tats plus lisibles (dans longlet complique. Remarquez par exemple lapparition dun nouveau bouton,
Options de la figure 45, slectionnez la case le 4, ct des 1, 2 et 3 dj connus. Cest normal, puisque nous avons
Saut de page entre les groupes). Remarquez ajout un niveau supplmentaire de dveloppement/rduction :
aussi loption Trier au pralable selon les
groupes de ce mme onglet, qui vous dispense le 1 sert nafficher que le total gnral ;
de trier la liste avant de lancer la procdure le 2 affiche en plus les sous-totaux par reprsentant ;
dinsertion des sous-totaux. Avantage Calc ?
le 3 affiche en plus les sous-totaux par zone ;
le 4 affiche tous les dtails.
Maintenant, trs honntement, cette liste de donnes avec ces deux
ALLER PLUS LOIN Il est possible dinsrer plus niveaux de sous totaux, mme si elle est exacte, nest pas trs lisible.
de deux niveaux de sous-totaux
Gageons que nous ne lutiliserons que pour fournir chaque reprsen-
Nous nous sommes arrts deux imbrications de
sous-totaux. Rien nempche daller plus loin, hormis tant son dtail personnel avec le rappel du total de ses confrres (et nan-
peut-tre notre capacit comprendre ces tats... moins concurrents) comme sur la figure 414.

Figure 414
Le dtail par zone pour un reprsentant (Jean)
et le rappel du total des autres reprsentants

Moyenne, nombre, variance et autres carts types


Nous navons jusqu prsent utilis que la fonction Somme de la bote de
dialogue de la figure 42 pour Excel ou de la figure 45 pour Calc. Il y a
bien sr dautres options danalyse, comme le calcul de la moyenne des
ventes dans notre cas pratique, leur cart-type ou lidentification de la vente
la plus leve. Vous pouvez mme compter le nombre de ventes effectues.
Les utilisateurs de Calc auront dj remarqu sur la figure 45 la possi-
bilit dutiliser dautres fonctions, telles que Nombre (renvoie le nombre

68
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
de cellules non vides du champ), Moyenne, Max, Min, et mme des
notions purement statistiques comme la variance et lcart type.
Pour Excel, il faut dvelopper la liste droulante Utiliser la fonction
(figure 415) pour dcouvrir les fonctions autres que Somme disponibles
pour les sous-totaux.

Figure 415
Une partie des fonctions disponibles
pour les sous-totaux avec Excel

Si vous souhaitez obtenir la statistique de la figure 416 qui ne man-


quera pas dintresser Eddy (la moyenne du montant de chaque vente
par produit, tout reprsentant, zone et date confondus), il vous suffit
dinsrer un sous-total par Reprsentant en utilisant la fonction Moyenne
sur le champ Vente comme lindique la figure 417.

Figure 416
Le montant moyen des ventes par produit

Figure 417
La boite de dialogue dinsertion du sous-total
de la figure 416. La fonction Moyenne est ici
utilise en lieu et place de lhabituelle Somme.

69
DExcel Access

Le tableau ci dessous rsume les principales options disponibles pour les


sous-totaux.
Tableau 41 Les fonctions de sous-total disponibles sous Excel 2007

Fonction Commentaire
Nombre Compte le nombre denregistrements
Moyenne Renvoie la moyenne des valeurs
Max Renvoie la valeur maximum
Min Renvoie la valeur minimum
Produit Renvoie le rsultat de la multiplication des valeurs
Chiffres Compte le nombre denregistrements numriques
cart type p Renvoie lcart type dune population entire
cart type Renvoie lcart type en se basant sur un chantillon dune population
Var p Renvoie la variance dune population entire
Var Renvoie la variance en se basant sur un chantillon dune population

ALLER PLUS LOIN Prsenter la liste de donnes et ses sous totaux

Toutes les listes de donnes compltes de


sous-totaux peuvent tre intgralement prsen-
tes comme nimporte quelle feuille de calcul.
Par exemple, supposons que ltat de la
figure 414 ne nous convienne pas, pour de
simples raisons esthtiques. Il suffit dappliquer
le format que lon souhaite (sous Excel 2007
par exemple, dans longlet Accueil, groupe
Style, slectionner le bouton Mettre sous
forme de tableau) et paramtrer lensemble
des options dimpression classiques pour
obtenir une impression sa guise (figure 418).

Figure 418
Une liste de donnes (et ses sous-totaux)
mise en forme. Remarquez les rfrence-
ments dans les en-ttes et pieds de page.

70
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Des tats danalyse entirement
paramtrables : les tableaux (graphiques)
croiss dynamiques
La fonction Sous-total est trs utile (simplicit, souplesse, rversibilit).
Mais il faut reconnatre quelle trouve sa limite dans le nombre de sous-
totaux quil est possible dimbriquer en restant lisible. Observez donc la
figure 419, qui comprend 3 niveaux dimbrication de sous-totaux : il est
bien difficile de sy retrouver.

Figure 419
Trois niveaux dimbrication de sous-totaux ne sont gure
lisibles, mme si ici seul le dtail de Sophie est affich.

Les tableaux croiss dynamiques (Excel) ou les pilotes de donnes (Calc)


que nous allons tudier dans cette section contournent efficacement
cette difficult et vont nous permettre de crer des tableaux de prsenta-
tion de nos donnes plusieurs entres avec une grande simplicit. Un
tableau crois dynamique se prsente en fait comme un tableau de feuille
de calcul, avec des lignes des colonnes et des donnes. Par exemple, il
sera possible dy faire figurer les ventes ralises par Zone (en colonne) et
par Produit (en ligne). Ou linverse. Ou encore le montant de la vente la
plus importante par Reprsentant et par Produit.

71
DExcel Access

En pratique, la fonction Sous-total est idale pour insrer un (voire deux)


niveau de sous-total, par exemple par Reprsentant puis par Zone. Mais,
ds quil faudra insrer un troisime (voire un deuxime) niveau de sous-
total, nous vous conseillons plutt dutiliser le tableau crois dynamique.
Prcisons, avant de dmarrer cette tude, que lexpression tableau crois
dynamique est une terminologie Excel ; Calc utilise le terme pilote de
donnes. Par souci de clart du discours, labrviation PDD (pour pilote
de donnes) ne sera utilise que pour les utilisateurs de Calc. Lorsque
nous nous adresserons la fois aux utilisateurs dExcel et de Calc, nous
parlerons de TCD (pour tableau crois dynamique).

Crer un tableau crois dynamique avec lassistant


Crer un TCD
Nous allons ici dtailler le mode de fonctionnement de lassistant Crer
un TCD sous Excel 2007. Utilisateurs dExcel 2003 et de Calc, reportez-
vous aux aparts spcifiques, pages 74 et 75.
Imaginons par exemple que nous voulions crer un TCD donnant, par
reprsentant, le montant total des ventes ralises par Zone (en colonne)
et par Produit (en ligne) comme sur la figure 422 de la page 74. Il faut
procder comme suit :
1 Lancez lassistant Crer un TCD en cliquant sur loutil Tableau crois
dynamique dans le groupe Tableau de longlet Insertion. Si vous cliquez
en bas de ce bouton, et non en haut, vous aurez la possibilit de crer un
TCD ou un graphique crois dynamique. Choisissez bien sr loption
TCD (nous tudierons le graphique crois dynamique page 80).
2 Dans la bote de dialogue Crer un tableau crois dynamique
(figure 420), lensemble de votre liste de donnes doit sentourer
dun lisr clignotant ; modifiez-la si ncessaire.
Vous avez la possibilit de crer votre TCD sur la feuille existante ou
sur une nouvelle feuille. Cest cette dernire possibilit que nous
allons adopter, car cest la meilleure lusage. Cliquez donc sur Nou-
velle feuille.
3 Excel cre alors une nouvelle feuille, avec laffichage spcifique au
TCD : la partie gauche est rserve au futur TCD ; la partie droite
Figure 420 contient la zone rserve son paramtrage (celle qui nous intresse
Louverture de lassistant TCD pour le moment).
4 partir de la zone Choisissez les champs inclure dans ce rapport,
faites glisser les champs (figure 421) :
Reprsentant dans la zone Filtre du rapport, afin de disposer dun
TCD par reprsentant ;

72
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Zone dans la zone tiquettes de colonne, afin de lister les diff-
rentes zones cte cte ;
Produit dans la zone tiquettes de ligne, pour afficher les produits
les uns au-dessous des autres ;
Et enfin Montant dans la zone Valeurs, pour obtenir la totalisation
des ventes.
Et cest fini ! Nous avons obtenu notre TCD, figure 422.
Observons sur la figure 421 que le champ Montant sest transform en TECHNIQUE
Somme de Montant quand nous lavons gliss dans la zone Valeurs. Cest Afficher ou masquer lassistant TCD
en effet une totalisation que nous souhaitons le plus souvent effectuer. Pour afficher ou masquer lassistant TCD :
Comme pour la fonction de sous-total, dautres fonctions sont notre cliquez sur une cellule extrieure ce TCD pour
disposition, comme la moyenne, le nombre de valeurs, lcart-type, etc. masquer lassistant de la figure 421 ;
cliquez dans le TCD pour le fait rapparaitre.
Nous en parlons page 78. Remarquons galement que le TCD a t cr
indpendamment sur une nouvelle feuille. Il est recommand de la
renommer tout de suite, ce sera plus clair. Cette feuille peut tre sup-
prime sans risque, la liste de donnes en est indpendante.

Figure 421
Le paramtrage du TCD : Reprsentant en Filtre, Zone en Colonne,
Produit en Ligne et Montant en Valeur (qui devient Somme de Montant)

73
DExcel Access

Figure 422
Le TCD termin : pour tous les reprsentants,
la somme des ventes par zone et produit

EXCEL 2003 Lassistant TCD

Comme il fallait sy attendre, linterface dExcel 2003 est sensiblement diffrente, mme
si le fonctionnement global du TCD est identique :
1. Lancez lassistant TCD par le menu Donnes puis par loption Rapport de tableau
crois dynamique.
2. Vous voici dans lassistant TCD, lequel comporte trois tapes. la premire tape de
lassistant, confirmez que vos donnes se trouvent sur une Liste ou base de don-
nes Excel, et que vous voulez crer un TCD.
3. la deuxime tape, Excel demande o se trouvent les donnes analyser. Si votre
liste de donnes est conforme aux fameuses cinq rgles que nous avons nonces
(pages 20-23) et si vous navez slectionn quune seule cellule de cette liste avant de
lancer cet assistant TCD, il ne devrait pas y avoir de problme. Contentez-vous de con-
trler que la zone propose correspond bien lensemble de votre liste de donnes, et
passez ltape suivante.
4. La dernire tape de lassistant TCD Excel 2003 propose de crer le TCD sur la feuille
en cours ou sur une nouvelle feuille. Confirmez que vous souhaitez crer ce TCD sur
une Nouvelle feuille.
5. Lassistant TCD est termin. Excel 2003 affiche maintenant lquivalent de la bote de
dialogue de la figure 421 qui permet le paramtrage du contenu du TCD. Son appa-
rence diffre lgrement de son homologue Excel 2007 de la figure 421 mais sa phi-
losophie reste la mme : il sagit de glisser les champs disponibles dans les diffrentes
zones Dposer ... ici. La figure 423 dtaille la bote de dialogue obtenue dans
lexercice de la figure 421 juste avant de glisser le champ Montant dans Dposer
donnes ici.

Figure 423 Lassistant TCD version Excel 2003

74
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
CALC Lassistant TCD devient assistant PDD

Lessentiel des manipulations que nous avons vues pour Excel, quelques nuances
dergonomie prs, reste valable :
1. Accdez aux fonctions de PDD par le menu Donnes puis par les options Pilote de
donnes puis Dmarrer.
2. Calc propose alors de btir son PDD sur la Slection active. Normalement, si vous
avez suivi nos conseils (les fameuses cinq rgles, pages 20-23, et la slection dune
seule cellule avant daccder lassistant PDD), la zone propose par Calc doit corres-
pondre lensemble de votre liste de donnes. Soyez tout de mme attentif lexacti-
tude des rfrences de la zone et passez ltape suivante.
3. La bote de dialogue Pilote de donnes apparat. Paramtrez-la conformment la
figure 424. Attention : noubliez pas de cliquer sur le bouton Option puis de slec-
tionner loption permettant de crer le PDD sur une nouvelle feuille et validez.

Figure 424 Lassistant PDD de Calc. Remarquez au bas de la bote de dialogue


la demande de cration du PDD sur une feuille nouvelle.

Exploiter un TCD
Trs faciles paramtrer, les TCD sont en plus trs souples et aisment
modifiables. Les champs affichs ne conviennent plus ? Il faut inter-
vertir lignes et colonnes ? Ce nest plus le total des ventes quil faut faire
apparatre, mais leur moyenne, ou mme le montant de la vente la plus
importante ? Qu cela ne tienne !

75
DExcel Access

Nous allons par exemple tudier comment affiner ou modifier le TCD/


PDD de la figure 422 en :
faisant varier la dimension filtre, celle prsente dans la zone Filtre du
rapport de la figure 422, dans laquelle nous avons affich le champ
reprsentant afin, par exemple, de nafficher les ventes que dun
reprsentant particulier ;
intervertissant lignes et colonnes ;
insrant (ou modifiant) des champs ;
visualisant le dtail dun lment ;
utilisant dautres fonctions que lhabituelle Somme ;
modifiant le format daffichage des nombres.

Faire varier la dimension filtre


La dimension Filtre est celle qui se trouve isole dans notre TCD de
la figure 422, dans les cellules A1 et B1, l o est indiqu Reprsentant
(Tous). Cliquer sur la flche de liste droulante ct de Tous permet
dafficher le filtre de slection de reprsentant. En cliquant par exemple
Figure 425 sur Slectionner plusieurs lments (figure 425) et en cochant Hlne et
La slection de plusieurs lments Sophie, nous allons pouvoir afficher le mme TCD, mais uniquement
dun filtre de TCD pour la gent fminine (figure 426).

Figure 426
Le TCD de la figure 422,
filtr uniquement pour les dames

EXCEL 2003 ET CALC Pas de slections


multiples pour les filtres
Ces deux logiciels noffrent pas la possibilit de
slectionner plusieurs valeurs dans le filtre de Remarquons que le titre du tableau de la figure 426 nest pas trs signi-
TCD : il nest possible que de slectionner une et ficatif. Excel spcifie en haut du TCD : Reprsentant : Plusieurs lments.
une seule valeur du champ (soit Hlne, soit Cest exact, car la fois Hlne et Sophie y sont reprsentes. Mais cela
Sophie, soit Jean, soit Pierre par exemple pour le
manque de clart, il vaudra mieux le spcifier la main, par exemple en
champ Reprsentant).
cellules C1:E1 (figure 427).

Figure 427
Les noms des reprsentants filtrs
ne peuvent safficher que manuellement.

76
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Modifier la structure du TCD
Modifier la structure dun TCD (intervertir les lignes et colonnes,
insrer un champ, utiliser une autre fonction que la somme...) seffectue
trs facilement dans la bote de dialogue TCD. Il suffit de dplacer par
cliquer-glisser les diffrents champs dans les trois zones Filtre du rapport,
tiquettes de colonnes et tiquettes de lignes. Toutes les combinaisons
sont possibles.

Intervertir lignes et colonnes


Il est trs facile dintervertir lignes et colonnes avec la bote de dialogue
TCD : il suffit de cliquer sur le champ actuellement en colonne et de le
glisser en ligne et inversement. Apprciez avec quelle simplicit cette
opration seffectue en mode TCD. Un vrai rgal !

Insrer un champ supplmentaire


Il est trs facile de modifier la structure dun TCD par lajout dun
RAPPEL Rafficher la bote de dialogue TCD
champ. Dans la bote de dialogue TCD, il suffit dinsrer le ou les
champs souhait(s) par cliquer-glisser. Par exemple, la figure 428 Pour rafficher la bote de dialogue TCD permet-
tant de modifier le paramtrage dun TCD dj
reprsente le TCD obtenu en ajoutant le champ Reprsentant dans la cr, il suffit de cliquer dans le TCD.
zone tiquette de ligne du TCD de la figure 422.

Figure 428
Ajouter un champ modifie immdiatement la structure du TCD.
Remarquez lapparition dicnes de dveloppement ou
de fermeture de niveaux de totalisation pour les reprsentants.

Visualiser le dtail dun lment


CALC Pas de visualisation
Il est trs facile dobtenir le dtail des enregistrements qui composent un du dtail dun lment
lment de synthse du TCD par un double clic sur llment choisi
(remarquez qualors Excel en affiche le dtail sur une autre feuille). La Cette fonction de dveloppement du dtail dun
lment du PDD nest pas pas disponible sur Calc.
figure 429 donne le dtail des ventes de cordes pour le Sud, obtenu par
un double clic sur la cellule D5 du TCD de la figure 422.

77
DExcel Access

Figure 429
Dtail dun lment du TCD sur une nouvelle
feuille, ici les ventes de cordes pour le Sud.

CALC Utiliser dautres fonctions que la Somme


Changer la formule utilise dans le PDD
Exactement comme nous lavons vu avec les sous-totaux, les TCD per-
Pour changer dans Calc la fonction utilise dans un mettent de raliser dautres synthses que de simples totalisations de
PDD, faites un clic droit sur une cellule du PDD et
slectionnez loption Activer. Lassistant Pilote
valeurs numriques. Il suffit pour cela de slectionner une cellule du TCD
de donnes de la figure 424 saffiche. Cliquez l o sont effectus les calculs et, par un clic droit, de slectionner loption
alors sur le bouton prsent dans la zone Champs Paramtres des champs de valeur puis de slectionner, dans longlet Syn-
de donnes (ici, Somme Montant) pour thse par, la fonction souhaite. Nous retrouvons les fonctions des sous-
accder aux diffrentes fonctions disponibles.
totaux, comme Moyenne, Max, Min, Nombre (pour compter le nombre
dlments dune srie), cart type ou Variance (figure 431).

EXCEL 2003 Changer la formule utilise dans le TCD

Pour changer dans Excel 2003 la fonction utilise dans un TCD, il faut :
1. Double cliquer sur la cellule modifier (par exemple, la cellule A3 de la figure 431, celle
qui porte lintitul Somme de montant).
2. Accder la bote de dialogue Champ PivotTable.
3. Changer la formule utilise.

Figure 431
La bote de dialogue Paramtres des champs
de valeur permettant de modifier les formules
utilises dans un TCD et les formats de nombre

Figure 430 Double cliquer sur la cellule A3


EXCEL 2003 ET CALC Modifier le format permet de changer la formule utilise dans le TCD.
des nombres du TCD
Excel 2003 : double cliquez sur la case A3 de Modifier le format daffichage des nombres
la figure 430, celle qui porte dans ce cas linti-
tul Somme de montant puis accdez la Par dfaut, le format daffichage des nombres nest pas trs attrayant. Il est
bote de dialogue Champ PivotTable. Cli- facile dy remdier par le bouton Format de nombre de la bote de dialogue
quez alors sur le bouton Nombre. du paragraphe prcdent (figure 431). Le TCD est ainsi beaucoup plus
Calc : aucune fonction directe de formatage
nest prvue. Il faut procder une mise en prsentable, notamment si vous choisissez un format montaire.
forme manuelle comme pour nimporte quel
tableau (mais cela fonctionne fort bien).

78
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Exclure certains enregistrements du TCD
Il est possible de raliser des filtres sur les enregistrements prsents dans
un TCD, en cliquant sur la flche de liste droulante ct des intituls
tiquettes de colonne et tiquettes de ligne du TCD de la figure 422.
Pour un champ de type Date/heure par exemple, les filtres chronologi-
ques, tels que ceux rencontrs lors de notre tude des filtres (voir
page 54), vous permettront alors de slectionner des enregistrements du
mois, de la semaine ou du trimestre... Trs utile et trs simple dutilisa-
tion, sauf avec Calc qui ne propose pas cette fonction.

Exercez-vous !
Rien ne vaut un exercice. Comment votre avis a t bti sous
Excel 2007 le TCD de la figure 432 ?

Figure 432
Le TCD mystre : le nombre de ventes de sangles pour le mois de janvier.
Remarquez les icnes de filtre actif sur le champ Produit
et sur les tiquettes de lignes.

Rponse :
1 Crez un TCD sur une nouvelle feuille avec :
Produit en Filtre de page ;
Zone en tiquette de colonne ;
Date en tiquette de ligne ;
Montant en Valeurs.
2 Modifiez la formule utilise (par dfaut, la fonction Somme) en
Nombre.
3 Filtrez le champ Produit sur la valeur Sangles.
4 Filtrez le champ Date sur le mois de Janvier (choisir le filtre chrono-
logique Entre).

Actualiser un TCD
Le TCD ne se met pas jour chaque modification de la liste de
donnes ; cest heureux car les calculs complexes pourraient ralentir con-
sidrablement lordinateur. Mais cela peut tre dangereux si on oublie de
lactualiser aprs avoir modifi des donnes source.
Par consquent, ds que vous modifiez votre liste de donnes, il est
indispensable de mettre jour votre TCD. Cliquez avec le bouton droit
sur votre TCD. Dans le menu contextuel choisissez Actualiser (pour
Excel 2007 et Calc) ou Actualiser les donnes (pour Excel 2003).

79
DExcel Access

Organiser ses TCD


Il est trs facile de crer des TCD. Comme il est recommand de les
crer sur des feuilles nouvelles, on se trouve trs rapidement, si on ny
prend pas garde, submerg sous un ocan de Feuil1, Feuil2, Feuil3, etc.
Soyez donc trs rigoureux :
Ne conservez que les TCD (et donc les feuilles) utiles.
Nommez clairement les onglets de feuilles pour vous y retrouver.
Supprimez sans tat dme tout TCD mal n, redondant ou faux.
Quand vous serez habitu crer des TCD, il ne vous faudra pas plus
de 30 secondes pour gnrer des TCD complexes. Moralit ? Si le
TCD obtenu ne vous convient pas, plutt que de perdre du temps
le rendre conforme, supprimez-le et repartez de zro. Si vous prenez
systmatiquement le parti de crer tout TCD sur une nouvelle feuille,
il ny aura jamais aucun risque vous en dbarrasser en supprimant la
feuille qui le contient

CALC Pas de GCD dans Calc Le graphique crois dynamique


Calc noffre pas la possibilit de gnrer de gra- Le graphique crois dynamique ou GCD est la reprsentation graphique
phique crois dynamique. Ceci dit, rien ne vous du TCD, avec exactement les mmes avantages (souplesse, simplicit,
empche de crer un graphique partir du PDD efficacit). Il allie donc les avantages dun TCD chiffr avec ceux dune
obtenu... Dans cette hypothse, toute modification
du PDD par mise jour des donnes sera rpercute
reprsentation graphique. Les principes de base qui prsident sa cra-
automatiquement dans le graphique correspondant. tion et sa manipulation sont exactement les mmes que pour un TCD.
Pour insrer un graphique sous Calc, le menu uti-
Lergonomie tant quelque peu diffrente entre les versions 2003 et 2007
liser est Insertion, option Diagramme.
dExcel, nous les tudierons sparment.

Les GCD sous Excel 2007


Les principes de cration dun GCD sont trs semblables ce que nous
venons dexposer concernant les TCD. Il va sagir de nouveau dafficher
une bote de dialogue spcifique et dy placer par cliquer-glisser les
champs souhaits. Voici comment procder :
1 Cliquez sur une et une seule cellule de la liste.
2 Dans longlet Insertion, dans le groupe Tableau cliquez sur la flche
vers le bas ct de loutil Tableau crois dynamique et choisissez
loption Graphique crois dynamique.
3 Vrifiez que la plage de cellules prise en compte par lassistant corres-
pond la totalit des cellules de la liste de donnes, et choisissez
loption Nouvelle feuille de calcul pour la cration du GCD.
4 La bote de dialogue qui apparat alors est trs exactement la mme
que celle que nous avons vue pour les TCD, ceci prs quun espace
rserv apparat en plus pour le GCD (figure 433). Il suffit alors de

80
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
crer le TCD comme nous lavons vu ci dessus, et le GCD se gnre
automatiquement en parallle.
5 En fin de procdure, le GCD est cr en tant quobjet sur la feuille.
Nous vous recommandons de le dplacer sur une nouvelle feuille, il
sera plus facile visualiser et imprimer : cet effet, slectionnez le
graphique, puis faites un clic droit et allez dans le menu Dplacer le
graphique, option Vers une nouvelle feuille.

Figure 433 Lassistant TCD avec lespace rserv au GCD.

Nous disposons maintenant de trois feuilles spares :


une pour la liste de donnes source du TCD ; RAPPEL La mise jour dun TCD (et de son
GCD) nest pas automatique en cas de
une pour le TCD source du GCD ;
modification des donnes
une pour le GCD lui-mme.
Nous avons dj indiqu (page 79) que le TCD
Remarquez encore une fois que la liste de donnes nest pas modifie par nest pas mis jour quand ses donnes source (la
lajout du TCD et de son GCD. Il sera donc toujours possible de sup- liste de donnes sur laquelle il est bti) sont modi-
primer les feuilles du TCD et du GCD sans modifier en aucune manire fies. Cest bien sr la mme chose pour le GCD.

la liste de donnes.

81
DExcel Access

Figure 434
Le GCD est limage fidle du TCD
correspondant (ici, celui de la figure 422,
tous reprsentants confondus).

Maintenant, lextrme facilit de cration dun TCD ne doit pas faire


oublier ses quelques dfauts (comme son apparence, un peu minimaliste)
ou encore les possibilits complmentaires danalyse quil procure
(comme de visualiser le dtail dun lment particulier).

Modifier lapparence du GCD


Commenons par corriger le principal (et unique) dfaut du GCD, son
apparence, afin den amliorer la lisibilit et damliorer sa pertinence.
Il suffit de slectionner le graphique. Vous pouvez ds lors quasiment tout
modifier : type de graphique, titres et lgendes, type, taille et couleur de
police, apparence 3D, formats des axes, bordures, zone de traage... Sans
entrer dans le dtail de toutes ces possibilits, voici deux manipulations
que nous pouvons apporter notre GCD de la figure 434 :
Modifier le type du graphique : dans longlet Cration, groupe Type,
cliquez sur Modifier le type du graphique et slectionnez par exemple
Histogramme 3D probablement plus adapt ce type de donnes. Pro-
fitez-en pour tester les autres types disponibles (courbes, secteurs,
histogrammes, barres, nuage de points, bulles, anneaux, surfaces,
stocks), le moins quon puisse dire est quil y a le choix (et lembarras
qui va avec).
Insrer un titre et une lgende : dans longlet Disposition, groupe ti-
quettes, slectionnez police, taille et couleur notre convenance.
La figure 435 montre notre nouveau GCD !

82
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Figure 435
Le GCD de la figure 434
relook en 3D avec un titre

Modifier le GCD en modifiant le TCD


Toutes les modifications apportes au TCD sont automatiquement rper-
cutes dans le GCD. Par exemple, le GCD de la figure 436 est directe-
ment issu de celui de la figure 4-35, mais uniquement pour Jean (il a suffit
de slectionner Jean dans le filtre du TCD). Remarquez dans cette
figure 436 que le titre du GCD na pas t mis jour automatiquement,
il a fallu ajouter directement la main dans le titre le texte de Jean .

Figure 436
Le GCD de la figure 435,
uniquement pour Jean, obtenu en un clic.

83
DExcel Access

Il est aussi possible de modifier le GCD (raliser des filtres, modifier les
abscisses et les ordonnes, etc.) en appelant la bote de dialogue
spcifique : cliquez sur le GCD puis, dans longlet Analyse, groupe Affi-
cher/Masquer, cliquez sur le bouton Filtre de tableau crois dynamique
(figure 437). Ce nest pas ncessairement plus simple...
Enfin, notez quil est galement possible dintervenir sur le GCD direc-
tement en double-cliquant dessus. Repartons par exemple du GCD de
la figure 435. Ce dernier prsente tous les reprsentants sans en fournir
le dtail. Pour lobtenir, il suffit de double cliquer sur une barre du gra-
phique et de slectionner le champ Reprsentant dans la bote de dia-
logue Afficher les dtails (figure 438).
Figure 437
Les outils de TCD
pour modifier directement le GCD

Figure 438
Le GCD de la figure 435
avec le dtail par reprsentant.

Les GCD version Excel 2003


Comme pour Excel 2007, les GCD dExcel 2003 permettent dallier la
souplesse et la puissance danalyse des TCD avec les avantages dune repr-
sentation graphique, en employant une interface lgrement diffrente.
Pour crer un GCD sous Excel 2003, il faut procder ainsi :
1 Slectionnez une cellule de votre liste de donnes et appelez loption
Rapport de tableau crois dynamique du menu Donnes. Cette opra-
tion lance lAssistant rapport de tableau crois dynamique.
2 Dans ltape 1 de lassistant, slectionnez Rapport de graphique crois
dynamique (avec rapport de tableau crois dynamique).
3 Ltape 2 de lassistant permet de modifier, si ncessaire, la plage de
cellules contenant la liste de donnes qui servira de source au GCD.
Si vous avez construit une liste de donnes conforme aux cinq rgles

84
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
(voir page 20) et si vous navez slectionn quune seule cellule de
cette liste avant de lancer lassistant GCD, vous navez rien modifier
aux propositions dExcel.
4 Choisissez lors de ltape 3 de crer le GCD sur une nouvelle feuille.
Excel cre alors deux nouvelles feuilles, une pour le graphique (sur
laquelle il se place) et une autre pour le TCD correspondant.
5 Entrez dans la feuille du TCD et crez-le selon la procdure dcrite
prcdemment. Le GCD se met jour automatiquement, et cest
termin.
La figure 439 donne limage du GCD obtenu en glissant :
le champ Zone dans la zone Page ;
le champ Reprsentant dans la zone Dposer champs de colonne ici ;
le champ Produit dans la zone Dposer champs de ligne ici ;
et enfin, le champ Montant dans la zone Dposer donnes ici.

Figure 439
Un GCD Excel 2003. Remarquez le bouton
Somme de montant et les trois listes
droulantes ct de zone,
produit et reprsentant.

Nous constatons ainsi trs rapidement limportance des ventes de san-


gles et lapport de Sophie dans celles de mousquetons.
Comme avec Excel 2007, nous allons maintenant pouvoir peaufiner le
look de notre GCD, zoomer sur telle ou telle donne (par exemple, affi-
cher les ventes de la zone Sud et non plus de toutes les zones) et afficher
le dtail dun champ (par exemple, toujours afficher les ventes de Jean
selon la date de la vente).

85
DExcel Access

Modifier lapparence du GCD


Comme nous lavons fait avec Excel 2007, nous allons corriger le prin-
cipal (et unique) dfaut du GCD : son apparence ; cela afin damliorer
sa lisibilit et sa pertinence.
Il suffit de slectionner le graphique et, par un clic droit, dappeler les
options Type de graphique (pour choisir un autre type de graphique),
Options du graphique (pour les titres, lgendes, polices, couleurs, encadre-
ments...) ou encore Vue 3D.

Affiner lanalyse de certaines donnes


Comme avec Excel 2007, les GCD peuvent afficher certains dtails ou
dvelopper certaines informations dans le but daffiner lanalyse.
Par exemple, en partant du GCD de la figure 439, nous avons obtenu
celui de la figure 440 en isolant les ventes de la zone Sud et des repr-
sentants Jean et Pierre grce aux options des listes droulantes corres-
pondantes sur le GCD ; puis en changeant la fonction utilise dans le
GCD pour afficher cette fois-ci le montant de la plus grande vente
effectue ; il a suffit cet effet de double cliquer sur Somme de montant
et de choisir Max de montant.
Avez-vous remarqu quExcel 2003 indique directement les valeurs
slectionnes dans les filtres, ainsi que la fonction utilise... Il nest donc
pas ncessaire de modifier les titres du GCD comme nous avions t
contraints le faire sous Excel 2007.

Figure 440
Le GCD illustrant le montant maximum
des ventes de Jean et de Pierre pour le Sud.

Il est galement possible dafficher un nouvel axe danalyse. Par exemple,


pour dtailler les ventes de Jean par date, comme dans la figure 441,

86
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
cliquez sur llment souhait du GCD (ici, la barre des ventes de Jean)
puis, par un clic droit, choisissez loption Afficher les dtails et enfin
slectionnez laxe souhait (Date dans notre exemple).

Figure 441
Le montant maximum des ventes
de Jean, par date

Synthse : les fonctions de sous-total et de


tableau (graphique) crois dynamique sont
les instruments indispensables danalyse
dune liste de donnes
Avec les sous-totaux, les TCD et les GCD, nous venons de faire un pas
dcisif dans lexploitation de nos listes de donnes, avec une facilit
dconcertante et un niveau de performance et de fiabilit qui justifient
eux seuls dorganiser ses donnes en liste de donnes.
Il suffit daccder aux fonctions de sous-total, de TCD ou de GCD
aprs avoir slectionn une et une seule cellule de la liste. Toutes les pos-
sibilits tonnantes de ces outils vous sont alors accessibles.
Le choix de loutil utiliser (sous-total ou TCD) dpend en fait essen-
tiellement du nombre daxes danalyse que vous souhaitez dvelopper :
sil y en a deux ou moins, la fonction de sous-total donnera pleinement
satisfaction ; au del, seul le TCD sera vritablement exploitable.
Ce chapitre clt ltude des listes de donnes sous tableur. Le suivant
dbute celle des bases de donnes relationnelles.

87
chapitre 5
Introduction aux bases de
donnes relationnelles

SOMMAIRE
B Les limites
des listes de donnes
Les listes de donnes sous tableur ne peuvent pas tout
rsoudre. Abordons ici les principales caractristiques B Les concepts fondamentaux
des bases de donnes
dune base de donnes relationnelle et les raisons dadopter relationnelles
une mthode de travail rigoureuse. B La mthode dlaboration
dune base de donnes
relationnelle

MOTS-CLS
B Tables
B Champs
B Enregistrements
B Relations entre les tables
B Tables matres et tables esclaves
B Cl primaire et cl trangre
B Modlisation
B Objets dune base de donnes
relationnelle : table, formulaire,
requte et tat/rapport
DExcel Access

Les listes de donnes sous tableur, aussi simples et performantes soient-


elles, ne peuvent rpondre correctement toutes les problmatiques de
bases de donnes. Ce chapitre commence par exposer ces raisons et
poursuit en prsentant les avantages dterminants apports par les bases
de donnes relationnelles. Il sachve par une sensibilisation la nces-
sit de suivre une mthode de travail rigoureuse qui, seule, garantit la
russite de votre projet de base de donnes relationnelle.

Les limites des listes de donnes


Les listes de donnes sont des bases de donnes, mais leurs possibilits
sont limites.

Une liste de donnes est un cas particulier dune base


de donnes
Nous avions avanc (page 18) la dfinition suivante dune base de
donnes : ensemble dinformations organises dans un but dfini . Ce
que nous avons vu des listes de donnes au travers de notre exercice con-
forte cette dfinition.
Nous avons regroup, dans une liste de donnes, les ventes de notre
entreprise selon un schma bien dfini :
le numro dordre chronologique de la vente ;
le nom du reprsentant qui la ralise ;
la zone dans laquelle elle sest effectue ;
le produit concern ;
la date ;
le montant de la vente.
Cette liste de donnes contient en outre un ensemble de garde-fous en
amont de la saisie de faon assurer la conformit des donnes :
le nom des reprsentants a t limit exclusivement Hlne,
Sophie, Jean et Pierre ;
celui des produits cordes, sangles et mousquetons ;
celui des zones Nord, Sud et RP ;
le format des dates a t dfini comme suit : JJ-MMMM-AA,
MMMM signifiant que le mois sexprime en quatre lettres maximum
( Janv. pour Janvier) ;
les ventes sexpriment dans le format X XXX .

90
5 Introduction aux bases de donnes relationnelles
Cette liste de donnes a t btie pour raliser un suivi dynamique des
performances compares de nos reprsentants selon la zone, le produit
ou la date de leurs ventes, grce :
des tris et des filtres ;
des sous-totaux ;
des tableaux et graphiques croiss dynamiques.
En ce sens, notre liste de donnes est donc une base de donnes part
entire.

Une liste de donnes est une base de donnes aux


performances limites
Malgr lexcellent rapport performance/travail quelle possde, notre
liste de donnes trouve rapidement ses limites pour peu que nos besoins
voluent. Par exemple, pourquoi ne pas lui demander de raliser le
mailing mensuel du relev des ventes adresser chaque reprsentant ?
Toutes les informations relatives aux ventes sont disponibles ; il suffirait
de rajouter dans la liste de donnes ladresse des reprsentants pour pou-
voir effectuer un publipostage.
Comment ajouter ces adresses ? Il ny a gure dautre solution que
dinsrer dans la liste de donnes une colonne vierge, par exemple entre
les champs Reprsentant et Zone, de lintituler Adresse et de saisir pour
chaque enregistrement ladresse de son reprsentant.
Cette simple opration permet dentrevoir la limite de cette solution :
pour chaque rptition dun nom particulier de reprsentant, il va falloir
resaisir ladresse complte du reprsentant (figure 51).

Figure 51
Lajout de la colonne Adresse oblige resaisir
indfiniment ladresse de chaque reprsentant.

91
DExcel Access

Cette rptition linfini (pour toutes les occurrences du mme repr-


sentant) prsente au moins deux inconvnients rdhibitoires. Dabord,
cela augmente inconsidrment et inutilement les volumes saisir et
traiter. Ensuite, cela dgrade la qualit de nos donnes, rien nemp-
chant les erreurs de saisie ; regardez par exemple lenregistrement
numro 5 de la figure 51, pour lequel loprateur sest tromp dans le
code postal (05260 au lieu de 05620).
Toutes ces difficults proviennent du fait que, dans notre liste de don-
nes, nous tentons dintgrer des donnes relatives aux reprsentants
avec des donnes relatives aux ventes. Et ces difficults seront encore
aggraves si nous voulons complter encore les donnes relatives aux
reprsentants en ajoutant dautres champs comme le nom de famille, le
numro de portable, la date de naissance, le sexe, le-mail, le RIB...
Lautre solution, prenant en compte cette contrainte, va consister crer
deux fichiers : un pour les ventes, lautre pour les reprsentants. Ces
fichiers seront relis lun lautre, crant ainsi une base de donnes rela-
tionnelle (figure 52). Ce lien va permettre au logiciel de traitement de
base de donnes relationnelle dassocier le nom du reprsentant dans le
fichier des ventes avec les donnes relatives ce reprsentant dans le
fichier des reprsentants. Les donnes des reprsentants (adresse, tl-
phone, etc) ne seront alors plus saisies quune seule fois, rduisant ainsi
considrablement les erreurs de saisie et le volume de donnes.

Figure 52
Lclatement des donnes en deux fichiers
relis rduit les volumes de donnes.

92
5 Introduction aux bases de donnes relationnelles
Cette notion dclatement des donnes en plusieurs fichiers indpen- TERMINOLOGIE Le terme fichier
dants relis est le concept mme des bases de donnes relationnelles. est ici impropre
Nous allons maintenant en tudier le fonctionnement. Nous nutilisons ici le terme fichier que par souci de
simplification. Nous dcouvrirons ultrieurement
que ces fichiers sont en fait des sous-ensembles
(que nous appellerons tables) du fichier vritable
Les concepts fondamentaux des bases de que constitue la base de donnes relationnelle.

donnes relationnelles
Nous allons ici prsenter les quelques notions fondamentales en matire de CULTURE GNRALE Autres SGBDR
bases de donnes relationnelles et de systme de gestion de bases de don- Access et Base ne sont pas les seuls SGBDR exis-
nes relationnelles (galement nomm SGBDR) que sont Access et Base. tants. Parmi les plus populaires nous pouvons citer
Oracle, PostgreSQL, MySQL, Microsoft SQL Server...

Les tables : regroupement des donnes dun mme domaine


La liste de donnes, telle que nous lavons tudie, se prsente comme
une feuille de calcul comportant autant de colonnes que de champs et
autant de lignes que denregistrements ( lexclusion de la premire ligne
rserve aux noms des champs). Nous lappelons liste de donnes uni-
quement pour bien spcifier quelle sexploite avec les fonctions du
mme nom des tableurs Excel et Calc. Nous aurions aussi bien pu
lappeler tableau ou mme table .
Cette dernire terminologie, table, est rserve aux SGBDR. Au contraire
dune liste de donnes qui ne comprend quune table (sous la forme
dun tableau Excel ou Calc), une base de donnes programme sous
SGBDR se compose toujours de plusieurs tables qui regroupent chacune
toutes les donnes relatives un lment particulier du systme grer.
Dans notre exemple dadresses de reprsentant ajouter leurs ventes, les
deux tables, correspondant chacune un lment particulier, seront
Ventes et Reprsentants :
La table Ventes sera exactement conforme notre liste de donnes de
matriel dalpinisme, avec les mmes champs et les mmes enregistre-
ments. Bien videmment, cette table ne comportera pas le champ Adresse.
La table Reprsentants comportera, elle, au moins deux champs
(Reprsentant et Adresse) et les quatre enregistrements correspondant
nos quatre reprsentants actuels.
Les figures 53 et 54 montrent lapparence que pourraient avoir chaque
table sous Access ou Base. Remarquez que celles-ci sont trs similaires au
rsultat que lon pourrait obtenir sous Excel ou Calc : les champs en en-tte
de colonne et les enregistrements lists les uns au-dessous des autres. La
table des Reprsentants pourrait parfaitement contenir dautres champs tels
que le nom de famille, le tlphone ou le-mail.

93
DExcel Access

Figure 53
La table des Ventes sous Access ressemble
beaucoup une liste de donnes
sous Excel ou Calc.

Figure 54
Cette table ne comporte que les quatre
enregistrements correspondant
nos quatre reprsentants.

Il est facile dimaginer dautres tables dans dautres contextes :


dans une association, la table des Adhrents collectera les informa-
tions relatives ses membres et la table Cotisations lhistorique des
collectes dargent ;
dans une banque, la table des Clients coexistera avec celles des
Comptes et des Mouvements effectus par ces clients dans leurs
comptes ;
dans une entreprise, de nombreuses tables sont identifiables : Clients,
Fournisseurs, Produits, Commandes, Livraisons, Stocks, Personnel,
Paye...
Limportant ce niveau est de bien comprendre que chaque table corres-
pond en fait une entit logique du systme dinformation grer. Un
client nest pas un fournisseur, une commande nest pas une livraison,
une vente nest pas un reprsentant, un adhrent nest pas une
cotisation : chaque entit a sa propre cohrence. Une table comportera
toujours des champs et des enregistrements.
Maintenant, comment ces tables vont-elles communiquer ? Comment,
dans notre exemple, le SGBDR va-t-il faire le lien entre une vente dans
la table des Ventes et les donnes de la table des Reprsentants relatives
au reprsentant qui la effectue ?

Les relations entre les tables


Ce concept de relation est le fondement mme des SGBDR. Partons,
pour le comprendre, de notre exemple des tables Ventes et Reprsen-

94
5 Introduction aux bases de donnes relationnelles
tants. La figure 55 illustre comment un SGBDR (ici, Access 2007, les
affichages Access 2003 et Calc sont quasiment identiques) ralise ce lien
entre nos deux tables.

Figure 55
La relation unissant la table des Ventes celle
des Reprsentants est symbolise par le trait joignant
le mme champ Reprsentant prsent dans les deux tables.

Sur la figure 55, chaque table est reprsente par un bloc. Ce bloc ne
dtaille que les champs de la table. Le trait gras unissant les champs
Reprsentant des deux tables Reprsentants et Ventes symbolise la rela-
tion entre Reprsentants et Ventes. Ainsi, pour chaque vente de la table
des Ventes, le logiciel connat le nom du reprsentant qui la ralise
(champ Reprsentant). Grce ce champ et la relation unissant les
deux tables, il retrouve le nom du reprsentant, et donc son adresse,
dans le champ reprsentant de la table des Reprsentants. La jonction
entre les tables est ralise et le SGBDR sait alors unir les informations
relatives deux tables.
Cet affichage de la figure 55 prsente une autre particularit impor-
tante. Vous avez certainement remarqu les symboles 1 et sur la rela-
tion unissant Ventes et Reprsentants Ils signifient, dans ce cas, que
chaque reprsentant de la table des Reprsentants peut avoir plusieurs
enregistrements lis dans la table des Ventes : chaque reprsentant peut
raliser plusieurs ventes (mais ce nest pas une obligation).
La figure 56, page 96, illustre les relations existant au sein dune base
plus complexe fournie titre dexemple par Access. Cette base a pour
objet de traiter les commandes au sein dune entreprise. Vous remarquez
immdiatement quelle comporte beaucoup de tables (huit) et quelles
sont toutes en relations les unes avec les autres, un peu la manire
dune toile daraigne.
Nous observons que cette base sarticule autour dune table centrale qui
sintitule Dtails commandes. Du ct gauche, on voit que chaque enre-
gistrement de cette table centrale correspond un produit achet auprs
dun fournisseur et appartenant une catgorie de produit. De lautre
ct, on visualise que chaque enregistrement de cette table Dtail com-
mandes correspond aussi une commande groupe, effectue par un
client, enregistre par un employ et livre par un messager. Chaque table
est ainsi relie aux autres par une chane ininterrompue de relations.

95
DExcel Access

Figure 56 Un rseau de relations beaucoup plus tendu

BASE EXEMPLE ACCESS 2007 ET 2003 La base de donnes exemple Northwind/Les comptoirs

Access propose une base de donnes complte, prsentant


une illustration pratique des principaux problmes poss par
les bases de donnes relationnelles et des solutions concrtes
y apporter. Il ne sagit pas bien sr dun mode demploi
dAccess, et encore moins dune aide la programmation,
mais bien dun modle dans lequel le programmeur attentif
pourra trouver des solutions. Vous y trouverez donc une illus-
tration relle des principaux points que nous allons dve-
lopper ensemble au cours de cette mthode.
Pour ouvrir cette base :
Sous Access 2003, allez dans le menu ?>Exemples de
bases de donnes>Exemple de base de donnes
Les comptoirs
Pour Access 2007, dans lcran daccueil obtenu juste
aprs le lancement dAccess, figure 57, slectionnez les
options Mes modles puis Northwind et enfin validez.
Figure 57 Comment ouvrir la base exemple sous Access 2007

96
5 Introduction aux bases de donnes relationnelles
Tables matres et tables esclaves
La notion de matre et desclave illustre la hirarchie logique entre les
tables. Dans notre exemple avec les ventes et les reprsentants, nous
comprenons bien quune vente de la table des Ventes ne peut avoir t
ralise que par un reprsentant existant dans la table des Reprsentants.
Par contre, on peut trs bien imaginer, bien que cela ne soit pas cono-
miquement viable, quun reprsentant de la table des Reprsentants nait
ralis aucune vente.
En dautres termes, le reprsentant indiqu dans un enregistrement de la
table des Ventes doit se trouver dans la table des Reprsentants ; sinon le
SGBDR ne pourra trouver son adresse. Inversement, on peut trs bien
imaginer quun nouveau reprsentant soit embauch et donc inscrit dans
la table des Reprsentants. Le fait quil nait encore ralis aucune vente
dans la table des Ventes ne posera pas de problme logique au logiciel
(ce qui nempchera pas Eddy dattendre de lui des rsultats...).
On peut alors dire quil y a prsance logique de la table des Reprsen-
tants sur celle des Ventes : lexistence dun reprsentant est ncessaire
lexistence dune vente. On parlera alors de relation de matre esclave,
le matre tant ici la table Reprsentants et son esclave la table Ventes.
Remarquez aussi, dans la relation de la figure 55, la position des sym-
boles 1 et . Cette dernire nest videmment pas neutre : le 1 est du
ct de la table matre alors que l est du ct de la table esclave.
La fentre des relations de la figure 56 prsente une hirarchie matre/
esclave plus complexe. En effet, Dtails commandes est esclave de Pro-
duits, lui-mme esclave de Fournisseurs et Catgories ; mais Dtails
commandes est aussi esclave de Commandes, lui-mme esclave la fois
de Clients, Employs et Messagers. Cette table illustre donc lexistence
de niveaux hirarchiques multiples. Par exemple, Dtails commandes est
esclave double de Produits et Commandes ; Commandes est
esclave triple de Clients, Employs et Messagers, mais aussi matre
de Dtails commandes ; Catgories nest matre que de Produits.

La cl primaire : identifiant unique dun lment de table


Cette notion de cl primaire (ou didentifiant) est le dernier concept
thorique fondamental comprendre pour aborder sereinement la pro-
grammation dune base de donnes relationnelle.
Revenons la relation unissant les Ventes nos Reprsentants. Imagi-
nons un instant quun nouveau reprsentant soit embauch et quil porte
le mme prnom quun de nos reprsentants actuels, par exemple Jean.
Nous pouvons parfaitement lintgrer notre table Reprsentant,

97
DExcel Access

comme sur la figure 58, en utilisant un nom dj existant. Il y aura alors


doublon dans le champ Reprsentant de la table des Reprsentants,
puisque le mme contenu, Jean , sera prsent deux fois pour deux
reprsentants/enregistrements diffrents.

Figure 58
Le champ Reprsentant prsente un doublon :
Jean est rpt deux fois.

Notre relation va-t-elle toujours fonctionner ? Hlas, non ! Quand nous


saisirons un enregistrement dans la table des Ventes, comment allons-
nous prciser de quel Jean il sagit ? Et quand bien mme nous saisirions
Jean, avec lequel des deux Jean de la table des Reprsentants le SGBDR
fera-t-il le lien ? Tant que cette ambigut ne sera pas leve, la relation
ne pourra pas fonctionner. Pour quelle fonctionne, il faudrait que
chaque enregistrement de la table esclave (ici Ventes) soit en liaison avec
un et un seul enregistrement de la table matre (ici Reprsentant).
Nous sommes donc amens formuler les rgles suivantes, indispensa-
bles un fonctionnement correct des relations de matre esclave :
La table matre doit obligatoirement contenir un champ permettant
didentifier un enregistrement sans ambigut. Ce champ discrimi-
nant a comme caractristique de ne pas admettre de doublon. On
lappelle de faon gnrique champ identifiant dans un SGBDR et
cl primaire sous Access et Base.
Ce champ identifiant doit tre rappel dans la table esclave, permet-
tant ainsi au SGBDR de faire le lien entre les enregistrements de la
table esclave et ceux de la table matre. Cet quivalent, dans la table
esclave, de la cl primaire de la table matre, sappelle cl trangre
(parce quelle fait rfrence la cl primaire dune autre table).
Dans une relation de un plusieurs (1 ) entre un matre et son
esclave, le 1 sera toujours situ du ct de la cl primaire de la table
VISUALISER Reprer la cl primaire dune matre et l du ct de la cl trangre de son esclave.
table dans la fentre des relations
La cl primaire dune table est gnralement un numro ou un code sp-
Pour chaque table visualise dans la fentre des cifique. Pour notre table des Reprsentants, la seule solution sera de
relations, la cl primaire est le champ en gras. Il est crer un champ NumeroRepresentant, sans doublon, qui sera rappel
en gnral en haut de la liste des champs, mais ce
nest pas une obligation.
dans la table des Ventes comme cl trangre selon le schma de la
figure 59.

98
5 Introduction aux bases de donnes relationnelles
Figure 59
Le champ NumeroRepresentant est une cl primaire de la table
des Reprsentants et une cl trangre de celle des Ventes.
La relation entre matre et esclave est ainsi assure.

ILLUSTRATION Des exemples didentifiant/cl primaire dans la vie quotidienne

Le principe est simple. Ds quil existe un risque de confusion entre plusieurs lments
(enregistrements) dune base de donnes, il est ncessaire dintgrer un champ identi-
fiant/cl primaire qui aura pour seule fonction de lever cette ambigut :
dans une rue, les maisons ont un numro ;
les communes de France ont un code postal, car certaines ont le mme nom (par
exemple, Melle, dans le 35 et le 79) ;
chaque assur social a son propre numro de scurit sociale ;
chaque vhicule a son propre numro dimmatriculation ;
chaque tudiant dune cole a son numro dtudiant unique.

Ltude de la fentre des relations de la base exemple dAccess, figure 56,


donne dautres exemples de ces rgles. Par exemple, pour la relation unis-
sant Produits Fournisseurs, la cl primaire de la table matre Fournis-
seurs (le champ N fournisseur) est rappele sous forme de cl trangre
dans la table esclave des Produits ; pour cette relation, le 1 est toujours du
ct de la cl primaire et l de celui de la cl trangre.
Prcisons que chaque table doit avoir une cl primaire. Certes, la logique
que nous venons de dtailler nimpose une cl primaire dans une table
que si celle-ci est matre dune autre table dans une relation de un plu-
sieurs. Nanmoins, tout SGBDR va conseiller trs vivement, lors de la
cration dune table, de dfinir une cl primaire, mme si cette table nest
pas matre dune autre. Une cl primaire peut en effet aussi servir dindex
de recherche pour acclrer le fonctionnement dune base de donnes
volumineuse. Retenons donc que toutes les tables que nous allons crer
sous Access ou Base devront comporter une cl primaire !

AUTRE DIFFRENCE AVEC UNE LISTE DE DONNES Une base de donnes relationnelle est intgre
Ce que nous venons de voir au travers de la fentre des relations linverse, une liste de donnes sous tableur est en gnral un fichier
permet de formuler une autre diffrence fondamentale entre une base isol dans la chane de traitement de linformation. Par exemple,
de donnes relationnelle et une simple liste de donnes. notre liste de donnes de matriel dalpinisme est en fait une resaisie
La base de donnes exemple de la figure 56 est autosuffisante : elle des informations fournies par le systme de facturation de lentreprise
comporte en elle-mme toutes les ressources ncessaires son fonc- (qui est, lui, une base de donnes relationnelle).
tionnement et, une fois que les donnes ncessaires ont t saisies,
tous les traitements pourront seffectuer.

99
DExcel Access

La mthode dlaboration dune base de


donnes relationnelle
Ce que nous venons de dcouvrir dun SGBDR permet de percevoir que
la conception et la programmation dune base de donnes relationnelle
ne simprovisent pas.
La dtermination des diffrentes tables, le choix des cls primaires,
lorganisation des relations, tout ceci est assez complexe et ncessite un
minimum de mthode pour tre men bien. Nous appellerons cette
phase de prparation la phase de modlisation.
Une fois cette tche effectue, il restera effectuer la programmation.
Et, l encore, la complexit relle des SGBDR va nous contraindre une
mthode stricte qui pourra seule nous assurer une russite 100 % avec
un minimum de temps et de travail.
Le dtail de ces tapes va tre lobjet des chapitres suivants. Nous allons
tout de mme les prsenter rapidement pour en percevoir le schma
gnral.

La phase de modlisation
Ltude de la problmatique de la base de donnes relationnelle, dite phase
de modlisation, est absolument fondamentale. Cest une des conditions
ncessaires la bonne fin du projet. Son objet est de concevoir un schma
proche de celui de la fentre des relations contenant les diffrentes tables
participant la base de donnes relationnelle, avec leurs diffrents champs
(dont la cl primaire) et les relations unissant ces tables (entre la cl pri-
maire de la table matre et la cl secondaire de la table esclave).
Ce nest quune fois cette tche acheve quon pourra sattaquer la pro-
grammation proprement dite. Ltude de cette phase de modlisation
fait lobjet du chapitre 6.

La mise en uvre pratique dune base de donnes


relationnelle
Programmer sous un SGBDR ncessite galement ordre et mthode.
Les habitudes que nous avons pu acqurir avec un traitement de texte ou
un tableur avec lesquels il est toujours possible dimproviser au fur et
mesure de lavancement du travail (en dplaant ou en insrant paragra-
phes et colonnes) sont bannir totalement avec Access et Base.

100
5 Introduction aux bases de donnes relationnelles
La structure dun SGBDR et ses diffrents objets
Les SGBDR nont, en effet, pas du tout la mme structure interne ni la
mme apparence quun autre type de logiciel de bureautique tradi-
tionnel. Sous Access et Base, une base de donnes relationnelle se com-
pose de plusieurs sous-ensembles appels objets (pour lessentiel les
tables, les formulaires, les requtes et les tats / rapports). La partie
droite de la figure 510 (obtenue sous Base mais son quivalent Access
est trs proche) liste ces quatre types dobjets fondamentaux.

Figure 510
Lcran douverture dune base de donnes relationnelle
permet de slectionner les tables, les requtes,
les formulaires et les rapports (ou tats sous Access).

ACCESS Il existe dautres types dobjets

Access propose galement dautres types dobjets :


les pages, variantes des formulaires ;
les macros, pour automatiser certaines oprations rptitives, comme sous Word ou Excel ;
les modules, pour organiser macros et automatisations dans un projet global et structur
de base de donnes afin de proposer lutilisateur un produit scuris et automatis.
Seuls les tables, formulaires, requtes et tats sont indispensables. Ils suffiront largement
pour rpondre nos besoins de base de donnes oprationnelle avec un niveau de scu-
rit et de confort standard (qui ne veut pas dire rduit). Nous nous en contenterons, cet
ouvrage privilgiant lapproche pdagogique des bases de donnes.

Quels sont les rles respectifs de ces diffrents objets ? Sans entrer dans
le dtail (ce sera lobjet des chapitres suivants), traons-en tout de suite
les grandes lignes :
Les tables nous sont dj familires. Composes de champs (dont une
cl primaire) et denregistrements, elles contiennent les donnes de la
base de donnes relationnelle. Elles sont lies les unes aux autres par un
rseau de relations. Elles ne font que recevoir les donnes, mais sont

101
DExcel Access

incapables de les manipuler. Telles quelles, donc, elles nont dutilit


que latente, en fonction de ce quon en fera avec les requtes.
Les requtes sont les instructions qui vont permettre de manipuler
linformation stocke dans les tables et deffectuer les traitements et les
analyses. Par une requte, nous allons par exemple pouvoir calculer le
montant d par chaque client en fonction de ses achats, identifier le
reprsentant le plus g, lister les adhrents telle activit dune associa-
tion, dterminer si les clients sont jour ou non de leurs rglements...
Ce sont donc les requtes qui crent la valeur ajoute de la base de
INFO SQL, le langage informatique des
requtes sous la plupart des SGBDR donnes relationnelle ; elles en constituent le cur. Nous verrons
quelles sont plutt simples programmer ds lors que les tables dans
SQL, Structured Query Language (ou langage
structur de requtes) est le langage utilis pour
lesquelles elles puisent les donnes sont bties correctement.
effectuer les requtes aussi bien sous Access que Les formulaires sont des aides la saisie, visualisation et modification
sous Base. Cependant, tout comme monsieur Jour- des donnes des tables. Ils ne sont nullement obligatoires, en ce sens
dain faisait de la prose sans le savoir, nous pour- que les donnes peuvent tre saisies directement dans les tables, un
rons crer de superbes requtes sans crire une
ligne de SQL. Nous utiliserons en effet dans la plu- peu de la mme faon que dans une feuille de calcul de tableur,
part des cas les excellents assistants offerts par comme nous le verrons.
Access et, dans une moindre mesure, par Base. Les tats (Base utilise le vocable rapports), bass sur les requtes,
assureront la prsentation dtats impeccables et professionnels. En
effet, une requte sera souvent difficile exploiter directement sans
mise en forme. Nous verrons galement que lutilisation dtats sera
indispensable pour effectuer certains calculs, comme par exemple le
total des ventes par reprsentant.

Figure 511
La structure modulaire dun SGBDR
et lenchanement des diffrents types
dobjets (tables, formulaires, requtes
et tats/rapports).

On peut donc schmatiser le fonctionnement dun SGBDR comme suit


(voir la figure 511) :
Les tables collectent les donnes de la base. Elles sont en relation les
unes avec les autres.

102
5 Introduction aux bases de donnes relationnelles
Les formulaires facilitent la saisie des donnes dans les tables.
Les requtes manipulent les donnes dune ou plusieurs tables (ou
mme dautres requtes) pour effectuer des tris, des calculs ou des
slections denregistrements.
Les tats (ou rapports dans Base) utilisent les requtes pour crer des
rapports professionnels avec totalisation de donnes.

Les phases de la programmation dune base de donnes


relationnelle
La programmation dun SGBDR comme Access ou Base ressemble sy
mprendre la construction dun chteau de cartes, pour lequel la soli-
dit dun tage conditionne celle du suivant (figure 512).

Figure 512
Le chteau de cartes Access et Base

On pourrait galement la comparer au creusement dun tunnel. Ima-


ginez deux quipes de tunneliers qui creusent de chaque ct dune mon-
tagne. Sils progressent avec mthode et en balisant rgulirement leur
avance, ils se retrouveront au milieu pour sabler le champagne et se fli-
citer de leur succs. Si, par contre, ils creusent au petit bonheur la
chance, parions quils vont se croiser sans mme se voir ou sentendre... PAS DE PANIQUE Les SGBDR,
La facilit dutilisation des logiciels traditionnels de bureautique nous a ce nest pas si compliqu...
fait prendre des rflexes quil nous faudra oublier sous un SGBDR. Avec Sil est si compliqu de programmer un SGBDR,
un traitement de texte, il est si facile de dplacer du texte, corriger suis-je qualifi pour my lancer ? La question est
lorthographe, modifier les styles ou la mise en pages, quon cre le docu- lgitime. La rponse est double.
Si vous navez ni ordre, ni mthode, vous
ment au fur et mesure des ides qui nous viennent. De mme avec un pouvez tre certain que tout ira de mal en pis et
tableur : si on a oubli une ligne, une colonne, une feuille ou une mme que les choses vont vite se dgrader. Lchec est
un formule, il est trs simple de rectifier. En dautres termes, avec ces clairement invitable !
logiciels on prend lhabitude de travailler (et ce nest pas une critique) de Si, par contre, vous avancez en suivant une
mthode rigoureuse, par exemple celle que
manire assez spontane, voire exprimentale : on essaie et on modifie. vous avez entre les mains, vous avancerez
Avec Access et Base, comme avec nimporte quel SGBDR, cette faon sereinement ; les obstacles se lveront au fur et
de procder est voue lchec. Pour simplifier, la construction dune mesure de leur apparition : vous russirez et
pourrez mme vous amuser.
base de donnes relationnelle ncessite de rflchir dabord avant de pro-

103
DExcel Access

grammer en suivant un schma rigoureux et en plantant rgulirement


des jalons de validation du travail effectu.
La mthode davancement que nous vous proposons (figure 513) sera
dtaille au cours des chapitres suivants. Prenons quand mme quelques
instants pour la survoler.

Figure 513
Les tapes pour russir sa base de donnes
relationnelle : modliser, programmer
les tables et les relations, crer les formulaires,
saisir les donnes, programmer
requtes et tats

1 La modlisation : cette phase conditionne la russite du projet, nous


avons dj insist sur ce point. Voir chapitre 6.
2 La programmation des tables : cette phase comprend la cration des
tables, de leurs champs et de leur cl primaire, ainsi que ltablisse-
ment des relations qui les unissent. Correctement mene, elle assure
la solidit de lassise sur laquelle les tapes suivantes viendront se
greffer. Des bonnes tables assurent 100 % la russite des tapes sui-
vantes. Voir chapitres 7 et 8.
3 La programmation des formulaires : cette tape est conseille, car les
formulaires simplifient la saisie et la visualisation des donnes ;
dautant quils sont simples crer. Mais il est trs possible, par
exemple pour des petites bases simples, de ne pas crer de formu-
laires. Voir chapitre 9.
4 La saisie des donnes : on ne peut saisir des donnes dans une table
qu partir du moment o toutes les tables du projet ont t cons-
truites. Avec lhabitude, vous constaterez mme quil est possible de
programmer intgralement une base de donnes relationnelle, avec
toutes ses requtes et ses tats, sans avoir saisi aucune donne. Voir
chapitre 9.

104
5 Introduction aux bases de donnes relationnelles
5 La programmation des requtes : ce sera certainement pour vous
ltape la plus gratifiante. Nous y apprendrons crer des requtes
pour lister certains enregistrements, pour faire des calculs et pour
prparer certaines analyses, tout cela avec une facilit dconcertante.
Voir chapitres 10 12.
6 La programmation des tats/rapports : nous dcouvrirons comment
prsenter, partir des requtes ou des tables, de superbes tats infor-
matiques. Voir chapitre 13.

Synthse : base de donnes relationnelle et


mthode de travail avec un SGBDR
Quelques lments thoriques et logiques caractrisent une base de don-
nes relationnelle :
Les tables sont, dans un SGBDR, lquivalent des listes de donnes
dans un tableur. Elles se composent de champs et denregistrements.
Une base de donnes relationnelle regroupe plusieurs tables relatives
la problmatique de base de donnes traiter. Chaque table corres-
pond un lment identifiable de cette problmatique (Clients,
Fournisseurs ou encore Produits).
Chaque table doit possder une cl primaire. Ce champ spcifique a
pour principale caractristique de ne pas admettre de doublons.
La cl primaire, tant unique, peut tre utilise comme cl trangre
dune autre table pour tablir une relation de table matre table esclave.
Le rseau des relations ainsi cres au sein de la mme base de donnes
relationnelle permet au SGBDR de relier tout enregistrement dune
quelconque table avec un autre enregistrement de toutes les autres tables.
Sur le plan de la mthode de travail, il faut imprativement bannir toute
improvisation et adopter une approche structure :
1 modliser le projet de base de donnes relationnelle ;
2 programmer tables, champs, cls primaires et relations ;
3 programmer si ncessaire quelques formulaires ;
4 saisir les donnes ;
5 programmer les requtes, cur de la base de donnes relationnelle ;
6 programmer les tats/rapports.
Le chapitre suivant traite des mthodes de modlisation en matire de
base de donnes relationnelle.

105
chapitre 6
La modlisation dune base de
donnes relationnelle

SOMMAIRE
B Prsentation de notre cas
pratique de base de donnes
La phase de modlisation conditionne la russite dun projet
relationnelle
de base de donnes relationnelle, la ngliger entrane avec
B Btir le schma thorique de la
certitude son chec. Elle consiste schmatiser, de faon claire base de donnes relationnelle
et directement programmable, les tables de la base (avec leurs B En dduire le schma rel
champs et leurs cls primaires) et les relations qui les unissent. B Les principales tapes de la
programmation dAccess
et de Base

MOTS-CLS
B Schma thorique
B Phrase cl
B Nombre cl
B Schma rel
DExcel Access

Nous allons aborder cette phase essentielle au travers dun nouveau cas
pratique qui va nous accompagner tout au long de notre tude des bases
de donnes relationnelles. Nous apprendrons dessiner deux schmas
dorganisation de nos tables : le premier thorique (cest--dire gnral)
et le second plus concret, prsentant lorganisation dfinitive des rela-
tions entre les tables. Nous terminerons ce chapitre par un retour sur la
mthode de programmation dune base de donnes relationnelle la
lumire des nouvelles connaissances acquises.
Ce chapitre pourra sembler thorique, et il lest en quelque sorte, mais le
temps pass la modlisation sera trs vite rattrap lors de la phase de
dveloppement et de programmation proprement dite. Laspect thorique
de ce chapitre ne doit pas vous dcourager, nous allons longuement
dtailler les explications et largir le discours par des exemples annexes.
Ds que vous en aurez assimil le contenu, vous serez capable de mener
bien une modlisation de base de donnes trs rapidement, parfois mme
en quelques secondes, tant les cas pratiques se ramnent toujours peu ou
prou au mme schma, qui est celui que nous allons dcouvrir ici.

Prsentation de notre cas pratique de base


de donnes relationnelle
Restons dans le milieu de la montagne : aprs la liste de donnes de mat-
riel dalpinisme, nous voici chargs de btir une base de donnes relation-
nelle sous Access ou Base dans une cole dalpinisme, Chamonix. Cette
base aura pour objectif de grer les inscriptions et les activits de lcole :
manipuler les informations relatives aux stagiaires et leurs inscrip-
tions aux diffrentes activits (les lister, savoir qui fait quoi, etc.) ;
manipuler les informations relatives aux guides chargs danimer les
activits (les lister, savoir qui encadre qui, etc.).
Cette base devra pouvoir lister les stagiaires dune activit, les stagiaires
INFO Base de donnes simplifie dun guide, les activits dun stagiaire, ainsi que dautres lments statis-
Il nest pas prvu dintgrer dans notre base tiques, comme tous les stagiaires inscrits plusieurs activits.
dautres domaines, comme la gestion des plan-
Bien videmment, lorganisation de lcole est dterminante dans la struc-
nings ou encore les aspects financiers, comptables
ou concernant la paye. Cela serait possible, mais ture des futures tables de notre base. Nous runissons ainsi les lments
au prix dune singulire complication qui nous suivants au cours des rencontres avec les diffrents responsables de lcole :
loignerait de laspect pdagogique de notre Les stagiaires peuvent sinscrire des activits encadres par des
dmarche. De toutes faons, les outils que nous
allons aborder ici vous permettront sans difficult
guides.
particulire dintgrer ces dimensions. Nous nous Chaque activit a un et un seul guide attitr.
contenterons de traiter le problme des encaisse-
Il existe des guides sans affectation auxquels lcole fait appel en cas
ments des cotisations au chapitre 12.
de dfaillance du titulaire (guide de secours).

108
6 La modlisation dune base de donnes relationnelle
Tous ces lments sont indispensables et influent dune faon dterminante
sur lorganisation des tables adopter. Il est trs important ce niveau de
ltude dtre exhaustif sur les dtails de lorganisation de cette cole. Cela
ne posera aucun problme si nous sommes nous mmes le directeur de
cette cole, mais ce sera plus dlicat si nous en sommes totalement ext-
rieur. En effet, si nous omettons ou ngligeons un lment quelconque lors
de cette phase, la solution laquelle nous arriverons pourrait ne pas fonc-
tionner. titre dexemple, et sans entrer trop dans le dtail, notre future
base ne comportera pas le mme nombre de tables sil ny a quun et un seul
guide par activit ou si, au contraire, une activit peut tre encadre par plu-
sieurs guides ; si nous choisissons la mauvaise hypothse, il ne sera pas pos-
sible de revenir en arrire, et nous aurons travaill pour rien.
Lensemble des informations que nous venons ainsi de runir constitue ce
quon appelle un cahier des charges. Il est ici trs simplifi mais, dans la
ralit, il nest pas ncessairement plus complexe. Mme si cet ouvrage
nest pas spcifique ce thme, nous pouvons tout de mme noter quel-
ques points importants. Un cahier des charges comprend dabord un des-
criptif dtaill de ce quon appelle lexistant, cest--dire lorganisation. Il
comprend ensuite un expos exhaustif de ce que la base de donnes rela-
tionnelle devra permettre de raliser. Il est important de noter cette tape
quune erreur ou une omission dans lune ou lautre de ces parties peut
conduire un chec du projet.

Btir le schma thorique de la base de


donnes relationnelle
Le schma thorique de notre future base dcoule directement dune
information que nous avons recueillie : les stagiaires sinscrivent des acti-
vits encadres par des guides. Cette phrase peut se dcomposer comme
suit : les stagiaires sinscrivent des activits encadres par
des guides . Ce schma est illustr par la figure 61. Nous le qualifions
de thorique parce quil ne correspond pas, comme nous le verrons par
la suite, au schma rel, mais il en est le point de dpart.

CULTURE GNRALE La mthode de modlisation Merise

Les lments de modlisation que nous prsentons ici sont inspirs de la mthode Merise,
rfrence en la matire. Si vous souhaitez plus de prcisions, reportez-vous lannexe
spcifique page 333.

109
DExcel Access

Stagiaires Activits Guides

Sinscrivent Encadres
Figure 61 par
Les stagiaires sincrivent
des activits encadres par des guides

Vous remarquez que ce schma thorique comporte des rectangles et des


cercles. Pourquoi cette distinction ? Parce que comme nous le verrons
dans ltude du schma rel, tous les rectangles deviendront des tables,
alors que ce ne sera le cas que pour certains cercles.
Ltablissement de ce schma thorique prsente quelques difficults que
nous allons lever.

Dterminer les lments du schma thorique avec la


phrase cl
Il nest pas vident, quand on dbute en modlisation, de trouver tout de
suite le bon schma thorique. Nous venons dans notre cas pratique de
le dduire de la phrase les stagiaires sinscrivent des activits enca-
dres par des guides . Cette phrase est ce que nous allons appeler la
phrase cl ; elle caractrise lorganisation des lments dont nous devons
nous occuper et ne peut stablir quaprs avoir pris en compte le fonc-
tionnement du systme modliser. Listons-en dautres dans des con-
textes diffrents :
Pour un vido club : Les clients empruntent des DVD appartenant
diffrentes catgories (humour, action, thriller...) .
Pour une banque : Les clients possdent des comptes dans lesquels
ils ralisent des oprations financires .
Pour un thtre : Les spectateurs rservent des places pour la repr-
sentation dun spectacle .
La plupart du temps, une phrase cl bien formule alterne des mots ou
groupes de mots ( stagiaires , activits et guides ) avec des for-
mulations verbales ( sinscrivent , encadres par ).
En gnral, la phrase cl snonce facilement et logiquement. Mais ce
nest pas toujours le cas. Prenons lexemple de la banque. On pourrait
formuler la phrase cl comme suit : Les clients ralisent des oprations
financires qui senregistrent sur des comptes au lieu de Les clients

110
6 La modlisation dune base de donnes relationnelle
possdent des comptes dans lesquels ils ralisent des oprations
financires . Ces deux formulations aboutiraient deux schmas thori-
ques diffrents. La premire est errone, car elle sous-tend que les clients
sont titulaires des oprations (alors quils ne sont titulaires que des
comptes). Il est difficile de contourner ce type de difficult si on nen a
pas lhabitude. La seule rgle quon pourrait donner en la matire est de
rester logique et de remarquer, dans lexemple, que le client est titulaire
du compte et que le client nest destinataire du mouvement que parce
que ce mouvement est affect un compte dont le client est le titulaire.

Individualiser les lments de la phrase cl


Lindividualisation des lments de la phrase cl, qui va permettre de dduire
les lments du schma thorique, consiste au dcoupage de cette phrase.
Ce dcoupage est en gnral facile. Il suffit de mettre en valeur larticu-
lation syntaxique de la phase cl en groupant les mots comme nous
venons de le faire : les stagiaires sinscrivent des activits
encadres par des guides .
Pour les deux premiers exemples complmentaires, le dcoupage devient PIGE La phrase cl sera diffrente
respectivement : selon le sens de lecture du schma
Les clients empruntent des DVD appartenant La lecture dun schma thorique recle un pige
diffrentes catgories (humour, action, adulte...) ; linguistique. Habituellement, on le lit de gauche
droite. Si on fait le contraire, les noms contenus
Les clients possdent des comptes dans lesquels ils dans les rectangles vont rester inchangs tandis
ralisent des oprations . que les libells des cercles vont tre modifis, le
Le dcoupage de la phrase cl du thtre est, lui, un peu plus compliqu. plus souvent en passant de la voix active la voix
passive, et inversement. Par exemple, Les sta-
La solution est les spectateurs rservent des places pour giaires sinscrivent des activits encadres
une reprsentation dun spectacle . Un mauvais dcoupage par des guides obtenu en lisant le schma tho-
serait par exemple les spectateurs rservent des places pour rique de la figure 61 de gauche droite va
une reprsentation dun spectacle , en groupant reprsentation et devenir Les guides encadrent des activits
auxquelles se sont inscrits des stagiaires si
spectacle , ce qui aurait pour consquence de nautoriser dune seule on lit le mme schma de droite gauche.
reprsentation de tout spectacle.

Caractriser les lments de la phrase cl


Certains lments prcdemment individualiss vont devenir des rectan-
gles de notre schma thorique, dautres deviendront des cercles :
Les mots ou groupes de mots (dans notre cas pratique stagiaires ,
activits et guides ) vont devenir les rectangles du schma tho-
rique. Tous deviendront donc des tables dans le schma rel.
Les formulations verbales abstraites (toujours dans notre cas pratique
sincrivent et encadres par ) vont devenir des cercles du
schma rel. Certaines vont donc devenir des tables dans le schma
dfinitif, dautres non.

111
DExcel Access

ALLER PLUS LOIN Dautres schmas thoriques

Nous avons formul les phrases cls dun vido club, dune banque et dun thtre. La
figure 62 en dtaille les schmas thoriques.

Figure 62 Les schmas thoriques dun vido club, dune banque et dun thtre

viter les principaux piges du schma thorique


Lexprience prouve que deux erreurs type sont lorigine des schmas
thoriques faux, savoir ajouter des lments inutiles ou crer un schma
en boucle.

Ne pas crer dlment inutile


Le dsir de bien faire et dajouter des lments inutiles peut entraner
des erreurs de conception du schma thorique.
Dans notre cas pratique, intressons-nous aux guides de secours. Vous
avez certainement remarqu que notre schma thorique de la figure 61
ne comporte quun seul lment Guide, sans aucune rfrence visible aux
guides de secours. Nous serions-nous tromps ?
Heureusement, non. bien y rflchir, un guide de secours est avant
tout un guide ; sa seule caractristique est de ne pas avoir daffectation.
Les guides de secours seront donc enregistrs dans la mme table que
leurs collgues, il sera ainsi facile de lister tous les guides de lassociation.
Le seul inconvnient de cette solution serait de ne pas pouvoir retrouver
les guides de secours au milieu des guides ayant une affectation ; nous
verrons plus loin (page 262) que cette crainte na pas lieu dtre

112
6 La modlisation dune base de donnes relationnelle
puisquune simple requte (de non correspondance en loccurrence) liste
sans difficult ces guides sans affectation.
Si nous diffrenciions, tort, les guides normaux des guides de secours
dans notre schma thorique, nous serions confronts plusieurs incoh-
rences. Tout dabord, comment rattacher llment Guides de secours au
reste du schma, en particulier aux Activites puisque, justement, ils nen
encadrent pas ? La seule solution serait dutiliser un nouveau lien verbal
abstrait (un cercle) qui pourrait se formuler ainsi : Pourraient tre enca-
dres par , ce qui manque pour le moins de prcision (figure 63) !

Figure 63
Ce schma thorique est erron, un guide
de secours nest quun guide sans affectation.

Cette solution obligerait passer constamment les guides dune table


lautre. Ds quun guide de secours trouverait une affectation, il faudrait
le supprimer de la table Guides de secours pour le saisir dans les Guides
et inversement. Il serait alors techniquement trs difficile dobtenir une
liste complte de tous les guides de lassociation.

ALLER PLUS LOIN Dautres exemples dlments inutiles dans un schma thorique
Le risque de crer des lments inutiles dans un schma thorique de Mais bien y rflchir, ce nest pas exact. Ces deux types de comptes
modlisation de base de donnes relationnelle se rencontre frquem- ont tous deux un titulaire, un numro, une adresse fiscale, etc. De
ment. plus, on peut trs bien considrer que les comptes non rmunrs
Prenons lexemple dune banque dans laquelle les clients possdent sont en fait rmunrs 0%. Cette solution permet de mlanger dans
des comptes. Supposons que ces comptes soient de deux types : les le mme lment Comptes les deux types de comptes ; le champ
comptes rmunrs et ceux qui ne le sont pas. Il est tentant ici aussi Pourcentage de rmunration permettant alors de les distinguer.
de crer deux lments distincts dans notre schma thorique, Inversement, crer deux lments distincts dans le schma thorique
Comptes rmunrs et Comptes non rmunrs, sous prtexte que les gnrera de multiples difficults de programmation, comme lister
caractristiques des uns ne sont pas celles des autres. tous les comptes rmunrs ou non dun mme client.

113
DExcel Access

Ne pas crer un schma thorique en boucle


Il peut tre tentant, en voulant bien faire, de construire le schma tho-
rique de la figure 64. Le lien complmentaire entre Stagiaires et Guides,
servant bien matrialiser quun guide est en relation avec un stagiaire.

Figure 64
Un schma thorique en boucle
est le plus souvent erron.

Cest l encore inutile : les stagiaires sont dj en relation avec les guides,
parce quils sont inscrits une activit qui est encadre par un guide.
De plus, la programmation du schma en boucle pourrait parfaitement
autoriser lincohrence suivante : affecter, dun ct, un stagiaire (par
exemple Amlie) une activit qui est anime par tel guide (Paul), en
mme temps que lon dclare, de lautre, que le guide qui soccupe
dAmlie est Pierre. La porte serait alors ouverte toutes les confusions.
Vous trouverez en annexe dans lexercice de lcole de parapente
(page 334) un contre-exemple cette rgle (comme on dit, lexception
fait la rgle !).

Dduire le schma rel du schma thorique


Le schma thorique comporte certains lments qui ne deviendront pas
des tables dans le schma rel. Cela se fait bien entendu selon des rgles
prcises que nous allons expliquer ici. Ensuite, nous construirons nos
tables en dterminant les diffrents champs, parmi lesquels nous choisi-

114
6 La modlisation dune base de donnes relationnelle
rons bien videmment une cl primaire, et organiserons les relations les
unissant. Nous obtiendrons alors le schma rel dfinitif qui pourra
servir de socle la programmation de notre base.

Dterminer dfinitivement les tables du schma rel


Quels sont les lments du schma thorique qui vont devenir des tables
dans le schma rel et quels sont ceux qui nen deviendront pas ? La
rponse ces questions passe par une notion qui peut sembler bien mys-
trieuse, le nombre cl. Pourtant, il vous faudra moins de temps pour
lappliquer que pour assimiler les explications qui suivent.
La figure 65 illustre le nouveau schma intgrant ces nombres cls pour
notre cas pratique. Les nombres cls sont les nombres figurant ct de
chaque trait unissant un rectangle un cercle. Ils peuvent avoir deux
valeurs, 1 ou N (cest--dire suprieur 1). Le tableau suivant rsume la
signification de chaque nombre cl dans notre cas pratique.

Figure 65
Le schma thorique complt
des nombres cl

ALLER PLUS LOIN Dautres nombres cls

Quelle serait la signification dautres nombres cls dans le schma de la figure 65 ?


Si le nombre cl entre Stagiaires et Sincrivent tait 1, cela signifierait quun sta-
giaire ne peut sinscrire qu une seule activit.
Si le nombre cl entre Activits et Sincrivent tait 1, cela signifierait quune activit
ne peut compter quun seul inscrit et quil sagit donc dun cours particulier.
Si le nombre cl entre Activits et Encadres par tait N, cela signifierait quune acti-
vit peut tre encadre par plusieurs guides en mme temps.
Si le nombre cl entre Guides et Encadres par tait 1, cela signifierait quun guide ne
peut encadrer quune et une seule activit.
Ces diffrences auront un impact immdiat sur le dessin final de la structure des tables de
la base.

115
DExcel Access

Tableau 61 Significations des nombres cls dans le cas pratique dcole dalpinisme

Entre llment rectangle... Et llment cercle... Le nombre cl est... Parce que...


Stagiaires Sinscrivent N Chaque stagiaire peut sinscrire plusieurs (N) activits
Activits Sinscrivent N Chaque activit peut avoir plusieurs (N) stagiaires
Activits Encadres par 1 Chaque activit nest encadre que par un seul (1) guide
Guides Encadres par N Chaque guide peut encadrer plusieurs (N) activits

THORIE Les deux nombres cls Une fois ces nombres cls dtermins, tout va aller trs vite pour dter-
dun cercle du schma thorique miner la structure dfinitive des tables de notre schma final. Tous les l-
peuvent-ils tre tous deux gaux 1 ? ments concrets ou abstraits reprsents par des rectangles (ici Stagiaires,
Pour chaque cercle, nous venons denvisager le cas Activits et Guides) vont devenir des tables du schma final. Par contre,
o les deux nombres cls sont gaux N, puis pour les cercles du schma thorique (Sinscrivent et Est encadre par), il
celui o un seul est gal 1. Nous navons pas
voqu le cas o les deux nombres cls seraient
faut considrer les deux nombres cls qui leur ont t affects :
gaux 1, tout simplement parce que ce cas ne Si les deux nombres cls dun cercle sont N, le cercle considr
peut normalement pas se produire (pour des rai- devient une table dans le schma dfinitif. Cest le cas pour Sinscri-
sons thoriques qui nous emmneraient un peu
vent , figure 66 ;
loin et que nous nallons pas dvelopper ici).
Si un seul des deux nombres cls dun cercle est gal 1, le cercle
considr disparat et ne devient pas une table dans le schma rel.
Cest le cas pour Encadres par, puisque le nombre cl entre Activits
et Encadres par est 1, figure 67.

Figure 66 Figure 67
Tous les nombres cls sont gaux N. Le cercle devient une table. Un nombre cl est gal 1. Le cercle disparat.

116
6 La modlisation dune base de donnes relationnelle
Nous obtenons ainsi le dessin dfinitif de nos quatre tables, figure 68.

Figure 68
Les quatre tables dfinitives
de notre cas pratique

Il nous reste le complter par les diffrents champs de chaque table


(dont un sera cl primaire) et fixer dfinitivement les relations entre les
tables. Nous obtiendrons ainsi le schma rel dfinitif de notre base quil
ne restera plus qu programmer.

AUTRE CAS Et si un guide pouvait


encadrer plusieurs activits ?

Lhypothse quune activit ne pouvait tre encadre que par un guide a abouti au
schma de la figure 68.
Ce schma serait compltement diffrent si une activit pouvait tre encadre par plu-
sieurs guides. Le nombre cl entre Activits et Encadres par serait alors N, les deux nom-
bres cls autour du cercle Encadres par seraient alors N et ce cercle deviendrait une table
du schma rel (qui comportera alors cinq tables et non quatre), figure 69.

Figure 69 Une base avec cinq tables et non plus quatre

Dterminer les champs et la cl primaire de chaque table


Maintenant que nous connaissons les tables dfinitives de notre schma
rel, reste en dterminer les champs dont un sera cl primaire. Dans
notre cas pratique, on peut imaginer pour chaque table diffrents

117
DExcel Access

contenus ; nous vous proposons dopter pour les diffrents champs de la


figure 610, en sachant quil est toujours possible denrichir nos donnes
dautres informations, comme par exemple le niveau du stagiaire, son sexe
ou encore le RIB du guide pour effectuer les virements de salaire.

Figure 610
Les champs des quatre tables du cas pratique.
Le symbole spcifie la cl primaire.
Remarquez que les champs ncessaires
ltablissement des relations
ne sont pas encore prsents.

Certains champs appellent des remarques particulires :


Les tables Stagiaires et Guides possdent chacune une cl primaire
de type numro.
La table Activites ne comporte pour linstant quun champ, le nom de
lactivit, qui servira par la mme occasion de cl primaire pour cette
table, chaque activit ayant bien entendu son nom spcifique.
La table Inscriptions ne comporte pour linstant quun champ, la
Date et lheure du moment de linscription. Ce champ sera aliment
par une valeur par dfaut, celle fournie par lordinateur au moment
prcis de la saisie de linscription. Personne ne pouvant tre inscrit
exactement au mme moment, ce champ fera une excellente cl pri-
maire. Bien entendu, si deux inscriptions pouvaient tre exactement
simultanes (comme en cas de saisie multi-poste ou de dversement
automatique de listes de stagiaires), ce choix ne sera pas pertinent, et
il faudra utiliser un simple champ numrotation automatique.
Ajoutons, pour terminer, que le champ Bureau des guides de la table
Guides est dict par lobligation lgale pour chaque guide dexercer
son activit professionnelle dans le cadre dun bureau.

tablir les relations entre les tables


Ltablissement des relations entre les tables est la dernire tape dans la
transformation de notre schma thorique en schma rel, celui qui ser-
vira de socle la programmation de notre base de donnes relationnelle.
Lorsque nous avions rflchi sur la relation tablir entre les tables
Ventes et Reprsentants (page 95), nous avions conclu quil suffisait
dajouter le champ Reprsentant (cl primaire de la table Reprsentants)
la table Ventes crant ainsi la relation entre la table matre Reprsen-
tants et son esclave Ventes.

118
6 La modlisation dune base de donnes relationnelle
RAPPEL Ajout de tables ou de champs

Dans une base de donnes relationnelle, il est en gnral possible dajouter des champs
des tables existantes. Cet ajout est tout de mme viter, parce quil obligera
reprendre les diffrents formulaires, requtes et tats/rapports qui dpendent de la table
ainsi modifie. Cest pourquoi il vaut mieux crer ces champs ds le dbut.
Par contre, il est toujours plus compliqu dajouter des tables. Dans le pire des cas, par
exemple si nous oublions la table Inscriptions dans notre cas pratique, il sera impossible
de linsrer sans supprimer une bonne partie de ce que nous aurons dj fait. Et dans un
cas plus simple, comme lajout dune table spcifique pour les bureaux des guides (ce que
nous serons dailleurs obligs de faire si nous travaillons avec Base, voir page 164), il
faudra de toutes faons reprendre toute la hirarchie des formulaires, requtes et tats /
rapports dj crs qui dpendront de cette nouvelle table.
Do limportance de la phase de modlisation que nous menons actuellement.

Le schma est exactement le mme pour les trois relations tablir entre
les quatre tables de notre cas pratique :
Pour lier Stagiaires et Inscriptions, il suffit dajouter le champ NumSta-
giaire (cl primaire de la table Stagiaires) la table Inscriptions. La table
Inscriptions devient alors esclave de la table Stagiaires, ce qui corres-
pond la ralit logique : on ne peut inscrire un stagiaire que sil existe.
Pour lier Activites et Inscriptions, il suffit dajouter le champ
NomActivite (cl primaire de la table Activites) la table Inscrip-
tions. Inscriptions devient alors esclave dActivites, ce qui correspond
la ralit logique : on ne peut inscrire un stagiaire une activit que
si cette dernire existe dans la table Activites.
Pour lier Activites et Guides, il suffit dajouter le champ NumGuide
(cl primaire de la table Guides) la table Activites. Activites devient
alors esclave de Guides, ce qui correspond la ralit logique : on ne
peut affecter une activit quun guide existant dans la table Guides.
Nous arrivons ainsi au schma rel dfinitif de la figure 611.

Figure 611
Le schma rel dfinitif de notre cas pratique
comporte les quatre tables (avec leurs champs
dont un est cl primaire) et les relations
qui les unissent.

La plupart du temps, comme dans notre exemple, il est ais de dter-


miner quel champ intgrer une table pour la relier une autre. La
simple logique suffit. Il existe cependant deux rgles simples pour sy
retrouver coup sr dans des cas plus complexes :
Toutes les tables issues dun cercle (avec des nombres cls valant N)
deviennent esclaves des tables issues des rectangles auxquels elles

119
DExcel Access

taient relies. Les relations stablissent alors en intgrant dans ces


tables les champs cl primaire de leurs matres. Dans notre cas pra-
tique, la table Inscriptions, issue dun cercle, devient esclave de Sta-
giaires et dActivites et la relation stablit en insrant dans cette table
les champs cl primaire des deux tables matres.
Dans le cas dun cercle (un des nombres cls vaut 1), la relation sta-
blit directement entre les deux tables issues des rectangles auxquels il
est reli. Cest le cas pour le cercle Encadres par : la relation stablit
entre Activites et Guides. Cest alors la table issue du rectangle du
ct duquel le nombre cl est 1 qui devient esclave de lautre table ; et
UNIVERSEL Cette mthode de modlisation cest le champ cl primaire de cette autre table qui est insr dans la
fonctionne avec tout SGBDR table esclave pour crer la relation. Dans lexemple, cest le champ cl
Notre mthode de modlisation fonctionne pour primaire de la table Guides qui est insr dans la table esclave Acti-
nimporte quelle problmatique de base de don- vites, issue du rectangle du ct duquel le nombre cl tait 1.
nes relationnelle, quelque soit le SGBDR qui ser-
vira de support la programmation : Access, Base,
Llaboration du schma rel clt la phase de modlisation. Nous
ou autre. sommes maintenant arms pour aborder sereinement la phase de dve-
loppement de notre projet sous Access ou Base.

Les principales tapes de la


programmation dAccess et de Base
Ltude des techniques de modlisation vous a certainement convaincu,
si ce ntait dj fait, de la ncessit dadopter une mthode de travail
structure pour concevoir et programmer une base de donnes relation-
nelle sous un SGBDR comme Access ou Base. La programmation pro-
prement dite de la base de donnes relationnelle qui va faire lobjet des
chapitres suivants doit galement tre structure. Avant de nous y atta-
quer, profitons de loccasion pour en prsenter larticulation gnrale. La
figure 612 dtaille le schma gnral de cette mthode de travail.

tape 1 : programmer les tables


Cette phase est essentielle, elle conditionne la russite de lensemble du
projet (rappelez-vous la comparaison que nous avons faite entre une base
de donnes relationnelle et un chteau de cartes). Disons-le tout net :
des tables mal conues ne vous poseront que des problmes.
La cration de chaque table implique bien videmment celle de chacun de
leurs champs et de leurs caractristiques (type du champ, format, liste de
choix, valeur par dfaut, etc.) ainsi que la dtermination de sa cl primaire.

120
6 La modlisation dune base de donnes relationnelle
Figure 612
Schma gnral de la mthode
de travail pour btir un SGBDR.

tape 2 : tablir les relations


Ltablissement des relations entre les tables matres et leurs esclaves
permet dassurer le bon fonctionnement du modle relationnel du
SGBDR. Elle comprend aussi ltablissement de lintgrit rfrentielle.
Ce concept un peu mystrieux est en ralit trs simple ; il ne sagit que de
sassurer que chaque enregistrement dune table esclave est toujours en
relation avec lenregistrement correspondant de la table matre. Dans notre CHRONOMTRE Pas plus de cinq minutes
cas pratique, lintgrit rfrentielle interdira par exemple de supprimer Ltablissement des relations entre les tables ma-
lenregistrement dun guide de la table Guides sil encadre une activit. tres et esclaves partir dune structure de tables
correctement btie ne vous prendra pas plus de
Cette tape est absolument fondamentale. Lexprience prouve que toutes
cinq minutes. Inversement, des difficults ce
les difficults que lon peut y rencontrer sont, presque toujours, la cons- niveau risquent dtre le symptme dune erreur
quence directe dune erreur de conception ou de programmation des tables de conception de la structure mme de la base, ce
(qui trouve sa source dans un schma rel erron). Ltablissement des rela- qui vous obligera, dans le pire des cas, tout
reprendre depuis le dbut. Quand on vous disait
tions et de lintgrit rfrentielle peut ainsi tre considre comme une
que la phase de modlisation tait essentielle...
validation de la structure des tables dune base de donnes relationnelle.

tape 3 : saisir les donnes


Une erreur classique en matire de programmation de SGBDR consiste
saisir des donnes dans les tables au fur et mesure de leur cration. Par
exemple, dans notre cas pratique, il est tentant, juste aprs avoir cr la
premire table Stagiaires (et avant de crer les autres tables de la base), de

121
DExcel Access

saisir directement les donnes de cette table pour voir si a marche .


Cest une mauvaise pratique. Imaginez si, lors de la construction dune
maison, le peintre venait peindre un pan de mur alors que les maons nont
TRUC Diffrer la saisie des donnes
pas encore termin de monter les autres murs ? Ltablissement des rela-
Quand vous serez expert en Access et Base vous tions valide la cration des tables et constitue en quelque sorte, pour rester
pourrez parfaitement travailler entirement sans dans notre mtaphore, la mise hors deau de notre maison.
donnes, cest--dire programmer requtes, tats
et formulaires sans navoir rien saisi dans les Il est donc trs vivement conseill de ne commencer la saisie des donnes
tables. Cela dit, quelques donnes tests vous sim- dune base que lorsque lensemble des tables et relations ont t valides.
plifieront quand mme la tche en visualisant les
Cela dit, vous trouverez peut-tre des personnes qui vous diront quelles
rsultats de ces requtes, formulaires et tats.
nen ont rien fait et que tout sest trs bien pass.

tape 4 : programmer formulaires, requtes


et tats/rapports
Pour un peintre, la dernire touche de pinceau met un point final au
tableau. Sans cet ultime dtail, il est inachev. Est-ce dire que toute
luvre sy trouve rsume ? Non, bien entendu. Ce coup de pinceau ne
fait que parachever tout le travail, toutes les motions, toute la force que
lartiste a voulu transcrire. Et la cohrence mme de luvre rend cette
dernire touche presque naturelle, invitable, simple.
Cest la mme chose pour une base de donnes : avec des tables et des
relations correctement bties et valides, les requtes, les formulaires et
les tats, sauf dans quelques cas trs complexes, ne seront la plupart du
temps quun jeu denfant.

ET SI... Et si je ne suis pas lordre logique de ces phases ?

Prendre le problme dans le dsordre, cest un peu comme essayer de monter un chteau de
cartes en Camargue un jour de mistral : il vous faudra plus dune fois tout reprendre zro.

Synthse : modlisation et mthode de


programmation dun SGBDR
La phase initiale de modlisation, pralable et indispensable la pro-
grammation dun SGBDR, permet de dterminer la structure des tables
de la base de donnes, avec leurs champs et leur cl primaire, et des rela-
tions qui les unissent.

122
6 La modlisation dune base de donnes relationnelle
Elle passe par llaboration successive dun schma thorique puis dun
schma rel. Les principales phases en sont rappeles ci-dessous :
1 Schma thorique :
formalisation de la phrase cl, par exemple les stagiaires sinscri-
vent des activits encadres par des guides ;
cration du schma thorique, compos de rectangles (dans
lexemple, Stagiaires, Activites et Guides) et de cercles (toujours
dans lexemple, Sinscrivent et Encadres par).
2 Schma rel :
dtermination des nombres cls 1 ou N ;
tous les rectangles du schma thorique deviennent des tables ;
seuls les cercles dont tous les nombres cls sont N deviennent des
tables ;
dtermination des champs des tables et choix dune cl primaire ;
tablissement des relations par lintgration dans les tables esclaves
des champs cl primaire de leurs matres.
Cette phase de modlisation prcde obligatoirement celle de program-
mation proprement dite. Pour cette dernire, on peut distinguer les
tapes suivantes :
1 programmation de toutes les tables (avec leurs champs et leur cl pri-
maire), tablissement de toutes les relations de matres esclaves et
tablissement de lintgrit rfrentielle ;
2 programmation des formulaires et saisie des donnes ;
3 programmation des requtes et tats/rapports.
Le tableau suivant fournit, sous une autre forme, lessentiel mmoriser
sur ce sujet :
Tableau 62 Check-list de construction dune base de donnes relationnelle

Phase tape Contenu


Modlisation Schma thorique Phrase cl, cercles et rectangles
Schma rel Nombres cls, tables, champs, cl primaire, relation de matre esclave
Programmation Tables Tables, champs, cl primaire
Relations Relations de matre esclave et intgrit rfrentielle
Validation de la structure de la base de donnes
Programmation des formulaires et saisie des donnes
Programmation des requtes et tats/rapports

123
chapitre 7
Oprations essentielles
sur une base de donnes
SOMMAIRE
B Crer une nouvelle base de
donnes relationnelle
B Ouvrir une base de donnes
Aprs avoir vu comment prparer le dploiement dune base relationnelle existante
de donnes, nous allons maintenant passer lacte ! Depuis B Utiliser lcran daccueil dune
base de donnes relationnelle
la cration de la base jusqu lajout des tables et champs, B Les caractristiques des
vous disposerez, aprs la lecture de ce chapitre, de tous champs dune table
les outils pour bien aborder cette tape fondamentale. B Crer une nouvelle table
B Crer les champs dune table
B Crer une table par importation
de donnes
B Manipuler les objets dune base
de donnes

MOTS-CLS
B Nouvelle base de donnes
B Ouvrir une base de donnes
B Problmes de scurit et de virus
B cran daccueil
B Volet de navigation
et volet daffichage
B Champ, type de champ,
proprits de champ
B Type de champ : texte, date/
heure, numrotation automatique
B Proprits de champ : format,
masque de saisie
B Proprits Chane vide autorise
et Null interdit
B Mode Cration / bauche
et mode Contenu
B Importation de donnes
DExcel Access

Nous allons dcouvrir quelques manipulations fondamentales dAccess


et de Base : crer et ouvrir une base, dcouvrir linterface, grer les pro-
blmes de scurit. Nous allons galement apprendre crer notre pre-
mire table, avec ses champs et leurs proprits ainsi quune cl primaire.
Enfin, nous nous familiariserons avec les principales opration concer-
nant le contenu dune base de donnes relationnelle.

Crer une nouvelle base de donnes


relationnelle
Avec un tableur ou un traitement de texte, il est possible de commencer
travailler sur un nouveau classeur ou document avant de lenregistrer
sur le disque dur. Bien sr, ce nest pas trs orthodoxe (car vous risquez
alors par mgarde de perdre votre travail si vous oubliez de raliser cet
enregistrement) ; mais cest techniquement possible.
Il est impossible de travailler ainsi avec Access ou Base. Ds la cration
dune base de donnes vierge, il faut commencer par lenregistrer sur son
disque avant mme que de pouvoir y travailler. Nous entrevoyons ainsi
ds notre premier contact avec les SGBDR quils ne fonctionnent dci-
demment pas comme les bons vieux tableurs et traitements de texte aux-
quels nous nous tions habitus.
Au cours des chapitres qui suivent, nous allons programmer la base de
notre cas pratique dcole dalpinisme. Si vous voulez suivre les exercices
de ce livre, crez un dossier dans lequel vous stockerez la base dcole
dalpinisme.
Access 2007 propose, ds son lancement, plusieurs modles, certaine-
ment tous plus patants les uns que les autres. Access tant plutt un
logiciel dans lequel le sur-mesure est la rgle, nous allons choisir de crer
une base de donnes vierge. Pour cela, dans lcran daccueil obtenu juste
aprs le lancement du logiciel (figure 71), choisissez licne Base de
donnes vide, spcifiez bien (partie droite) le nom de votre base (ici Eco-
leAlpinisme) et le dossier dans lequel vous souhaitez la classer (si vous
omettez de prciser ce dossier, votre base sera cre dans Mes docu-
ments). Validez, la base est cre.

126
7 Oprations essentielles sur une base de donnes
Figure 71 La cration dune base de donnes Access 2007 vierge

ACCESS 2003 Crer une nouvelle base de donnes

1. louverture dAccess, appuyez sur Ctrl + N ou allez dans le menu Fichier, option Nouveau.
2. Cliquez dans le volet droite sur Base de donnes vide (figure 72).
3. Spcifiez ensuite le nom et le dossier souhaits avant de valider.

Figure 72 La cration dune base de donnes Access 2003 vierge

127
DExcel Access

BASE Crer une nouvelle base de donnes

1. Le lancement de Base provoque louverture de lAssistant base de donnes.


2. Choisissez loption Nouvelle base de donnes.
3. La bote de dialogue de la figure 73 apparat. Confirmez que vous souhaitez enregis-
trer la base. Vous avez la possibilit (non choisie ici) douvrir directement la base
cre, et mme douvrir votre premire table. Validez.
4. Nommez ensuite votre base, spcifiez le dossier et validez.

Figure 73 Le deuxime cran de lAssistant base de donnes de Base pour crer


une base vierge

Ouvrir une base de donnes relationnelle


existante
Vous avez le choix des armes et des mthodes :
Par Windows, si le document a t ouvert rcemment, allez dans le
menu Dmarrer, option Mes documents rcents.
Par lexplorateur Windows (rendez-vous dans le dossier contenant la
base et double-cliquez sur son icne).
En ouvrant directement Access ou Base et en choisissant dans la liste
des dernires bases utilises.

128
7 Oprations essentielles sur une base de donnes
partir de ce moment, la gestion des problmes lis la scurit des
donnes va modifier la procdure douverture dune base selon le
SGBDR utilis.

SCURIT Les virus

Les virus sont des programmes qui entrent dans votre ordinateur votre insu et y crent
divers dsagrments, allant du simple message humoristique la destruction totale des
donnes. Autant dire quil ne faut pas les prendre la lgre et adopter leur gard une
attitude rsolue. Un virus informatique sattrape, comme un virus humain, par contagion.
Si vous vivez seul sur une le dserte, vous ne craignez rien. Un virus peut pntrer dans
votre ordinateur quand vous allez sur Internet ou quand vous ouvrez un fichier contamin
qui en contient (dans le cas des documents bureautiques, le virus se loge gnralement
dans une macro, un miniprogramme permettant dautomatiser des tches rptitives). Les
parades pour se prmunir des virus sont de bon sens et se rsument en fait au conseil que
vous donnait votre maman : ne jamais ouvrir la porte un inconnu !
Voici quelques conseils simples ce sujet :
Installez un antivirus et maintenez les dfinitions de virus jour ;
Paramtrez le niveau de protection de Windows selon votre utilisation ;
Installez un pare-feu efficace pour viter les intrusions malveillantes ;
vitez (vraiment) les sites Internet douteux ; ne tlchargez jamais (et surtout nins-
tallez jamais) des programmes sur Internet dont vous ne connaissez pas la
provenance ;
Nouvrez jamais des fichiers reus en pices jointes ou fournis sur CD ou DVD si vous
ne connaissez pas leur origine ;
Ralisez rgulirement des sauvegardes de vos donnes sur DVD ou disque dur
externe : au cas o vous seriez infest, vous pourriez ainsi formater votre disque,
rinstaller Windows et rcuprer vos donnes dorigine.
Il est noter que les virus sont surtout prsents dans lenvironnement Windows et peu
(voire pas) dans les environnements concurrents Mac et Linux. Les logiciels libres, dont
Calc et Base dOpen Office, viennent gnralement de lenvironnement Linux et ont donc
souvent une approche diffrente dOffice ce niveau. Toutefois, il est inutile de sinquiter
outre mesure sur ce problme de virus. Le respect des quelques rgles de scurit vo-
ques ci-dessus vous garantit une vie tranquille 99,9%.

Avec Base, issu du monde du logiciel libre, vous naurez pas davertisse-
WINDOWS Crer un raccourci sur le Bureau
ment lors de louverture dune base de donnes. Soyez donc vigilant et
nouvrez que celles dont vous tes sur de linnocuit. Pour crer un raccourci vers un dossier ou un
fichier sur le Bureau, il faut :
Par contre, Access ragit diffremment. Dtaillons les procdures sous Slectionner le dossier ou fichier souhait dans
Access 2007 (les utilisateurs de la version 2003 se reporteront lapart lexplorateur Windows ;
spcifique). louverture dune base existante, Access 2007 noffre quun Effectuer un clic droit dessus ;
Slectionner les options Envoyer vers puis
bel cran presque vide, car il considre par dfaut que toute base de don- Bureau(crer un raccourci).
nes contient potentiellement un virus. Vous pouvez maintenant ouvrir directement votre
dossier ou fichier par un double-clic sur son rac-
Deux possibilits soffrent alors nous, autoriser ponctuellement ou courci.
dfinitivement louverture dune base de donnes.

129
DExcel Access

Figure 74
Pour des problmes de scurit, aucune
base de donnes nest ouverte par dfaut.

Autoriser louverture de la base pour une session


seulement sous Access 2007
Si vous souhaitez ne lever linterdiction que pour la session de travail en
cours, cest--dire si vous souhaitez ne travailler que ponctuellement sur
la base :
AMUSANT Me protger 1 Cliquez sur le bouton Options du bandeau Avertissement de scurit
contre tout contenu inconnu (juste au-dessous du ruban) ;
Loption Me protger contre tout contenu 2 Dans la bote de dialogue de la figure 75, choisissez loption Activer
inconnu de la figure 75 va tout simplement ce contenu ;
interdire louverture de la base slectionne.
3 Validez, la base souvre.

Figure 75
La bote de dialogue qui met en garde
contre tous les risques inhrents
louverture dune base.

130
7 Oprations essentielles sur une base de donnes
Autoriser dfinitivement louverture de toutes les bases RADICAL Autoriser tous les fichiers
de Mes documents
dun dossier sous Access 2007
Cest loption choisie sur la figure 77. Elle simpli-
La mthode prcdente risque rapidement de nous nerver, non ? Le fiera vos manipulations, mais vous suppose majeur
souci de scurit a du bon, mais cette faon de procder risque rapide- et vaccin : dans ce cas, plus aucune vrification
ment daller lencontre de son but : nous risquons de nous habituer ne sera effectue louverture dune quelconque
base de donnes du dossier Mes documents.
toujours choisir loption Activer ce contenu, en rflchissant de moins en
vous de prendre vos prcautions.
moins, jusquau jour o nous ouvrirons, toujours sans rflchir, un fichier
vritablement dangereux.
Le mieux est certainement de crer un dossier spcifique nos bases de
donnes, et de ny stocker que des fichiers dont nous sommes srs de
linnocuit. Il suffit alors, par la procdure qui suit, de dclarer que ce
dossier est sr ; Access 2007 en ouvrira alors les fichiers directement,
sans message pralable.
1 Dans la bote de dialogue de la figure 75, cliquez sur Ouvrir le centre
de gestion de la confidentialit (en bas). La bote de dialogue de la
figure 76 apparat.

Figure 76
Le centre de gestion de la confidentialit.
Remarquez que le dossier Mes documents
est dj autoris (parce que la procdure
a dj t effectue).

2 Choisissez loption Emplacements approuvs et cliquez sur le bouton


Ajouter un nouvel emplacement, la bote de dialogue de la figure 77
apparat.

Figure 77
La fentre qui permet dautoriser louverture
de tout fichier prsent dans le dossier
Mes documents sans avoir de message.

3 laide du bouton Parcourir, cherchez le dossier auquel laccs va tre


autoris.
4 Validez plusieurs fois pour fermer toutes les fentres en cours.

131
DExcel Access

Remarquez que la bote de dialogue de la figure 76 permet de grer des


dossiers privilgis (par ajout ou suppression dautorisation).
Une fois lopration effectue, nous pouvons ouvrir notre base directe-
ment en obtenant laffichage de la figure 78. Mme si ce nest pas vi-
dent (car la base est vide), la base est maintenant ouverte : voyez dans la
barre de titre, tout en haut, la mention portant le nom de votre base et
lintitul du logiciel (ici, Eddy : base de donnes... ).

Figure 78
Lcran daccueil
dune base de donnes vierge
sous Access 2007

ACCESS 2003 La gestion de la scurit

Vous obtenez louverture de la base le message de la figure 79. Si vous tes sr de son
contenu, choisissez loption Ouvrir.
Vous pouvez aussi dsactiver cette scurit, parce que vous considrez que vous tes
assez responsable pour ne pas tenter douvrir des fichiers potentiellement dangereux. La
procdure suivre est alors la suivante :
1. Dans le menu Outils, option Macro puis Scurit, choisissez loption Niveau de
scurit faible (non recommand) et validez.
2. Dans lcran suivant, la question Voulez-vous autoriser..., rpondez Oui.

Figure 79 Avertissement de scurit en anglais. Choisir Ouvrir


(en toute connaissance de cause) ou Annuler.

132
7 Oprations essentielles sur une base de donnes
Utiliser lcran daccueil dune base de ACCESS 2003 Maximiser la fentre
daffichage de la base de donns
donnes relationnelle Avec Access 2003, une base saffiche par dfaut
en fentre rduite (figure 710). Il est alors con-
Lcran daccueil est lcran obtenu directement louverture dune base de seill dutiliser les boutons de redimensionnement
donnes. Il comporte pour lessentiel le volet de navigation ( gauche) et le de fentre Windows pour agrandir cette fentre
volet daffichage (au centre et droite). Le principe gnral de son fonc- afin de disposer dun espace de travail maximal.
tionnement est que llment slectionn dans le volet de navigation
saffiche dans le volet daffichage. Les figures 711, 712 et 713 illustrent
son aspect respectivement sous Access 2007, Access 2003 puis Base.

Figure 711
Figure 710
Le Volet Access 2007 affich. Le bouton
Il est conseill de maximiser laffichage de la
Ouvrir/fermer la barre de redimensionnement
fentre de base de donnes Access 2003,
masquera ce volet.
ouverte par dfaut en rduction.

Figure 712 Une base de donnes Access 2003 vierge. Figure 713 Une base de donnes Base vierge.
Remarquez les icnes de dveloppement/rduction Remarquez les termes tables, requtes, formulaires et rapports.
et les termes tables, requtes, formulaires et tats.

Le volet de navigation liste les diffrentes familles dobjets disponibles dans


la base de donnes relationnelle. Nous connaissons les quatre types dobjets
essentiels, les tables, les formulaires, les requtes et les tats / rapports.
Nous les retrouvons bien dans notre volet de navigation.
Puisque notre base de donnes dcole dalpinisme est vide, aucun objet
napparat dans le volet de navigation.

133
DExcel Access

Access 2007 propose enfin des options de personnalisation de laffichage


qui, si elles offrent plus de confort quand on les matrise bien, ont plutt
tendance compliquer les choses au premier abord :
En utilisant le bouton Ouvrir/fermer la barre de redimensionnement
(figures 711 et 714), on affiche ou on masque le volet. En faisant
glisser le bord droit de ce volet comme pour nimporte quelle fentre
Windows, on peut le redimensionner.

Figure 714 Le Volet Access 2007 masqu. Le bouton Ouvrir/fermer Figure 715 Le paramtrage de laffichage
la barre de redimensionnement affichera ce volet. des objets Access 2007 dans le volet de navigation

En cliquant sur la flche pointant vers le bas juste ct du bouton


Ouvrir/fermer la barre de redimensionnement, on peut paramtrer les
lments affichs par le volet de navigation. Loption de la figure 715
permet, sous Access 2007, de faire des groupes par types dobjets
(tables, formulaires, requtes et tats).

Crer une table


Nous allons ici apprendre crer une nouvelle table avec ses champs et
leurs proprits. Nous apprendrons galement importer directement
dans Access ou Base des donnes dj prsentes dans dautres fichiers
existants. Enfin, nous nous exercerons manipuler les objets dune base
de donnes.

134
7 Oprations essentielles sur une base de donnes
Notre schma rel a dfini quatre tables pour notre cas pratique dcole RAPPEL Dfinition dune table
dalpinisme : Stagiaires, Inscriptions, Activites et Guides. Avant mme
Une table se compose de champs et denregis-
de crer notre premire table, une question simpose : dans quel ordre trements. Les champs dfinissent sa structure :
crer ces tables ? Par exemple, si nous tentons de crer Inscriptions en nom, prnom, date de naissance, etc. Chacun
premier, comment pourrons-nous y saisir le champ NumeroStagiaire, possde des proprits (numrique, alphab-
cl primaire de la table des Stagiaires qui nexiste pas encore ? En ralit, tique, date, etc). Un des champs doit tre une
cl primaire. Ses enregistrements dfinissent au
on ne peut crer une table esclave avant sa table matre.
contraire son contenu : les abonns au tl-
Dans notre cas pratique, il faudra donc crer les tables dans lordre phone, les membres dune association, les
suivant : Stagiaires, puis Guides (ou linverse), ensuite Activites (esclave clients dune entreprise, etc.
de Guides) et enfin Inscriptions (esclave de Stagiaires et dActivites).
La procdure de cration dune table comporte globalement les phases
suivantes :
1 Crer une nouvelle table.
2 Dans cette table, crer les diffrents champs avec leurs proprits.
3 Choisir une cl primaire parmi les champs.
4 Enregistrer la table.
Crer une table ncessite pralablement davoir list tous les champs de
cette table et den avoir dfini les caractristiques essentielles.

Les caractristiques des champs dune table


Le tableau ci-dessous dtaille les champs de notre table des Stagiaires et
leurs caractristiques :
Tableau 71 Dtail des caractristiques des champs crer pour la table Stagiaires

Nom du champ Type Format Autres caractristiques


NumeroStagiaire Numro automatique Entier Cl primaire de la table
NomStagiaire Texte 20 caractres maximum Null interdit (saisie obligatoire)
PrenomStagiaire Texte 15 caractres maximum Null interdit
DateNaissanceStagiaire Date Masque de saisie (JJ/MM/AAAA) Null interdit
TelStagiaire Numro de tlphone Masque de saisie (XX XX XX XX XX) Null pas interdit (saisie facultative)

Ce tableau ncessite quelques commentaires sur les noms des champs


ainsi que sur certains types, formats et autres caractristiques.

Utiliser des noms de champs pertinents


Pour viter les confusions, il faut viter que plusieurs champs de diff-
rentes tables de la mme base portent le mme nom. Les stagiaires et les
guides ayant tous deux un nom et un prnom, nous spcifions donc
NomStagiaire et PrenomStagiaire, ce que nous ferons aussi pour le guide.

135
DExcel Access

Vous avez certainement remarqu la graphie inhabituelle des noms de


champs. Pourquoi nommer un champ NumeroStagiaire et non Numro
ALTERNATIVE Utiliser le tiret bas (_) pour du stagiaire, sans espace ni caractre accentu :
sparer les mots dun nom de champ
Un nom de champ comportant des espaces ncessitera dtre saisi
Au lieu des majuscules, on peut aussi utiliser le entre crochets ([]) dans la programmation des requtes. Un nom de
tiret bas pour sparer les mots dun nom de
champ : NomStagiaire devient nom_stagiaire.
champ sans espace pourra tre saisi directement sans ces crochets,
Cest affaire de got. do un gain de temps apprciable. Pour que ces noms restent malgr
tout lisibles, on jouera avec lalternance des majuscules et des minus-
cules. Par exemple, Tlphone du Stagiaire devient
TelStagiaire . AvecLHabitudeCEstTresLisible.
Ne pas utiliser les caractres accentus , ou (ni dailleurs dautres
types de caractres exotiques comme , , ...) vitera certains pro-
blmes dincompatibilit avec des versions prcdentes dAccess ou
de Base. Ne nommez vos champs quen utilisant les caractres alpha-
btiques de A Z et les chiffres de 0 9.
Enfin, les mmes noms de champ vont tre utiliss tout au long de la vie
de la base. Comme il est trs vivement dconseill de renommer des
champs, il faut choisir demble des noms courts et sans fautes dortho-
graphe. Prfrez NomStagiaire NonStagiare, NoMstagaire ou encore
NomDuOuDeLaStagiaire.

Dfinir une cl primaire efficace


Le champ NumeroStagiaire sera la cl primaire de notre table. Rappelons
quune cl primaire permet didentifier sans ambigut un enregistrement
parmi les autres et que sa caractristique essentielle est de ne pas admettre
de doublon. Toute table doit comporter un champ cl primaire.
Il existe deux techniques pour crer ce type de champ.
La technique la plus simple et que nous vous conseillons consiste uti-
liser pour un champ cl primaire le type Numro automatique. Les dif-
frents enregistrements seront alors automatiquement numrots 1, 2,
3, etc. lors de la saisie. Lavantage est quil ny a aucun risque de dou-
blon. Linconvnient est quon ne matrise pas laffectation des numros.
Lautre technique consiste vouloir rester matre de cette numrota-
tion, et crer un champ ordinaire, par exemple alphabtique. Lop-
rateur devra alors faire attention, la saisie, de ne pas donner pour un
nouvel enregistrement une valeur dj existante pour ce champ, sinon
le champ ne pourra plus tre utilis comme cl primaire. notre avis,
lavantage de grer soi-mme la numrotation ne contrebalance pas le
risque daffecter deux fois la mme valeur.
Le champ NumeroStagiaire sera donc cl primaire de notre table des
Stagiaires et sera de type Numro automatique.

136
7 Oprations essentielles sur une base de donnes
Faciliter la saisie avec un masque de saisie
Un masque de saisie est une aide la saisie pour viter les erreurs et flui-
difier la saisie.
Prenons lexemple de la saisie dun numro de tlphone avec code inter- PRODUCTIVIT Les masques de saisie
national. Onze chiffres la suite, par exemple 33123456789, ce nest ni Les masques de saisie sont en gnral systma-
trs facile saisir ni trs facile lire. Le format 33 1 23 45 67 89, avec tiquement utiliss pour tous les champs de pr-
sentation normalise, comme numro de
des espaces, est bien plus pratique. Ce type de difficult se rsout avec un tlphone, code postal, numro de scurit
masque de saisie, qui sera en lespce de la forme 33 _ __ __ __ ; lors sociale, numro de SIRET, etc. Ils sont gale-
de la saisie, loprateur naura plus qu remplacer les _ par les chiffres du ment indispensables pour lever lambigut lors
numro de tlphone ; de plus, le code international de la France, 33, de la saisie de certains champs, comme les
champs date (JJ/MM/AAAA ou JJ/MM/AA ou
sera automatiquement entr (figure 716). encore AA/MM/JJ...)

Figure 716
Un masque de saisie pour normaliser
et acclrer la saisie de donnes

Dans notre cas pratique, les champs DateNaissanceStagiaire et Tel-


Stagiaire comporteront un masque de saisie.

Interdire labsence de saisie


La proprit Null interdit, assez mal traduite en franais (son quivalent
anglophone doit tre quelque chose comme Null forbidden), va obliger
loprateur de saisie entrer une valeur pour le champ concern. Ici,
nous allons lappliquer aux champs NomStagiaire, PrenomStagiaire et
DateNaissanceStagiaire, mais pas au champ TelStagiaire (nous nobli-
geons pas le stagiaire nous communiquer son numro de tlphone).

OBSERVEZ La proprit Null interdit nest pas applique la cl primaire...

Vous remarquez que nous navons pas spcifi la proprit Null Interdit pour le champ cl
primaire de notre table des Stagiaires. Pourtant, en toute logique, un champ cl primaire
doit ncessairement avoir une valeur pour chaque enregistrement et donc ne pas accepter
quaucune valeur ny soit saisie...
Cest sans compter que dclarer un champ cl primaire dune table va automatiquement
entraner la proprit Null interdit. Il est donc inutile de le prciser !

Nous sommes maintenant prts crer notre premire table, en prenant


comme exemple la table des Stagiaires.

137
DExcel Access

Crer une nouvelle table


La mthodologie pratique de cration dune table vide dpend du logi-
ciel que vous utilisez :
Access 2007 : sous longlet Crer, groupe Table, slectionnez le
bouton Cration de table (figure 717).
Access 2003 : gauche de la fentre de la base de donnes, dans la
colonne Objets, cliquez sur Tables puis, dans la partie droite de cette
fentre, double-cliquez sur Crer une table en mode cration
(figure 718).
Figure 717
Crer une nouvelle table Base : dans la colonne Base de donnes, cliquez sur Tables puis, dans
sous Access 2007 (mode Cration) la zone Tches, sur Crer une table en mode bauche (figure 719).

Figure 718 Figure 719


Crer une nouvelle table sous Access 2003 (mode Cration) Crer une nouvelle table sous Base (mode bauche)

Cette manipulation ouvre une nouvelle table en mode Cration. Notez


que ce mode Cration est une appellation Access, Base utilisant le terme
bauche, et nous rserverons ce dernier aux explications spcifiques
Base ( chaque fois que le lecteur Base trouvera le terme Cration dans
les explications gnrales, il le traduira par bauche).
La table ainsi cre est une table vide. Il est recommande de lenregis-
trer tout de suite, soit en fermant la table, soit en lenregistrant. Dans
notre cas pratique, nous allons lappeler Stagiaires.
Il reste maintenant crer les champs de la table.

138
7 Oprations essentielles sur une base de donnes
Crer les champs dune table
On ne peut crer des champs dans une table quen louvrant en mode
Cration. Pour ouvrir une table en mode Cration :
sous Access 2007 : effectuez un clic droit sur la table slectionne, puis
slectionnez Mode cration dans le menu contextuel (figure 720) ;

Figure 720
Ouvrir un objet en mode Cration (Access 2007)

sous Access 2003 : slectionnez la table puis cliquez sur le bouton


Modifier (figure 721) ;
sous Base : slectionnez la table, puis cliquez sur le bouton diter
(figure 722).

Figure 721 Ouvrir un objet en mode Cration (Access 2003) Figure 722 Ouvrir un objet en mode bauche (Base)

139
DExcel Access

Lcran Cration de table permet de crer les champs de cette table avec
leurs proprits. Il fonctionne de la mme faon pour nos trois logiciels,
quelques nuances prs dordre esthtique. La figure 723 dtaille son
aspect pour Access 2007 :
La zone permet de dfinir, les uns au-dessous des autres, les diff-
rents champs de notre table avec leur nom, leur type (numrique,
alphabtique, liste de choix, etc) ainsi quune description facultative
qui apparatra comme aide la saisie ou comme libell dans un tat.



Figure 723
Lcran Cration de table permet
de fixer ses champs et leurs proprits.

La zone , en bas de lcran, permet de fixer les proprits de chaque


champ : nombre de caractres, type de format numrique, nombre de
dcimales, valeurs autorises dans une liste de choix, obligation ven-
tuelle de saisir une valeur pour ce champ, valeur par dfaut, etc.
La zone propose une aide contextuelle en fonction de la position
du pointeur.

Mthode gnrale de cration dun champ


Pour crer les champs de notre table, il faut ouvrir la table correspondante
en mode Cration puis suivre pour chaque champ les tapes suivantes :
1 Se placer dans la premire case disponible de la colonne Nom du
champ (zone de la figure 723).
2 Entrer le nom du champ.
3 Dans la colonne Type de donnes, choisir dans la liste droulante le
type souhait.
4 Entrer une description (facultatif ).

140
7 Oprations essentielles sur une base de donnes
5 Dans la zone Proprits du champ (zone figure 723), paramtrer
les options complmentaires du champ (format, masque de saisie,
liste de choix...).
Il ne faudra videmment pas oublier de dfinir une cl primaire.
Les sections ci dessous dtaillent ces oprations pour nos champs de la
table des Stagiaires.

Crer le champ cl primaire numrotation automatique


Toute table devant contenir une cl primaire, il est dusage de la crer tout
de suite comme premier champ. Comme nous lavons dj dit, il est trs
vivement conseill de le choisir numrotation automatique, le logiciel
grant alors lui-mme les valeurs du champ sans aucun risque de doublon.
Nous allons commencer par crer le champ, puis nous allons le dclarer
cl primaire de la table.

Crer un champ numrotation automatique


Voici comment crer un champ numrotation automatique, dans une
table en mode Cration (figure 725) :
1 Saisissez le nom du champ (ici, NumStagiaire) dans la premire cellule
disponible de la colonne Nom du champ.
2 Dfinissez son type (ici, NumroAuto) dans la liste droulante de la
colonne Type de donnes.
3 Entrez ventuellement une Description dans la colonne ddie ; nous ne
lavons pas fait dans ce cas particulier puisque le nom du champ est explicite.

BASE La proprit Numrotation automatique

Le type de champ NumroAuto nest pas disponible sous Base. Il faut choisir le type
Integer [ INTEGER ] (nombre entier) et slectionner Oui dans le champ Autovaleur de la
zone des proprits, en bas de fentre (figure 724) :

Figure 724 La cration dun champ numrotation automatique sous Base

141
DExcel Access

Figure 725
La cration dun champ
et les diffrents types de champs disponibles

La figure 725 liste les diffrents types de champs sous Access, en voici
le dtail :
Tableau 72 Les diffrents types de champs Access

Type Description
Texte Pour limiter la longueur du champ un certain nombre de caractres (pour limiter le volume des donnes de la
base)
Mmo Pour des champs alphabtiques de longueur illimite. Pratique pour un champ collectant des remarques ou
des commentaires dont on ne connat pas a priori la longueur. Le logiciel tend alors le taille du champ au fur
et mesure de la saisie, un peu comme un lastique. Inconvnient : ncessite beaucoup despace disque.
Numrique Pour des nombres purs. Pour des valeurs montaires, prfrez le type Montaire.
Date / Heure JJ/MM/AA, AA/MM/JJ, JJ/MM/AAAA, etc
Montaire utiliser pour les valeurs montaires
Oui / Non Pour des champs binaires (vrai ou faux), par exemple Mari?
Objet OLE Pour intgrer des feuilles de calcul, des documents, des images, des sons...
Lien hypertexte Pour insrer des liens hypertexte sur lesquels lutilisateur pourra cliquer
Pice jointe (*) Comme pour un courrier lectronique, permet de joindre par exemple une photo du stagiaire
Assistant liste de choix Pour obliger loprateur choisir dans les donnes dune autre table ou dune liste manuelle (par exemple
Clibataire, Mari(e), Divorc(e), veuf(ve))

(*) non disponible sous Access 2003


LENVERS Le bouton Cl primaire
sert aussi supprimer la cl primaire Dclarer un champ cl primaire
En cas derreur, par exemple si on sest tromp de Pour dfinir quun champ est une cl primaire de la table ouverte en mode
ligne, il est toujours possible dannuler laffecta- Cration, il suffit de slectionner le champ en cliquant dans la colonne
tion de la cl primaire sur un champ pour laffecter
un autre en suivant la procdure lenvers. Par
grise juste gauche du nom de ce champ (comme nous le ferions pour
contre, une fois que la relation entre table matre slectionner un ligne sous tableur) et de cliquer sur le bouton Cl primaire
et table esclave sera dfinie, il sera impossible (figure 726 pour Access 2007 et figure 727 pour Access 2003) ou bien
denlever la proprit cl primaire du champ con- de faire un clic droit puis choisir loption Cl primaire (Base).
cern, puisque cest justement ce champ qui sera
utilis dans la relation...

142
7 Oprations essentielles sur une base de donnes
Figure 726
Le bouton Cl primaire Access 2007

Figure 727
Le bouton Cl primaire Access 2003

La cl primaire est maintenant dfinie et symbolise par une cl stylise


juste ct du champ (figure 728). Notre table des Stagiaires com-
prend maintenant sa cl primaire NumeroStagiaire.

Figure 728
La cl dans la marge indique que le champ NumeroStagiaire
est cl primaire de la table Stagiaires.

Crer un champ ordinaire


Par champ ordinaire, il faut comprendre un champ qui nest pas cl pri-
maire.
Le mode opratoire pour crer un champ ordinaire est le suivant :
1 Saisissez le nom du champ dans la premire cellule disponible de la
colonne Nom du champ.
2 Dfinissez son type dans la liste droulante de la colonne Type de
donnes.
3 ventuellement entrez une Description dans la colonne ddie.
4 Dfinissez dans la partie basse de la fentre de cration de champ ses
Proprits.
Illustrons cette procdure au travers de la cration des autres champs de
la table Stagiaires.

143
DExcel Access

Crer un champ de type Texte


Pour crer un champ de type Texte, suivez les tapes dcrites ci-dessus en
slectionnant le type Texte lors de ltape 2.
Les proprits essentielles dun champ de type Texte sont Taille du
champ, Null interdit et Chane vide autorise.
Nous allons donc, dans notre cas pratique, crer successivement deux
champs NomStagiaire et PrenomStagiaire, de type Texte, de Taille du
champ respectivement 15 et 20 caractres et avec les proprits Null
interdit Oui et Chane vide autorise Non.

Tableau 73 Principales proprits dun champ de type Texte (Access)

Proprit Valeurs possibles Signification


Taille du champ Saisir la taille souhaite Limiter la taille dun champ Ville 10 caractres obligera, par exemple, saisir Aix
en Provence (15 lettres) comme Aix en Pce
Null interdit Oui Rend obligatoire une saisie pour le champ
Non Possibilit de ne rien saisir dans le champ
Chane vide autorise Oui Combin avec la proprit Null Interdit Oui, permet quand mme de saisir une
chane vide dans le champ (par exemple en saisissant un simple espace)
Non Combin avec Null interdit Oui, oblige saisir au moins un caractre qui ne soit
pas un espace

La figure 729 dtaille les proprits du champ NomStagiaire. Celles du


champ PrenomStagiaire sont identiques, lexception de Taille du champ
fixe 15.

BASE Champ de type Texte

La figure 730 donne les proprits dun champ de type Texte [VARCHAR]. Dans notre
exemple, le champ NomStagiaire est limit 20 caractres et la valeur du champ Saisie
requise est Oui.

Figure 729 Les proprits dun champ


de type Texte sous Access : 20 caractres,
Null interdit, Chane vide interdite

Figure 730 Les proprits dun champ Texte sous Base :


ici, Longueur 20 et Saisie obligatoire

144
7 Oprations essentielles sur une base de donnes
ATTENTION Texte ou Mmo ?

On peut hsiter pour un champ alphabtique entre les types Texte ou Mmo.
Un champ de type Texte, de longueur limite, peut tout de mme par dfaut aller jusqu
255 caractres, ce qui reste confortable.
Le type Mmo, vritablement lastique, sagrandit volont, mais est trs gourmand en
espace disque. Il est de plus dlicat grer dans un tat : il est beaucoup plus facile de
mettre en pages des champs de longueur constante.
Concrtement, pour un champ comme Nom ou Adresse, il est conseill dutiliser le type
Texte en le limitant respectivement par exemple 20 ou 50 caractres, ce qui prsente un
compromis quilibr entre volume et performance. Cela aura en plus lavantage dinter-
dire la saisie de noms ou dadresses rallonge , peu maniables dans la pratique.
Par contre, un champ de type Remarque ou Observation saccommode bien au type Mmo.

Crer un champ de type Date


Un champ de type Date/heure ne se gre videmment pas comme un
champ numrique, il faut utiliser le type spcifique ddi. Pour crer un
champ de type Date, suivez les tapes dcrites ci-dessus en slectionnant
le type Date/heure lors de ltape 2.
Les proprits principales dun champ Date/heure sont :
Le Format. Vous avez le choix entre diffrents types, JJ/MM/AA, ou
encore AA/MM/JJ et toutes ses variantes.
Le Masque de saisie pour faciliter la saisie des donnes. BASE Le format Date
La proprit Null interdit, qui doit tre fixe Oui si nous voulons Le type de champ date est disponible dans la liste
imprativement collecter cette information. droulante des types de champ. Le format cherch
(JJ/MM/AAAA) se trouve cach en bas de lcran
Concernant notre champ DateNaissanceStagiaire, nous avons choisi le dans la zone des proprits de champ sur la ligne
format Date, abrg avec Access. Exemple de format : il faut cliquer sur les poin-
tills ... pour accder la liste de choix des for-
Concernant la cration du masque de saisie, reportez-vous la section mats, vous y trouverez votre bonheur.
suivante.

Crer un masque de saisie sous Access


Un masque de saisie, rappelons-le, constitue une aide visuelle la saisie pour
la simplifier et la fluidifier. Il est systmatiquement utilis pour la saisie de
dates, de codes postaux, de codes SIREN, bref pour tout champ de longueur
et dapparence dfinie. Prcisons tout de suite pour les utilisateurs de Base
que leur logiciel nen propose pas, ce qui suit ne concerne donc quAccess.
Access dispose dune panoplie dassistants pour nous aider dans certaines
oprations. Nous verrons dans les chapitres concerns quil existe des assis-
tants pour crer des listes droulantes, des requtes, des tats, des formu-
laires. Leur utilisation permet, sans connatre le moindre mot du langage
utilis, de programmer des outils forts efficaces. Nous nous en servirons
sans retenue. Nous allons ici nous intresser lassistant Masque de saisie.

145
DExcel Access

ACCESS Installez les assistants

Access ninstalle pas par dfaut les assistants. Si vous ne les trouvez pas au cours de vos
manipulations sur Access, cest quils ne sont pas installs. Munissez-vous alors de votre
CD Access, relancez la procdure dinstallation et choisissez loption Ajouter ou sup-
primer des composants. Dans la liste des programmes, cliquez sur Access et choisissez
loption Tout excuter partir du disque dur (figure 731). Terminez linstallation,
tout devrait rentrer dans lordre.

Figure 731 Linstallation de toutes les options dAccess

Pour crer un masque de saisie, slectionnez le champ en mode Cration


de table. Dans la zone des proprits de champ, cliquez ensuite dans la
ligne Masque de saisie. Lancez enfin lassistant Masque de saisie en cli-
quant sur les pointills (...) lextrme droite de la ligne. Vous tes
dsormais sous le contrle de lassistant masque de saisie :
1 Le premier message vous prvient que la table doit tre enregistre pour
que lassistant puisse poursuivre. Si la table na pas t enregistre,
faites-le et passez ltape suivante (dans notre cas pratique, nous avons
appel la table Stagiaires). Sinon passez directement ltape suivante.
2 Le deuxime message propose une liste de choix. Slectionnez le
format souhait (dans notre cas pratique, pour le champ DateNais-
sanceStagiaire, nous avons choisi Date, abrg). Profitez-en pour
observer tous les formats disponibles.

146
7 Oprations essentielles sur une base de donnes
3 Le troisime cran propose de choisir lespace rserv, celui qui appa-
ratra dans le masque et qui sera remplac par la saisie de loprateur. Par
exemple, le caractre rserv _ affichera __/__/____, loprateur devant
remplacer les _ par des chiffres valides (par exemple le 29/03/1957) lors
de la saisie. Testez les diffrentes options dans la zone Essayer.
4 Fermez lassistant.
La figure 732 montre la fentre des proprits de champ pour notre champ
DateNaissanceStagiaire. Le masque est cr, son code est 00/00/0000;0;_ :
Dans la partie du code 00/00/0000 , les 8 0 vont obliger lopra-
teur saisir 8 nombres de 0 9.
Dans la partie du code 00/00/0000 , les / reprsentent les spa-
rateurs entre jour, mois et anne. Le code 00-00-0000 afficherait la
date sous la forme JJ-MM-AAAA
Dans la partie du code ;0 , le 0 signifie que les caractres de
sparation (ici /) seront stocks dans le champ DateNaissanceStagiaire
(la date de naissance sera alors par exemple stocke sous la forme 01/ COMPRENDRE Validation des donnes
Type du champ et Masque de saisie
01/2000). Lautre option est 1 : les sparateurs ne sont pas stocks,
ils napparaissent que lors de la saisie (la date est alors stocke sous la La validation des donnes se fait automatique-
ment partir du type de champ. Par exemple, il
forme 01012000, ce qui est beaucoup moins lisible). suffit de dterminer un champ de type Date pour
Dans la partie du code ;_ , le _ reprsente lespace rserv slec- que le SGBDR interdise la saisie de dates non
tionn dans lassistant, celui qui apparatra lors de la saisie en lieu et valides comme le 30/02/2000 ou le 34/11/2009. Le
place des caractres saisir. Lautre possibilit pour ce paramtre est masque de saisie ne fait que simplifier la saisie en
offrant loprateur une aide visuelle.
le caractre # .

Figure 732
Un champ de type Date de format Abrg
avec un masque de saisie

147
DExcel Access

TESTEZ Essayer tous les masques de saisie de lassistant

Lassistant Masque de saisie propose la plupart des masques dont vous pouvez avoir
besoin : numro de tlphone, numro de SIRET, numro de scurit sociale, ISBN,
numro de carte bleue, heure et date. Il est videmment possible de crer ses propres
masques de saisie. Le tableau ci dessous rsume les principales possibits. Par exemple,
le masque (0) AA-AA-AA-AA autorise la saisie de (1) 55-55-TE-LE.

Tableau 74 Principaux caractres gnriques disponibles pour un masque de saisie (Access)

Caractre Signification
0 Chiffre (0 9, entre obligatoire, signes plus (+) et moins (-) non accepts)
9 Chiffre ou espace (entre facultative, signes plus et moins non accepts)
# Chiffre ou espace (entre facultative, positions vides converties en espaces en mode dition,
mais les espaces sont effacs lors de la sauvegarde des donnes, signes plus et moins accepts)
L Lettre (A Z, entre obligatoire)
? Lettre (A Z, entre facultative)
A Lettre ou chiffre (entre obligatoire)
a Lettre ou chiffre (entre facultative)
& Caractre quelconque ou espace (entre obligatoire)
C Caractre quelconque ou espace (entre facultative)

Crer un champ de type tlphone


SOS Noubliez pas la possibilit Un champ devant contenir un numro de tlphone nest bien videmment
de tlcharger les exercices pas un simple champ numrique. Il se cre diffremment selon le logiciel
Si vous navez pas russi programmer votre table, que vous utilisez, essentiellement en lui adjoignant un masque de saisie.
ou si vous souhaitez simplement vrifier votre tra-
vail, nous vous rappelons que vous pouvez tl-
Avec Access, lassistant Masque de saisie que lon va employer ne fonc-
charger les exercices sur la fiche de ce livre sur le tionne quavec les champs de type Texte. Il va donc falloir procder
site des ditions Eyrolles. comme suit, aprs avoir ouvert la table concerne en mode Cration :
B www.editions-eyrolles.com
1 Saisissez le nom du champ dans la premire cellule disponible de la
colonne Nom du champ.
2 Choisissez le type Texte dans la liste droulante de la colonne Type de
donnes.
3 ventuellement, entrez une Description dans la colonne ddie.
4 Dans la zone des Proprits de champ, lancez lassistant Masque de
saisie et choisissez, dans lcran de slection des masques, le type
Numro de tlphone (figure 733).
5 Fixez la proprit Null interdit Oui ou Non (Oui dans notre cas pratique).

148
7 Oprations essentielles sur une base de donnes
Figure 733
Le choix du masque de saisie ddi
un numro de tlphone

Avec Base, labsence de possibilit de paramtrage de masque de saisie


complique un peu le problme :
Si vous choisissez un champ de type Numrique, le numro de tl-
phone sera trait comme un nombre. Par exemple, 04 99 99 99 99
sera trait comme le nombre 499 999 999. Ce qui nest pas idal...
Si vous choisissez le type Texte (limit 10 caractres), rien ne pourra
empcher les erreurs de saisie comme lomission dun chiffre ou la
saisie de lettres.
Les explications ci-dessus devraient suffire pour vous guider dans la
cration de la premire table de notre cas pratique, la table des Sta-
giaires. Le tableau qui suit rcapitule les principales caractristiques
(type et proprits) de ses champs :
Tableau 75 Caractristiques des champs de la table des Stagiaires

Nom Type Proprits


Cl primaire Longueur Null interdit Chane vide Format Masque de saisie
autorise
NumeroStagiaire NumroAuto Oui
NomStagiaire Texte Non 20 Oui Non
PrenomStagiaire Texte Non 15 Oui Non
DateNaissanceStagiaire Date Non Oui Date abrge JJ/MM/AAAA
TelStagiaire Texte Non Non __ __ __ __ __

149
DExcel Access

Crer une table par importation de donnes


Il est frquent dimporter sous Access ou Base des donnes dj prpa-
res sous un autre logiciel, en particulier un tableur. Cela prsente
lnorme avantage de rcuprer ventuellement un volume important de
donnes sans rien avoir resaisir. Par exemple, il est possible dimporter
le fichier de notre socit de matriel dalpinisme de la partie Liste de
donnes de ce livre, ou encore notre carnet dadresses Outlook.
Il est galement possible, ainsi que nous le verrons, dimporter par une
procdure trs semblable des objets (tables, requtes, formulaires ou
tats) provenant dautres bases de donnes.

Caractristiques des donnes importer


Prenons lexemple le plus courant dimportation de donnes provenant
dun tableur (Excel ou Calc). Pour ne pas poser de difficults lors de leur
importation, les donnes doivent se prsenter conformment aux cinq
rgles de liste de donnes, voir pages 20 23 :
les noms de champ en premire ligne ;
les enregistrements les uns sous les autres ;
ni ligne ni colonne vierge ;
pas de formule ;
pas de mise en forme inutile.
De plus, un champ (ou une colonne) doit prsenter les caractristiques
ncessaires (ne pas avoir de doublon) pour pouvoir tre utilis comme cl
primaire de la future table sous SGBDR. Si le tableau nen possde pas,
il est trs vivement recommand dinsrer en premire colonne un
champ Numero avec les valeurs 1, 2, 3 etc. Limportation sera plus facile.
La procdure dimportation des donnes ou dobjets tant diffrente
sous Access et Base, nous aborderons ces deux logiciels sparment.

Importer des donnes externes dans une table Access


Access propose des assistants trs bien conus pour importer dans une
base existante ou nouvelle des donnes en provenance des principaux
logiciels du march. Nous exprimenterons quant nous limportation
de donnes en provenance de classeurs Excel ou dautres bases Access.
Avec Access 2007, lancez lassistant dimportation en cliquant sur le
bouton Excel que vous trouverez dans longlet Donnes externes, groupe
Importer.

150
7 Oprations essentielles sur une base de donnes
ACCESS 2003 Lancer lassistant Importation de feuille de calcul
Lassistant Importation se lance par le menu Fichier, options Donnes externes puis
Importer. Slectionnez ensuite le type de fichier Excel dans la liste droulante, figure 734.

Figure 734 Ce choix permettra dimporter sous Access 2003 des donnes dun classeur Excel.

Voici comment utiliser cet assistant :


1 Slectionnez la source et la destination des donnes : recherchez le
classeur importer et spcifiez loption dimportation (importation
unique ou avec lien dynamique). Loption Importation dynamique va
crer un lien entre le fichier source et sa rsultante sous Access : toute
modification ultrieure des donnes sous Excel va se rpercuter dans
la table rsultante sous Access, ce qui est plutt dconseill si on nest
pas un expert (figure 735).

Figure 735
La feuille de calcul peut tre importe
statiquement (option choisie ici)
ou dynamiquement

151
DExcel Access

2 Spcifiez ventuellement la feuille ou les plages importer (figure 736).

Figure 736
Les diffrentes feuilles et plages
o sont prsentes des donnes dans
le classeur source apparaissent ici

3 Spcifiez les en-ttes de colonne (qui deviendront les noms de


champs). Normalement, la case Premire ligne contient les en-ttes de
colonne est coche, corrigez sinon (figure 737).

Figure 737
Bien vrifier quAccess comprend
que la premire ligne du classeur source
contient les noms de champ

4 Spcifiez des informations sur les champs importer. partir du


moment o vos donnes Excel se prsentent comme des donnes
importables , cet cran est inutile. Faites directement Suivant.
5 Spcifiez la cl primaire : spcifier ici le champ cl primaire de la liste
Excel, figure 738. Mme si Access propose de ne pas crer de cl
primaire, il ne faut pas suivre son conseil, puisque nous savons que
toute table doit contenir une cl primaire. La crer tout de suite pr-
sente lavantage de ne pas avoir la crer plus tard.

152
7 Oprations essentielles sur une base de donnes
Figure 738
Utiliser comme cl primaire de la future table
la cl primaire de la liste de donnes source (recommand )

6 Nommez la table dimportation et, ventuellement, demandez lana-


lyse de la structure de la table par lAssistant (mais les analyses four-
nies ne servent pas grand chose).
7 Cliquez sur Terminer.
Si tout sest bien pass, Access affiche un message de confirmation. Il
suffit douvrir la table, de vrifier les donnes et de paramtrer les pro-
prits des champs.

TRUC Les difficults dimportation

Lexprience prouve que les soucis lors de limportation de donnes Excel proviennent
presque toujours dune liste de donnes dorigine non conforme (voir pages 20 23) ou
bien de labsence de cl primaire dans cette liste. En cas derreur dimportation, il faut rec-
tifier la liste de donnes source et recommencer zro.

Importer dautres objets Access


Ce nest pas la moindre qualit dAccess que de permettre de transfrer
trs facilement tout type dobjet (table, requte, formulaire ou tat) de
base en base. Ce type doption permet ainsi de prendre une requte par-
ticulire, de la modifier et de la tester tranquillement dans une base
dessai, puis de la rimporter dans la base dorigine :
1 Faites une copie de la base dexploitation.
2 Passez et testez vos modifications sur la copie.
3 Aprs avoir valid ces modifications sur la base copie, il ne reste plus
qu importer dans la base dexploitation les objets nouveaux ou
modifis de la base copie.

153
DExcel Access

ACCESS 2003 Lancer lassistant Voici comment procder pour importer dans une base des objets dune
Importation Access 2003 autre base :
Il faudra slectionner Access dans la zone du 1 Lancez lassistant en cliquant dans longlet Donnes externes, groupe
Type de fichiers sur la figure 734. Importer sur le bouton Access.
2 Slectionnez la source et la destination des donnes : recherchez la base
importer et spcifiez loption dimportation (importation unique ou
avec lien dynamique entre les deux bases).
La bote de dialogue de la figure 739 permet alors de slectionner trs
prcisment les objets importer. Dans lexemple, les trois tables Activites,
Guides et Stagiaires seront importes. Remarquez aussi que rien
nempche, si ncessaire, de slectionner successivement sur la figure 739
plusieurs objets de type diffrent dans les diffrents onglets disponibles, et
de les importer en une seule fois en cliquant sur OK.

Figure 739
Cliquer sur OK importera les trois tables
surlignes de la base source dans la base cible.

ALLER PLUS LOIN Les options dimportation dobjets dans Access

Cliquer sur le bouton Options >> de la figure 739 ouvre de bien intressantes possibi-
lits (figure 740) :
Importer (ou non) les relations avec les tables.
Importer toute la table (structure et donnes) ou uniquement la structure.
Importer les requtes comme des requtes (cest--dire comme un programme) ou
comme une table (vous rcuprerez alors le contenu de la requte source).

Figure 740 Les options dimportation des objets dAccess en Access

154
7 Oprations essentielles sur une base de donnes
Importer des donnes et des programmes sous Base
Sil permet globalement les mmes oprations que son quivalent Access
(importation de feuilles de calcul, ou dobjets dun SGBDR), lassistant TRUC
Importer la structure dobjets dune
dimportation de donnes Base est moins pratique dutilisation et, en parti-
autre base dans une base existante
culier, nautorise les importations que lors de la cration dune nouvelle base.
Il suffit de copier le code SQL (page 256) de lobjet
louverture de Base, il suffit de choisir, la place des options Crer une concern dans la base source et de le coller dans le
base de donnes ou Ouvre un fichier existant, loption Se connecter une mode SQL du nouvel objet cible de la base cible.
base de donnes existante et de slectionner dans la liste droulante le Bien videmment, cette manipulation ne copie pas
les donnes.
type de fichier importer (en particulier Access, Tableur ou Carnet
dadresses), comme dans la figure 741.
Les tapes ultrieures de limportation (o il vous sera notamment
demand de slectionner le fichier importer) sont trs simples et ne
ncessitent pas dexplication particulire.

Figure 741
Ce paramtrage permettra dimporter dans Base
les donnes dune feuille de calcul (Excel ou Calc).

PRODUCTIVIT Importer son carnet dadresses Outlook ou Thunderbird


dans Access ou Base

Il est possible dintgrer directement dans votre SGBDR favori votre carnet dadresse :
Avec Access 2007 en slectionnant loutil Plus (onglet Donnes externes, groupe
Importer) puis loption Outlook.
Avec Access 2003 en slectionnant le type Outlook dans la figure 734.
Avec Base en slectionnant Carnet dadresses dans la figure 741.

155
DExcel Access

Modifier la table rsultante aprs importation


Une table correctement structure comprend des champs (avec un type et
des proprits) et des enregistrements. Limport de donnes externes nous
fournira les enregistrements et les champs, mais ces derniers ne comporte-
ront ni type, ni proprits, il faudra donc paramtrer manuellement.
Tous les lments de programmation spcifiques aux champs de tables
sous SGBDR (dont le Type de donnes, le Format, le Masque de saisie,
Null interdit, etc.) ntaient pas grs sous le tableur et ne le seront pas
plus dans la table rsultante. Il faut donc, aprs importation, ouvrir la
table en mode Cration et, champ aprs champ, paramtrer ces diffrents
lments. Par exemple, si le fichier Excel contenait un champ Date il
faudrait, dans la table rsultante, fixer le type de champ Date/heure,
spcifier son format et enfin paramtrer un masque de saisie.

Manipuler les objets dune base de donnes


Nous venons de crer notre premier objet de base de donnes, en loccu-
rence la table des Stagiaires. Nous avons utilis cet effet le mode Cration.
Mais cette table, ainsi que tous les autres types dobjets comme les for-
mulaires, les requtes et les tats/rapports, peut galement souvrir en
mode Contenu.
Quest-ce qui diffrencie ces deux modes, comment choisir le mode
adapt ce que lon souhaite faire et comment basculer dun mode
lautre ? Cest lobjet de cette section.

Comprendre lutilit des deux modes daffichage dun


objet
Le mode Cration permet de voir comment lobjet a t programm. La
figure 742 montre une table en mode Cration : les champs y sont lists
les uns sous les autres avec, de gauche droite, leur nom, leur type (num-
rique, liste de choix, date, etc) et une ventuelle description. Ce mode
permet dagir sur le programme dun objet (ajouter un champ une table,
modifier les proprits dun champ, ajouter un champ un formulaire...).
Il faudra par contre employer le mode Contenu pour visualiser les enre-
gistrements dune table, voir le dtail dun enregistrement pour un for-
mulaire, visualiser le rsultat dune requte ou encore afficher le rsultat
dun tat. La figure 743 montre une table en mode Contenu. Ce mode
va aussi permettre de modifier, supprimer ou ajouter des enregistrements
pour une table ou un formulaire.

156
7 Oprations essentielles sur une base de donnes
Figure 742
Une table en mode Cration.
Les champs sont lists en colonne.
Le premier champ est signal
par licne Cl primaire. Les enregis-
trements (le contenu de la table)
sont invisibles.

Figure 743
La table de la figure 742 en mode
Contenu. Les champs sont maintenant
cte cte, et les diffrents enregis-
trement les uns au dessous des autres.
Les caractristiques des champs
sont invisibles.

TERMINOLOGIE Le mode Contenu

Inutile de chercher le mode Contenu dans la lexicologie officielle dAccess ou de Base. Ce mode
daffichage porte en effet des noms diffrents selon le type dobjet concern avec Access (par
exemple Feuille de donnes pour une table et Visualisation pour un tat, ce qui complique
srieusement les choses). Quand Base, il ne donne mme pas de nom ce mode particulier.
Par souci de simplification et de gnralisation, nous utiliserons toujours le terme Contenu (par
opposition au terme Cration) pour dsigner le mode qui permet de voir les enregistrement
dune table, le contenu dun formulaire et les rsultats dune requte ou dun tat/rapport.

157
DExcel Access

Ouvrir un objet directement dans le mode adquat


Le tableau ci-dessous rsume les principales tches que vous pouvez tre
amen effectuer sur un objet de base de donnes, le mode douverture
de lobjet adquat et la manire de procder.

Figure 744
Double-cliquer sur la table Stagiaires louvre
en mode Contenu (Access 2007). Remarquez
que la famille Tables est slectionne dans le
volet de navigation.

Tableau 76 Dans quel mode et comment ouvrir un objet de base de donnes relationnelle

Si lon veut... Il faut ouvrir lobjet correspon- De la faon suivante...


dant en mode...
Consulter, ajouter, supprimer ou modifier des enregistre- Contenu Double-cliquer directement sur le nom de
ments dune table ou dun formulaire lobjet dans le volet de navigation comme sur
Visualiser les rsultats dune requte ou dun tat/rapport la figure 744

Modifier la structure dune table, dun formulaire, dune Cration (bauche pour Base) Avec Access 2007 : faites un clic droit sur
requte ou dun tat/rapport lobjet slectionn, puis slectionnez Mode
cration dans le menu contextuel
Avec Access 2003 : slectionnez lobjet, puis
double-cliquez sur le bouton Modifier
Avec Base : slectionner lobjet, puis cliquez
sur le bouton diter dans la barre doutils

Basculer dun mode daffichage lautre


Lors du dveloppement dune base de donnes, il est frquent davoir
basculer dun type daffichage lautre. Par exemple, pour crer une
requte, il faut commencer par ouvrir la base en mode Cration pour
agir sur son contenu. Le mode Contenu permet ensuite de visualiser le
rsultat puis, si ncessaire, on repart en mode Cration pour modifier
ventuellement tel ou tel dtail de son programme, et ainsi de suite.
Sous Access, le mme bouton sert changer de mode daffichage
(figures 7-46 et 7-47). Il change daspect chaque fois mais se trouve
toujours la mme place, lextrme gauche de la barre doutils.

Figure 745
Basculer du mode Cration au mode Contenu
(Access 2007)

158
7 Oprations essentielles sur une base de donnes
Figure 746
Basculer du mode Contenu au mode Cration
(Access 2007)

Avec Base, il nest pas possible de basculer dun mode daffichage lautre.
Il faut chaque fois fermer lobjet puis le rouvrir dans lautre mode.

Fermer, supprimer et copier un objet


Pour fermer un objet ouvert soit en mode Cration, soit en mode
Contenu :
sous Access 2007, effectuez un clic droit sur longlet de lobjet, puis
slectionnez Fermer.
sous Access 2003 (figure 747), utilisez le bouton de fermeture de la
fentre de lobjet (et non de la base).
sous Base, utilisez le bouton de fermeture de la fentre.

Figure 747
Le bouton de fermeture de la fentre de lobjet
(Access 2003)

Supprimer un objet se fait trs (trop ?) facilement. Il suffit de slec-


tionner lobjet dans le volet de navigation puis, par un clic droit, de
choisir loption Supprimer. Attention, contrairement ce qui se passe
quand vous supprimez du texte dans un traitement de texte ou un
colonne dans un tableur, une suppression dobjet de champ (et mme
denregistrement, ainsi que nous le verrons) est toujours dfinitive. Il ne
sera jamais possible de revenir en arrire avec le bouton Annuler. Ne sup-
primez donc un objet ou enregistrement quaprs mre rflexion...

159
DExcel Access

ATTENTION Une seule base de donnes Il est trs frquent dans un SGBDR davoir crer, dans la mme base,
et un seul objet la fois des objets semblables. Dans notre cole dalpinisme, par exemple, nous
Avec Access et Base, il nest pas possible
serons amens construire des requtes pour lister les participants aux
douvrir deux bases de donnes en mme temps diffrentes activits. Ces requtes auront une structure trs proche les
(sauf ouvrir deux fois le logiciel, ce que nous unes des autres. Aussi sera-t-il plus facile den crer une et de lutiliser
ne saurions vous conseiller, une base de donne comme modle pour les autres. Pour copier un objet, par exemple une
est assez complique pour ne pas se sentir
oblig de jongler sur deux bases la fois).
requte, slectionnez-le dans le volet de navigation, copiez-le avec le rac-
Par contre, certains peuvent tre tents douvrir courci clavier Ctrl+C, collez-le avec Ctrl+V puis renommez-le.
dans la mme base plusieurs objets simultan-
ment. Cest notre avis une mauvaise pratique,
pour la raison expose prcdemment : un objet
la fois, cest bien assez. Ce sera mme parfois
obligatoire : vous constaterez par exemple quen
Synthse : oprations essentielles sur une
travaillant sur une requte en mode Cration,
vous ne pourrez pas y insrer un champ dune base de donnes
table si cette dernire est ouverte, que cela soit
en mode Cration ou en mode Contenu. Les toutes premires oprations que nous venons de raliser sur les bases
de donnes montrent bien les spcificits du fonctionnement des
SGBDR, tant sur le plan de la cration dune base de donnes vierge que
sur celui de louverture dune base existante ou encore la cration dune
nouvelle table dans une base.
Vous aviez lhabitude de travailler sur un nouveau document tableur ou
traitement de texte sans ncessairement lenregistrer tout de suite ? Un
SGBDR ne lentend pas de cette oreille : vous devrez apprendre
nommer et enregistrer toute nouvelle base de donnes avant mme de
commencer y programmer quoi que ce soit.
Si vous travaillez avec Access, la gestion des problmes de scurit va de
plus vous obliger, si vous voulez viter des manipulations assez aga-
antes, crer un rpertoire spcifique scuris dans lequel vous stoc-
kerez vos bases de donnes.
Les surprises ne sarrtent pas l ! Mme lcran daccueil dune base de
donnes Access ou Base, avec son volet de navigation (qui regroupe les
diffrents types dobjets que sont les tables, les requtes, les formulaires
et les tats/rapports) et son volet daffichage, droute lutilisateur habitu
un document texte ou une feuille de calcul.
Enfin, la cration dune table, de ses champs et dune cl primaire en
mode Cration/bauche ncessite ordre, mthode et structure :
Pour chaque champ dune table, il faut dfinir son nom en respectant
les rgles de graphie conseilles (NomDuChamp et pas Nom du
champ), dfinir son type (texte, numrique, numro automatique,
date/heure, oui/non, liste de choix, etc), lui attribuer ventuellement
une description et, enfin, dfinir ses proprits.

160
7 Oprations essentielles sur une base de donnes
Les principales proprits dun champ sont le format (nombre de
dcimales, format de date JJ/MM/AAAA, etc), les ventuels mas-
ques de saisie (numro de tlphone, JJ/MM/AAAA, etc), la valeur
par dfaut, la proprit Null interdit qui oblige ou non la saisie de
donnes et enfin la proprit Chane vide autorise pour autoriser ou
non la saisie du caractre (espace).
Un des champs de la table doit ncessairement tre dclar cl pri-
maire de la table. Il est conseill dutiliser un champ de type Numro
automatique pour cela.
Peut-tre pour contrebalancer ces incontestables (mais invitables) lour-
deurs, Access et Base communiquent trs bien avec dautres univers. Si
vous disposez par exemple de donnes toutes prtes sous un traitement de
texte ou sous un tableur, vous pouvez les importer trs simplement dans
une table dune base de donnes afin de bnficier de leur puissance de
traitement et danalyse. Cest mme possible avec votre carnet dadresses !
Nous voici prts maintenant crer dautres tables avec de nouvelles
caractristiques, et poursuivre la construction de notre base de donnes
relationnelle.
Le tableau ci-dessous rsume enfin les principales manipulations con-
natre pour manipuler les objets dune base de donnes.
Tableau 77 Les principales manipulations dobjets (table, requte, formulaire ou tat/rapport)

Pour : Access 2007 Access 2003 Base


Ouvrir un objet en mode Contenu Double-clic Double-clic Double-clic
Ouvrir un objet en mode Cration Clic droit, et slectionner Mode Bouton Modifier Bouton diter
ou bauche Cration
Basculer dun mode lautre Bouton en haut gauche du ruban Bouton en haut gauche de la Fermer et rouvrir
barre doutils
Renommer un objet viter.
Copier un objet Pour duplication. Par Ctrl+C et Ctrl+V.
Supprimer un objet Bien rflchir : aucune rcupration possible, toute suppression est dfinitive

161
chapitre 8
tablir les relations
entre les tables

SOMMAIRE
B Crer toutes les tables
de notre cas pratique
Nous allons ici apprendre crer dautres tables et les lier
entre elles par un rseau de relations ; nous obtiendrons ainsi B tablir les relations
par liste de choix avec Access
une structure de base de donnes conforme notre schma
B Paramtrer la fentre
rel, enfin prte recevoir des donnes. des relations avec Access
B tablir les relations avec Base
B Rsoudre les difficults lies
au paramtrage des relations

MOTS-CLS
B Liste de choix manuelle
B Valeur par dfaut
B Cl primaire et cl trangre
B Relation entre table matre et
table esclave
B Fentre des relations
B Intgrit rfrentielle
DExcel Access

Une base de donnes relationnelle se dfinit par lexistence de tables


relies entre elles par un rseau de relations. Nous avons trait dans le
chapitre 6 des mthodes de modlisation permettant dtablir, au travers
dun schma rel, le dessin logique de larticulation de ces tables et des
relations qui les unissent. Dans le chapitre 7 nous avons dcrit les opra-
tions ncessaires la cration de tables.
Aprs un retour en arrire sur un point particulier de notre cas pratique
dcole dalpinisme, nous allons aborder ltablissement des relations
entre les tables.
Ce chapitre est absolument essentiel. Pour prendre une image, on peut
comparer la construction dune base de donnes celle dune maison : la
phase de modlisation constitue les fondations, les tables les murs, et les
relations la toiture. Tout le reste, formulaires, requtes et tats ne consti-
tueront que la dcoration et les amnagements intrieurs : non quil
soient inutiles, loin de l : on ne peut pas vivre dans les parpaings. Mais
on ne pose pas de papier peint dans une maison ouverte tous vents.

Crer toutes les tables de notre cas


pratique
Nous ne pourrons bien tablir les relations entre nos tables quaprs les
avoir toutes cres. Nous navons actuellement cr que la table Sta-
giaires. Selon le schma rel de la figure 81, nous devrions encore crer
trois tables (Inscriptions, Activites et Guides).

Stagiaires Inscriptions Activites Guides


Num stagiaire Date inscript. Nom acvite Num guide
Nom Num stagiaire Num guide Nom
Figure 81 Prnom Nom acvit Prenom
Date naissance Bureau guides
Le schma rel de notre cas pratique Tlphone
avec ses quatre tables

Pourtant, une analyse approfondie des hypothses de dpart amne


revenir sur un lment important recueilli dans le cahier des charges :
lappartenance des guides un bureau des guides !
Rparer cet oubli oblige reformuler la phrase cl de notre cas pratique :
les stagiaires sinscrivent des activits encadres par des guides qui
appartiennent un bureau des guides . La partie en italique de cette nou-
velle formulation amne donc proposer un nouveau schma thorique
(figure 82) et un nouveau schma rel (figure 83). Il faudrait ainsi
rajouter une nouvelle table BureauxGuides notre base.

164
8 tablir les relations entre les tables
Figure 82
La contrainte due au bureau des guides
implique un schma thorique plus complexe,
avec lajout dun cercle (Appartiennent )
et dun rectangle (Bureau des guides)

Stagiaires Inscriptions Activites Guides


Num stagiaire Date inscript. Nom acvite Num guide
Nom Num stagiaire Num guide Nom
Prenom Nom acvite Prenom
Date naissance Bureau guides
Telephone

BureauxGuides
BureauGuides
Figure 83
La contrainte due au bureau des guides
impliquerait la cration dune table
supplmentaire

Cette nouveaut naura en fait pas de consquence pour les utilisateurs


dAccess (cest dailleurs pour cette raison que nous nen avons pas parl
jusqu prsent). Ce logiciel dispose en effet comme nous le verrons
(page 171) de loption Liste de choix manuelle qui nous vitera de crer la
table BureauxGuides. Mais ce nest quune particularit technique. Le
vritable schma rel est bien celui de la figure 83, et ce nest que grce
une technique particulire disponible sous Access et non sous Base que
la table des BureauxGuides pourra tre omise. Par consquent, dans
notre cas pratique :
Sous Access, le schma rel programmer sera le schma rel dori-
gine (figure 81) avec quatre tables (Stagiaires, Inscriptions, Activites
et Guides) ;
Sous Base, le schma rel programmer sera le schma rel modifi
de la figure 83 avec cinq tables (Stagiaires, Inscriptions, Activites,
Guides et BureauxGuides).

165
DExcel Access

AVANT-PREMIRE La liste de choix

La liste de choix permet dimposer loprateur de saisie lutilisation dun terme choisi
dans le champ correspondant dune autre table. Par exemple, dans la table Activites, nous
pourrons choisir pour le champ NumeroGuide les valeurs correspondantes du mme
champ de la table Guides. La liste de choix stablit donc entre une table esclave (ici, Acti-
vites) et sa table matre (ici, Guides). Lorsque la table matre est mise jour, la liste de
choix lest galement : ds quun enregistrement est ajout dans la table matre, il est dis-
ponible dans la liste droulante pour le champ correspondant de la table esclave.
Une liste de choix manuelle ne requiert pas lexistence dune table matre. Les valeurs de
ce type de listes sont saisies directement dans les proprits du champ (par exemple Cha-
monix, Argentire et Les Houches pour notre champ BureauGuides).

Reste maintenant dfinir dans notre cas pratique les champs qui vont
nous permettre dtablir les relations entre les tables de notre cole
dalpinisme. Nous nous souvenons quon cre une relation entre une
table esclave et une table matre en rappelant dans la table esclave (sous
forme de cl secondaire) le champ cl primaire de la table matre, ces
deux champs devant bien videmment avoir le mme nom.
Le tableau ci-dessous rsume lapplication de ce principe pour toutes les
tables de notre cas pratique :
Tableau 81 Champs insrer pour crer les relations de notre cas pratique

Dans la table des Il faut insrer sous forme Correspondant au champ Cl primaire de la table des
de cl trangre le champ
Inscriptions NumeroStagiaire NumeroStagiaire Stagiaires
NomActivite NomActivite Activites
Activites NumeroGuide NumeroGuide Guides
Guides (*) BureauGuide (*) BureauGuide (*) BureauxGuides (*)

(*) Uniquement pour Base


Nous sommes maintenant prts crer toutes les autres tables de notre
cas pratique. Puisquon ne peut crer les tables dans nimporte quel ordre
(il faut en effet respecter la hirarchie matre/esclave, voir page 134),
nous vous proposons de crer successivement les tables Guides, Activites
et Inscriptions (et galement BureauxGuides, uniquement pour les utili-
sateurs de Base).
Ouvrez donc, si ce nest dj fait, la base de lcole dalpinisme sur votre
ordinateur et, pour chaque table liste ci-dessous, crez une nouvelle
table en mode Cration et insrez-y les champs proposs.

166
8 tablir les relations entre les tables
Crer la table des Guides
Le tableau ci-dessous liste les champs de cette table Guides :
Tableau 82 Table Guides: dtail des caractristiques des champs crer

Nom du champ Type Format Autres caractristiques


NumeroGuide Numro automatique NA Cl primaire
NomGuide Texte Limit 20 caractres Null interdit Oui
PrenomGuide Texte Limit 15 caractres Null interdit Oui
BureauGuides Texte Limit 11 caractres (le nom de Null interdit Oui
bureau le plus long est "Les Hou-
ches")

Le champ NumeroGuide possde exactement les mmes caractristi-


ques (type Numro automatique et cl primaire) que le champ Nume-
roStagiaire de la table des Stagiaires du chapitre prcdent. Les champs
NomGuide et PrenomGuide sont galement semblables leurs quiva-
lents de cette mme table. Rappellons que la proprit Null interdit Oui
obligera loprateur saisir une valeur pour le champ considr.
La figure 84 dtaille cette table Guide en mode Cration sous
Access 2007.

Figure 84
La table des Guides en mode Cration

PRODUCTIVIT Crer la table des Guides par copie de celle des Stagiaires

Nous avons voqu la possibilit de crer un objet partir dun autre objet par copier/
coller puis modification de la copie. Cette manipulation est surtout intressante avec des
requtes et des tats, mais elle peut aussi rendre service avec des tables. Nous remar-
quons dans cet exercice que la table des Guides est assez semblable dans sa structure
celle des Stagiaires (numro, nom, prnom). Pour la crer partir de celle des Stagiaires,
voici comment nous aurions d procder :
1. Copier/coller la table des Stagiaires, la renommer ;
2. Modifier les noms des champs Numero, Nom et Prenom ;
3. Crer le champ BureauGuides ;
4. Supprimer le champ TelStagiaire.
Cest avec lexprience que vous saurez quelle mthode est la plus pratique.

167
DExcel Access

Crer la table des Activites


RAPPEL Il est inutile de paramtrer La table des Activites est fort simple, puisqu part le champ Numero-
les proprits dune cl primaire Guide, elle ne comporte que le champ NomActivite. Chaque activit ayant
Les caractristiques dune cl primaire sont un nom unique (sinon les stagiaires risqueraient de se tromper de cours), ce
telles que, par dfaut, les proprits Null interdit champ ne comportera pas de doublon. Il constituera donc une excellente
et Sans doublon sont paramtres Oui (mme cl primaire. La figure 85 dtaille cette table en mode Cration.
si laffichage des proprits du champ semblent
prouver le contraire). Il suffit donc de cliquer sur Attention quand mme. Nous dcidons dutiliser le champ NomActivite
licne Cl primaire pour affecter cette carac- comme cl primaire uniquement parce que nous savons que jamais deux
tristique et toutes ses proprits un champ. activits nauront le mme nom. Cest un cas particulier. De manire
gnrale, il vaut mieux opter comme cl primaire pour un champ de type
numrotation automatique ainsi que nous lavons vu.

Figure 85
La table Activites en mode Cration sous
Access 2003. Remarquez que le champ
NumeroGuide est de type Numrique.

Crer la table des Inscriptions


La table des Inscriptions doit comporter trois champs, un champ cl pri-
maire, (DateInscription), et deux champs cl trangre (NumeroSta-
giaire pour crer la relation avec la table des Stagiaires et NomActivite
pour crer la relation avec la table des Activites).

Figure 86
La table Inscriptions en mode Cration.
Remarquez la cl primaire, le format Date,
gnral (JJ/MM/AAAA HH:MM:SS)
et la valeur par dfaut =Maintenant()

168
8 tablir les relations entre les tables
Le champ DateInscription ncessite quelques remarques. Nous pourrions A RESSEMBLE EXCEL
fort bien crer sa place un champ NumeroInscription, cl primaire avec Les fonctions intgres dAccess
une numrotation automatique. Nous avons choisi dutiliser de faire ressemblent leurs quivalents Excel
mieux. Nous allons crer ce champ DateInscription, qui va stocker la date Access comme Excel possde des fonctions int-
et lheure ( la seconde prs) de la saisie de linscription. Lcole ne poss- gres, comme la fonction Maintenant(). Elles ont
souvent le mme nom dans les deux logiciels, mais
dant quun seul ordinateur, aucune inscription ne pourra tre saisie la
pas toujours... Par exemple, comme nous le ver-
seconde prs la mme date quune autre inscription, et ce champ fera en rons page 298, la clbrissime fonction Excel SI()
plus une excellente cl primaire. Nous allons utiliser cet effet une fonc- permettant des tests conditionnels SI... ALORS...
tion intgre dAccess, la fonction Maintenant(), qui va rappeler la date et SINON... a pour quivalent Access VRAIFAUX(),
lheure de la saisie de linscription. Cette fonction doit tre saisie dans la merci au traducteur...

proprit Valeur par dfaut du champ DateInscription, figure 86.

BASE La fonction Maintenant() nest pas disponible sous Base

On ne pourra donc utiliser le champ DateInscription comme cl primaire que si on saisit


manuellement date et heure dinscription, ce qui ne sera pas trs pratique. Le mieux est
alors de ne pas crer ce champ DateInscription, et de lui substituer le champ NumeroIns-
cription, de type numro automatique, et de le dclarer cl primaire.

Crer la table des BureauxGuides avec Base


Cette table ne concerne comme nous lavons vu que les utilisateurs de
Base. Les Accessophiles contourneront la difficult par la cration dune
liste de choix manuelle, comme nous le verrons page 171.
Cette table ne comporte quun seul champ, BureauGuides, de type
Texte, limit onze caractres. Ce champ unique sera bien videmment
cl primaire. La figure 87 dtaille cette table en mode bauche.

Figure 87
La table des Bureaux des guides en mode bauche
sous Base ne comprend quun seul champ

Toutes les tables de notre cas pratique sont ainsi cres. Noubliez pas de
les enregistrer si ce nest dj fait. Nous pouvons maintenant passer la
phase de programmation des relations entre les tables. Access et Base
vont requrir des modes opratoires compltement diffrents, aussi
allons-nous tudier ces deux logiciels sparment (Access partir de la
page 170 et Base partir de la page 185).

169
DExcel Access

tablir les relations par liste de choix avec


Access
Le paramtrage dune liste de choix est la premire tape de ltablisse-
RAPPEL Pas de saisie avant
davoir tabli les relations ment de la relation entre la table matre et la table esclave.
Ltablissement des relations permet dassurer Le principe dune liste de choix est de permettre loprateur de saisie
lintgrit des donnes et le bon fonctionnement de choisir, lors de la saisie des enregistrements de la table esclave, la
des tables de la base. Il est donc essentiel de ne valeur dun champ parmi les valeurs que ce champ prend dans la table
rien saisir dans les tables avant davoir mis en matre correspondante. Par exemple, dans la table Activites, nous para-
place ces relations.
mtrerons pour le champ NumeroGuide une liste de choix qui autorisera
loprateur de saisie choisir, pour chaque activit, le numro du guide
qui lencadre. Concrtement, pour chaque activit, loprateur disposera
ainsi dans la table Activites de la liste de tous les numros de guides de la
table des Guides et naura plus qu faire son choix (do le nom de Liste
de choix) ainsi que le montre la figure 88.

Figure 88
Une liste de choix permet de choisir la valeur
dun champ parmi plusieurs possibilits
prexistantes et tablit ainsi la relation entre
la table esclave et son matre

ALLER PLUS LOIN Choisir entre liste de choix par rapport une table ou manuelle

La liste de choix manuelle est plus simple et permet une structure plus lgre de la base
en minimisant le nombre de tables. Par contre, elle est moins souple ds quil sagit dint-
grer, de modifier ou de supprimer une possibilit de choix, car il faut alors modifier
manuellement la proprit Liste de choix du champ.
Une liste de choix par rapport aux valeurs dune autre table se modifie par contre en temps
rel ds que la table matre, celle dans laquelle on choisit les valeurs, est mise jour.
En consquence , on ne choisira une liste de choix manuelle que quand les possibilits de
choix sont restreintes et immuables : par exemple Chamonix, Argentire ou les
Houches , ou encore Homme ou Femme , etc.
Ds que les valeurs dune liste de choix sont sujettes de constantes modifications, mises
jour, ajouts et suppressions, il faut systmatiquement choisir une liste de choix par rap-
port aux valeurs dune autre : ce sera le cas quand il faudra slectionner un numro de
client, de produit, de stagiaire, de guide, dactivit, etc. ou mme encore un nom de ville
dans une liste constamment mise jour.

Il existe avec Access deux types de liste de choix :


La liste de choix par rapport une table va proposer loprateur de
slectionner, pour la cl trangre de la table esclave, parmi les valeurs

170
8 tablir les relations entre les tables
que prend la cl primaire de la table matre. Cest ce type de liste de
choix que nous allons utiliser pour lier les tables Guides et Activites,
Stagiaires et Inscriptions ainsi quActivites et Inscriptions.
La liste de choix manuelle, ne proposera que le choix parmi quelques
valeurs prdfinies. Cest celle que nous utiliserons pour le champ
BureauGuides de la table Guides.

Paramtrer une liste de choix manuelle avec Access


La liste de choix manuelle est adapte notre champ BureauGuides de
la table des Guides par ce que ce champ ne peut accepter que les trois
valeurs immuables Chamonix, Argentire et Les Houches. Nous
naurons donc pas besoin de crer une table BureauxGuides, allgeant
ainsi la structure de notre base.
Pour crer un champ avec une liste de choix manuelle, la mthode est la
suivante :
1 Slectionnez ou crez le champ souhait dans la table en mode Cra-
tion.
2 Choisissez le type de donnes Assistant liste de choix.
3 Vous entrez alors sous le contrle de lassistant qui va vous guider
dans la cration de la liste de choix.
4 Limitez le choix de loprateur aux entres de la liste (puisque cest jus-
tement pour cela quon cre une liste de choix, non ?) et paramtrez
ventuellement une valeur par dfaut.
Dtaillons la mise en uvre de lassistant Liste de choix manuelle au tra-
vers du paramtrage de la liste de choix manuelle du champ Bureau des
guides.

Utiliser lassistant Liste de choix manuelle


Dans la table des Guides en mode Cration, dans le champ Bureau-
Guides, slectionnez Assistant liste de choix dans la colonne Type de don-
nes pour le champ BureauGuide (figure 89). Vous entrez sous le
contrle de lassistant Liste de choix.
La premire bote de dialogue permet de slectionner le type de liste de
choix souhait. Access propose de chercher les donnes de la liste drou-
lante dans une autre table (option 1) ou dans une liste manuelle
(option 2). Cest bien videmment cette dernire que nous choisissons
ici, figure 810 (nous choisirons la premire option plus tard lors de la
programmation des tables Activites et Inscriptions).

171
DExcel Access

Figure 89 Figure 810


Louverture de lassistant Liste de choix pour le champ BureauGuides. Choisir Je taperai les valeurs souhaites
Remarquez les champs dj crs, dont la cl primaire. pour une liste de choix manuelle.

La seconde bote de dialogue de la figure 812 va nous permettre


dentrer les valeurs autorises de la liste. Remarquez le contenu de la
saisie : nous agissons ici dans le contenu de la table et non sur les noms
des champs, tous les caractres et tous les espaces sont donc autoriss,
Argentire et Les Houches, et non Argentiere ou LesHouches.

ALLER PLUS LOIN Utiliser deux colonnes ou plus dans une liste de choix manuelle

Vous avez remarqu sur la figure 811 la possibilit de crer une liste
de choix avec plus dune colonne.
Si par exemple cette liste de choix tait destine saisir des noms de
personnes, on pourrait utiliser la premire colonne pour son nom et la
deuxime pour son prnom, figure 811. Notez que a ne constituerait
quune aide la saisie, puisque de toute faon, seul le contenu de la
premire colonne de la liste de choix manuelle sera stock dans le
champ considr.
Si par contre, toujours dans cet exemple, vous souhaitez stocker dans
la table le nom dune personne et pouvoir retrouver automatique-
ment son prnom, il faudra alors crer une table complmentaire qui
stockera les noms et prnoms des personnes et crer une liste de
choix (et non une liste manuelle) correspondant aux donnes de
cette nouvelle table.
Figure 811 Une liste de choix manuelle deux colonnes.
Seuls les noms (Capron et Allauzen) seront stocks
dans le champ, les prnoms ne sont quindicatifs.

172
8 tablir les relations entre les tables
Figure 812
Les diffrentes valeurs de la liste de choix sont en premire colonne
les uns sous les autres. Tous les caractres sont autoriss.

Lassistant se termine avec la bote de dialogue de la figure 813. Con-


ALLER PLUS LOIN Les options du dernier cran
servez ces paramtrages et cliquez sur Terminer. Nous revenons laffi- de lassistant liste de choix
chage classique de notre table en mode Cration.
Access attribue votre liste de choix ltiquette
correspondant au nom de votre champ. Cest une
trs bonne initiative, non ? La case cocher
Autoriser plusieurs valeurs permet de grer
une liste de choix deux colonnes ou plus. Nous
vous dconseillons cette option, une liste de choix
par rapport une table est bien plus facile dutili-
sation.

Figure 813
Ne rien modifier dans la dernire tape
de lassistant Liste de choix.

Vrifier et scuriser la liste de choix avec Access TRUC


Notre liste de choix est paramtre. Pour le vrifier, il suffit de cliquer Modifier manuellement la liste de choix
sur longlet Liste de choix de la zone Proprits de notre champ Bureau- Il suffit dintervenir manuellement dans la pro-
guide (figure 814) : nous retrouvons bien sur la ligne Contenu les diff- prit Contenu (voir figure 814). Par exemple,
rentes entres de notre liste, entre guillemets et spars par des points si lcole dmnage dans la rgion de Marseille
pour grimper dans les Calanques, la zone Con-
virgules. tenu pourra se libeller ainsi : Marseille;Cassis.
Reste maintenant modifier la proprit Limiter liste de notre champ Avec les valeurs de la liste entre guillemets et
spares par des points-virgule.
BureauGuides. Elle est fixe par dfaut Non, ce qui signifie concrte-
ment que loprateur de saisie aura toujours la possibilit de saisir une

173
DExcel Access

LOGIQUE Null interdit et listes de choix valeur non prsente dans la liste. Et nous qui avions programm cette
liste de donnes justement pour quil ne puisse choisir que dans la liste...
Avec le paramtre Limiter liste Oui, il est
impossible de ne rien saisir dans ce champ. Spci- Bizarrement, Access continue par dfaut autoriser dautres entres que
fier Null interdit Oui est donc superflu mais le celles de la liste. Pour y remdier, toujours dans longlet Liste de choix de
spcifier nest pas interdit. Faites comme vous la zone Proprits de notre champ BureauGuides (figure 814), slec-
voulez. tionnez la valeur Oui dans la proprit Limiter liste.

Figure 814
Le critre Limiter liste est forc Oui.
Nul ne pourra saisir des donnes autres
que celles de la liste de la ligne Contenu

Assigner une valeur par dfaut dans une liste de choix


Dans une liste de choix, manuelle ou par rapport une table, il arrive
souvent quune mme valeur soit plus frquente quune autre. Dans une
socit franaise, le personnel est probablement plus souvent de nationa-
lit franaise. Dans un club de danse les femmes sont peut-tre sur-
reprsentes par rapport aux hommes (et inversement dans un club de
PRODUCTIVIT Valeur par dfaut rugby). Il est donc souvent utile de paramtrer dans une liste de choix
La proprit Valeur par dfaut ne sapplique
une valeur par dfaut, par exemple Franais, Femme ou Homme. Ou
videment pas exclusivement aux champs ali- encore Chamonix pour le champ BureauGuides de notre table des
ments par une liste de choix manuelle. Elle Guides, puisque Chamonix est le plus grand bureau de la valle.
sutilise avec profit pour les listes de choix par
rapport une table ou mme pour un champ Voici comment procder pour paramtrer une valeur par dfaut :
sans liste de choix. Le seul critre pour utiliser 1 Dans la table en mode Cration, slectionnez le champ considr.
une valeur par dfaut est la sur-reprsentation
2 Dans les proprits du champ, dans longlet Gnral, saisissez la
dune valeur particulire pour un champ.
valeur souhaite sur la ligne Valeur par dfaut (figure 815).

Figure 815
Chamonix est la valeur par dfaut du champ
BureauGuide. Il est inutile de saisir les guille-
mets, Access les ajoute automatiquement.

Bien sr, la valeur par dfaut doit appartenir la liste de choix ( lortho-
graphe et la casse prs), surtout si vous avez forc, comme conseill
avec le critre Limiter liste Oui.

174
8 tablir les relations entre les tables
Notre liste de choix est maintenant termine. Les diffrentes valeurs de la
liste de choix apparaissent lors de la saisie du champ correspondant dun
nouvel enregistrement comme le montre la figure 816 ; ne tentez pas de
tester cette liste de choix dans votre table, nous saisirons les donnes ult-
rieurement, quand toutes les tables et leurs relations auront t valides.

Figure 816
Il faut choisir la valeur du champ dans la liste de choix manuelle.
La valeur par dfaut est assigne doffice.

Paramtrer une liste de choix par rapport une table


avec Access
Rappelons le principe dune liste de choix par rapport une table. Elle
RAPPEL Cl primaire et cl trangre
permet de crer la relation entre la table esclave et la table matre, en
apportant la possibilit loprateur de saisie de choisir, pour un champ Le champ NumeroGuide de la table esclave Acti-
vites est cl trangre de cette table puisquil fait
de la table esclave, les valeurs correspondantes du champ cl primaire de rfrence par liste de choix aux valeurs correspon-
la table matre. Par exemple, pour une table Commandes, il sera possible dantes du champ quivalent NumeroGuide, cl pri-
de choisir dans la table Client le code client du client qui a pass la com- maire de la table matre Guides.
mande et dans la table Produit, le produit quil a command ou encore,
dans notre cas pratique, cette liste de choix autorisera, pour le champ
NumeroGuide de la table Activites, de choisir parmi les diffrentes
valeurs du champ correspondant NumeroGuide de la table des Guides.
Le schma gnral de paramtrage dune liste de choix par rapport une
table est le suivant :
1 Ouvrir la table esclave en mode Cration.
2 Crer le champ pour lequel on veut dfinir la liste de choix
3 Lancer lassistant Liste de choix en choisissant le type de donnes
Assistant liste de choix.
4 Spcifier que la liste de choix slectionnera ses valeurs dans une table
(et non dans une liste manuelle comme dans le cas prcdent).
5 Suivre les tapes de lassistant et le terminer.
6 Limiter les choix de loprateur aux valeurs de la liste et ventuelle-
ment paramtrer une valeur par dfaut au champ.
Illustrons maintenant le dtail de cette procdure pour le champ
NumeroGuide de la table Activites.

175
DExcel Access

Utiliser lassistant Liste de choix par rapport une table


Ouvrez la table Activites en mode Cration puis crez, si ce nest pas
encore fait, le champ NumeroGuide. Lancez ensuite lassistant Liste de
choix comme nous lavons fait pour une liste de choix manuelle en choi-
sissant le type de champ Assistant liste de choix (figure 817). Nous
sommes maintenant guids par lassistant.

Figure 817
Louverture de lassistant Liste de choix
pour le champ NumeroGuide. Remarquez
le champ NomActivite, cl primaire
de cette table Activites.

Nous retrouvons dabord la bote de dialogue sur laquelle nous avions


prcdemment choisi loption Je taperai les valeurs souhaites. Prenons
cette fois-ci loption par dfaut Je veux que la liste de choix recherche les
valeurs dans une table ou une requte (figure 818).

Figure 818
Loption entre une liste droulante
par rapport une table (par dfaut)
ou par rapport une liste manuelle

OBSERVEZ La liste de choix


peut rechercher ses valeurs
dans une table ou une requte
Le cas le plus courant est de choisir les valeurs
dans une table. Mais on peut galement les
rechercher dans une requte (notre table contient
Access propose ensuite, fort logiquement, un choix faire entre les
par exemple les champs NomGuide et
PrenomGuide ; on peut parfaitement imaginer tables de notre cas pratique. Slectionnons Guides et cliquons sur Suivant
par une requte de joindre ces deux champs et (figure 819).
dutiliser ce rsultat comme liste de choix dans la
table des Activits).
Access nous propose ensuite (figure 820) de slectionner les champs de
la liste droulante choisir parmi les champs de la table slectionne. Par

176
8 tablir les relations entre les tables
un clic sur le double chevron vers la droite >>, slectionnons tous les
champs disponibles.

Figure 819
Choisir dans la liste des tables (ou requtes) disponibles
celle qui sera source de la liste de choix (ici, Guides)

Figure 820
Tous les champs de la table ont t slectionns pour participer
la liste droulante. Utiliser les boutons > >> ou < <<
pour slectionner ou dslectionner les champs.

PRODUCTIVIT Les champs dune liste de choix par rapport une table

Nous venons, dans notre exemple, de slectionner tous les champs de la table matre Guides
parce que cette table en comporte peu. Dans la pratique, le nombre de champs slec-
tionner dans une liste de choix est le rsultat dun compromis entre lefficacit et la lisibilit.
Ainsi, nous aurions trs bien pu slectionner uniquement le champ NumeroGuide. Cela
aurait fonctionn, mais pas trs efficacement. Loprateur de saisie naurait en effet vu
dans la liste droulante que la liste des numros de guide, ce qui nest pas trs parlant :
moins de la connatre par cur, il lui aurait fallu avoir sous les yeux la liste des guides
avec leur numro...
Nous avons slectionn tous les champs de notre table parce quils sont peu nombreux. En
aurait-elle comport plus (numro de tlphone, ge, e-mail, RIB, taille, sexe, etc.), nous
nous serions certainement contents de slectionner uniquement les noms et prnoms.

177
DExcel Access

La bote de dialogue de la figure 821 permet ensuite de trier la liste de


choix. Choisissez par exemple de trier selon le champ NumeroGuide, cl
primaire de la table des Guides.

Figure 821
La liste de choix sera trie
selon le Numro de guide.

La fentre de la figure 822 confirme ensuite la slection des champs (qui


ATTENTION La case Coonne cl cache
(recommande) apparaissent ici cte--cte comme sur une feuille de calcul). Remarquez
que des donnes dj saisies apparaissent sur cette figure 822, parce que
Access conseille de masquer le champ cl pri-
maire de la table matre (ici, celle des Guides).
la base utilise pour illustrer cette procdure contenait dj des donnes.
Cela ne nous parat pas tre une bonne ide, Normalement aucune donne na t saisie dans votre base, aucune donne
puisque ce champ est justement cl primaire de ne doit donc apparatre.
la table des Guides et quil permet donc de
retrouver sans hsiter un guide parmi ses con-
frres. Nous vous conseillons donc de dcocher
cette case.

Figure 822
Il est conseill de dcocher la case
Colonne cl cache (recommand).

La fentre de la figure 823 permet ensuite de choisir le champ stocker


dans la table esclave. Il sagit bien videmment de la cl primaire de la
table matre, ici NumeroGuide.

178
8 tablir les relations entre les tables
Figure 823
Confirmons que le champ NumeroGuide
va assurer la relation entre Activites et Guides.

Cen est presque fini. Ne changez rien lcran de la figure 824 et cli-
quez sur Terminer. Lavertissement de la figure 825 prcise que les rela-
tions entre les tables Activites (esclave) et Guides (matre) vont tre
ralises la condition que la table courante Activites soit enregistre.
Cliquez bien videmment sur Oui, nommez si ncessaire votre table Acti-
vites, et la liste de choix est cre (figure 826).
Enfin, noubliez pas de modifier la proprit Limiter liste de Non (par
dfaut) Oui.

Figure 824
Ne rien changer cet cran et cliquer sur Terminer.

Figure 825
Cliquer sur Oui pour enregistrer la table
et crer les relations.

179
DExcel Access

Figure 826
La liste droulante est programme.
Notez le langage utilis par Access
pour traduire notre demande ainsi
que la valeur Oui pour Limiter liste.

Nous venons ainsi de programmer la liste de choix pour le champ Numero-


Guide de la table Activites. Restent encore programmer les deux listes
droulantes de la table des Inscriptions pour les champs NomStagiaire (par
rapport la table des Stagiaires) et NomActivite (par rapport la table des
Activites). La mthode est la mme que celle que nous venons de dcrire.
Dtaillons-en quand mme les principales tapes.
Pour crer la liste droulante pour le champ NumeroStagiaire, il faut,
aprs avoir ouvert la table des Inscriptions en mode Cration et slec-
tionn le champ NumeroStagiaire :
1 Ouvrir lassistant Liste de choix.
2 Spcifier que les donnes source se trouvent dans une table.
3 Slectionner la table des Stagiaires.
4 Slectionner uniquement les champs NumeroStagiaire ainsi que les
noms et prnoms.
5 Demander un tri par NumeroStagiaire.
6 Dcocher la case Colonne cl cache (recommand).
7 Confirmer que le champ NumeroStagiaire sera stock dans la table Ins-
criptions.
8 Conserver ltiquette propose et terminer lassistant.
9 Enregistrer la table et la nommer Inscriptions.
10 Dans les proprits du champ, basculer Limiter liste de Non Oui
dans longlet Liste de choix.
Pour crer la liste droulante sur le champ NomActivite, il faut, aprs
avoir ouvert la table des Inscriptions en mode Cration et slectionn le
PRODUCTIVIT champ NomActivite :
Quel tri choisir pour la liste de choix ? 1 Ouvrir lassistant Liste de choix.
Demander un tri de la liste de choix par NumeroSta- 2 Spcifier que les donnes source se trouvent dans une table.
giaire prsente lavantage dafficher la liste dans
lordre des numros. Maintenant, quand on doit 3 Slectionner la table des Activites.
choisir parmi 500 stagiaires, on ne connat pas forc- 4 Slectionner uniquement, ce sera suffisant, le champ NomActivite.
ment par cur les numros dordre. Un tri de la liste
5 Demander un tri par NomActivite. Lcran avec la case Colonne cl
de choix par NomStagiaire peut tre intressant.
cache (recommand) et celui dans lequel il faut confirmer le champ

180
8 tablir les relations entre les tables
stocker napparaissent pas, puisquun seul champ est slectionn dans
la liste.
6 Conserver ltiquette propose et terminer lassistant.
7 Enregistrer la table et la nommer Activites.
8 Dans les proprits du champ, basculer Limiter liste de Non Oui
dans longlet Liste de choix.

ALLER PLUS LOIN Les proprits Null interdit et Index sans doublon dun champ cl primaire
Prenons par exemple le cas de la dernire cl primaire cre, le champ Pour un champ Cl primaire, Access bascule automatiquement cette
DateInscription de la table des Inscriptions (figure 827). proprit Index sans doublon, car une cl primaire doit permettre
de retrouver rapidement lenregistrement correspondant et ne doit pas
accepter de doublon. Il est possible dutiliser cette proprit Indexa-
tion pour acclrer les temps de recherche dun enregistrement. Par
exemple, on peut rgler la proprit Index du champ NomStagiaire
Oui avec doublons. Par contre, choisir Oui sans doublons interdi-
rait fcheusement deux homonymes de sinscrire, figure 828.

Figure 827 Les proprits dune cl primaire


Nous remarquons dabord que la proprit Null interdit a pour
valeur Non. trange? Oui et non. Oui, parce que cette proprit
devrait tre Oui (une cl primaire doit obligatoirement avoir une
valeur). Mais en fait Non, parce que, mme si cette proprit est
Non, Access considre en fait quelle est Oui (pour lui, une cl pri-
maire est Null interdit Oui de toutes faons). En dautres termes,
Access a bascul la proprit Null interdit Oui sans nous le dire
(ni nous le montrer) pour la simple raison que ce champ est cl pri-
maire... Passer cette proprit de Non Oui ne servirait donc rien,
puisquelle est dj Oui (mme si elle parat toujours Non)... Vous
suivez ? Ajoutons cela que paramtrer une valeur par dfaut interdit
ce champ dtre Null.
Nous remarquons aussi la proprit Index. Appliquer un index sur
un champ cre, en parallle de la table, un index de recherche pour
acclrer laccs linformation. Cette proprit peut avoir trois
valeurs :
Non (aucun index nest appliqu sur le champ);
Oui sans doublon (un index est appliqu sur le champ et aucun
doublon ne sera accept); Figure 828 Le champ NomStagiaire est Index Oui avec
Oui avec doublon (un index est appliqu sur le champ et les doublons pour permettre une recherche plus rapide selon le nom
doublons sont accepts). du stagiaire.

181
DExcel Access

Paramtrer la fentre des relations avec


Access
Le paramtrage de la fentre des relations dAccess permet de mettre un
point final la structure de la base de donnes, avec ses tables, ses
champs, ses cl primaires et ses relations de matre esclave. Le contenu
de cette section est donc tout fait essentiel.
Pour afficher la fentre des relations :
Sous Access 2007 : dans longlet Outils de base de donnes, une fois
dans le groupe Afficher/masquer, cliquez sur le bouton Relations,
comme sur la figure 829.

Figure 829
Le bouton Relations dAccess 2007

Sous Access 2003 : cliquez sur le bouton Relation de la barre doutils


(figure 830), ou passez par le menu Outils et choisissez loption Rela-
tions.

Figure 830
Le bouton Relations dAccess 2003

Selon la faon et lordre dans lequel vous avez cr les tables de votre
base, cette fentre des relations peut apparatre un peu dsordonne, les
tables de la base se prsentant dans un ordre pas forcment logique.
Prenez donc quelques instants pour faire glisser les vignettes des tables
dans la fentre des relations pour les prsenter dans lordre logique de la
phrase cl : les stagiaires sinscrivent des activits encadres par des
guides, comme le montre la figure 831.

Figure 831
La fentre des relations organise logiquement
dans lordre des termes de la phrase cl

182
8 tablir les relations entre les tables
Prenons quelques instants pour vrifier le contenu de cette fentre des
relations. Nous verrons ensuite les quelques manipulations effectuer
pour terminer le paramtrage des relations sous Access.

Anatomie de la fentre des relations avec Access


La fentre de relations de notre cas pratique de la figure 831 illustre
clairement le fonctionnement des relations qui unissent nos tables : un
stagiaire peut sinscrire une activit encadre par un guide.
Nous remarquons que le premier champ de chaque table est signal par
une cl, ce qui signifie, vous laviez devin, quil est cl primaire de la
table. Chaque table a une et une seule cl primaire.
Nous observons aussi quun trait (une relation) unit chaque table esclave
sa table matre, de la cl primaire de la table matre la cl trangre de
la table esclave. ERGONOMIE Cl primaire Access 2003
Si votre fentre des relations ne ressemble pas notre figure 831, cest La cl primaire de chaque table apparat en gras
trs certainement la consquence dune erreur de construction des tables dans Access 2003, et non accompagne du sym-
bole reprsentant la cl comme sous Access 2007.
et des listes de choix. Reportez vous alors directement la section
Rsoudre les difficults lies au paramtrage des relations, page 189.

Paramtrer lintgrit rfrentielle des relations avec


Access
Lintgrit rfrentielle est un concept qui semble barbare, mais qui
permet de valider dfinitivement la fentre des relations, avec les tables de
la base et les relations qui les unissent. Appliquer lintgrit rfrentielle
une relation permet de surveiller de trs prs la qualit et dviter les infi-
dlits de la table esclave par rapport la table matre. Par exemple, dans
notre cas pratique o un stagiaire sinscrit une activit encadre par un
guide, que se passera-t-il si un guide quitte notre cole ? Lactivit naura
plus dencadrement et les stagiaires risquent dtre mcontents...
La phase de paramtrage de lintgrit rfrentielle consiste modifier
une une chacune des relations de la fentre des relations (chacun des
traits unissant une table une autre) en lui appliquant lintgrit rfren-
tielle. Pour chaque relation de la fentre des relations :
1 Double-cliquez sur le trait symbolisant la relation. La bote de dia-
logue Modifier les relations souvre.
2 Cochez la case Appliquer lintgrit rfrentielle (figure 832).
3 Validez.

183
DExcel Access

Figure 832
Le paramtrage de lintgrit rfrentielle

La fentre des relations apparat alors selon la figure 833, avec les sym-
boles 1 et caractrisant les relations de un plusieurs. Voyons de plus
prs la signification de ces symboles (qui peuvent dailleurs se lire dans
les deux sens).

Figure 833
Les relations de un plusieurs

Dans le sens de 1 :
un stagiaire peuvent correspondre plusieurs inscriptions.
une activit peuvent correspondre plusieurs inscriptions.
un guide peuvent correspondre plusieurs activits.
Dans le sens 1 :
Chaque inscription ne concerne quun et un seul stagiaire, ainsi
quune et un seule activit.
Chaque activit est encadre par un et un seul guide.
Ici sachve le paramtrage des relations sous Access. Nous sommes
maintenant prts passer ltape suivante dans la construction de notre
LEXICOLOGIE Pouvoir et devoir base de donnes relationnelle, la cration de formulaires et la saisie de
Pouvoir nest pas devoir : dire quun guide peut
donnes, au chapitre 9, page 195.
encadrer plusieurs activits ne signifie pas quil Si vous avez rencontr des difficults dans ce paramtrage, ne vous
doit en encadrer plusieurs. Par contre, dire quune
inquitez pas : vous ntes ni les premiers, ni les derniers. Le sujet est
activit doit tre encadre par un guide signifie
que non seulement elle le peut, mais que cest dlicat, le logiciel est sensible et les causes derreurs multiples. Reportez-
obligatoire. vous dans ce cas la page 189.

184
8 tablir les relations entre les tables
ALLER PLUS LOIN Les autres options de lintgrit rfrentielle

La figure 832 offre deux possibilits que nous avons ignores. Quelle en est la
signification ?
Mettre jour en cascade les champs correspondants. Imaginons quil nous
vienne lide de changer les numros de nos guides. Ce serait une ide trange, mais
on en a vu dautres. Dans ce cas, comment Access pourrait-il retrouver dans la table
Activites le guide correspondant, puisque cette table contient lancien numro du
guide ? Cette option Mettre jour en cascade les champs correspondants
rsout ce type de difficults, en modifiant en cascade les numros de guide. Ce type
dopration de renumrotation tant plutt viter, cette option na pas notre
niveau de vritable utilit.
Effacer en cascade les enregistrements correspondants. Imaginons quun guide quitte
notre association. Sil nencadre pas dactivit, pas de problme. Mais, dans le cas
contraire, que va devenir son activit (et les stagiaires qui y sont inscrits) ? Cocher la
case Effacer en cascade les enregistrements correspondants va supprimer automati-
quement le guide, lactivit dont il est responsable et les inscriptions cette activit
(mais pas les stagiaires qui, eux, peuvent exister sans tre inscrits cette activit). Le
danger de cette option est que la suppression est automatique. Elle est donc notre
avis dconseiller.

tablir les relations avec Base


Avec Base, tablir des relations entre les tables ne se fait pas comme avec
BASE Les listes de choix
Access par le paramtrage de listes de choix, puisque cette fonctionnalit
nest pas disponible. Si les listes de choix ne sont pas disponibles en
mode bauche de tables, elles le sont avec les for-
Les relations entre tables matres et tables esclaves avec Base se pro- mulaires, voir page 210. Concrtement, les utilisa-
gramment directement dans la fentre des relations. Pour pouvoir suivre teurs de Base disposeront donc du mme confort
cette dmonstration, qui prend comme fil conducteur notre cas pratique, de saisie des donnes que ceux dAccess.

assurez-vous davoir cr dans votre base toutes les tables ncessaires,


savoir Stagiaires, Inscriptions, Activites, Guides, et surtout la table com-
plmentaire BureauxGuides (rappelons que la prsence de cette dernire
table nest due qu labsence de listes de choix manuelles sous Base).
Aprs avoir dcouvert le fonctionnement de la fentre des relations Base,
nous verrons comment paramtrer une relation.

Fonctionnement de la fentre des relations avec Base


Pour afficher la fentre des relations de Base, slectionnez loption Rela-
tions du menu Outils (ou cliquez directement sur loutil Relation de la
barre doutils). Base vous propose la liste des diffrentes tables de la base.
Ajoutez-les une une en cliquant sur leur icne et en cliquant sur
Ajouter, comme sur la figure 834. La fentre des relations de la
figure 835 saffiche.

185
DExcel Access

Figure 834
La liste des tables disponibles
pour la fentre des relations

Figure 835
Premier affichage de la fentre des relations

Lobservation de la figure 835 montre que les tables sont classes par
INDISPENSABLE Licne cl primaire pour
chaque table de la fentre des relations ordre alphabtique, et non selon lordre logique de la phrase cl comme
nous laurions souhait : les stagiaires sinscrivent des activits enca-
Le champ cl primaire de chaque table de la
figure 836 sorne de licne correspondant, une
dres par des guides appartenant un bureau des guides. Rorganisez
cl stylise. donc cet affichage vignette par vignette en les slectionnant une une et
en effectuant un cliquer glisser pour obtenir laffichage de la figure 836.

Figure 836
Les tables de la fentre des relations saffi-
chent dans lordre logique

Nous allons maintenant dcrire comment tablir une relation entre deux
tables.

186
8 tablir les relations entre les tables
Paramtrer une relation dans la fentre des relations
avec Base
Nous allons illustrer le paramtrage dune relation au travers de la relation
liant la table des Guides avec celle des BureauxGuides via le champ Bureau-
Guide. Rappelons que dans cet exemple le champ BureauGuides de la table
Guides est cl trangre de cette table et quil est en relation avec le champ
quivalent BureauGuide, cl primaire cette fois de la table BureauxGuides.
Voici le mode opratoire pour crer la relation liant la table des Guides
avec celle des BureauxGuides via le champ BureauGuide :
1 Affichez la fentre des relations comme indiqu par la figure 836
2 Cliquez sur le champ BureauGuide de la table des Guides (cl tran-
gre de la table esclave)
3 Sans relcher le bouton de la souris, glissez jusque sur le champ
BureauGuides de la table (cl primaire de la table matre)
4 Relchez le bouton.
La fentre des relations saffiche nouveau, complte de la matrialisa-
tion de la relation entre nos tables Guides et BureauxGuides, figure 837.

Figure 837 Une relation de 1 n est programme dans la fentre des relations

Remarquez sur cette figure 837 le trait unissant les cls primaires et
trangres, et les symboles 1 et n. Le 1 est du ct de la cl primaire de la
table matre, et le n de celui de la cl trangre de la table esclave, signi-
fiant ainsi que plusieurs guides peuvent appartenir au mme bureau.
Reste dfinir selon le mme schma toutes les relations de notre cas
pratique. Programmons donc toutes les autres relations entre les couples
de tables matres et esclaves selon le tableau suivant :
Tableau 83 Tableau des relations programmer dans le cas pratique (Base)

Dans la table esclave : Cliquer-glisser le champ cl trangre : Sur le champ cl primaire : De la table matre :
Guides BureauGuides BureauGuides BureauxGuides
Activites NumeroGuide BureauGuides Guides
Inscriptions NumeroStagiaire NumeroStagiaire Stagiaires
NomActivite NomActivite Activites

187
DExcel Access

La fentre des relations de la figure 838 montre une chane ininter-


rompue de relations de type 1 n entre toutes les tables de la base :
Dans cette chane de relations de 1 n, le 1 est systmatiquement
du ct de la cl primaire de la table matre et le n de celui du
champ cl trangre de la table esclave.
Cette chane visualise lorganisation logique de notre base (ici, un
stagiaire sinscrit une activit encadre par un guide appartenant
un bureau des guides ).

Figure 838
Une chane ininterrompue de relations de 1 n

Ceci termine le paramtrage des relations avec Base. Nous allons main-
tenant poursuivre notre tude des bases de donnes relationnelles avec le
chapitre suivant consacr aux formulaires et la saisie de donnes.

ALLER PLUS LOIN La fentre des dtails de la relation


La figure 839 illustre la fentre du dtail de la relation entre la table des BureauxGuides va alors supprimer (si Supprimer la
BureauxGuides et Guides par le champ BureauGuides. Cette fentre cascade est valid) les guides de ce bureau dans la table des
sobtient en double cliquant, dans la fentre des relations, sur le trait Guides : qui va alors soccuper des stagiaires dont ces guides
matrialisant la relation. Elle reprsente lquivalent sous Base du assuraient lanimation?
concept dintgrit rfrentielle tudi avec Access, page 183.
Quelle est le sens des options qui y apparaissent ?
Options de mise jour (et son option principale Mise jour
cascade). Imaginons, mme si cest trs improbable, que le
bureau des guides de Chamonix devienne celui de Megve, sta-
tion trs proche mais au caractre alpin nettement moins marqu.
Cocher cette option permettra de modifier Chamonix en Megve
dans la table BureauxGuides et de raffecter automatiquement
les guides inscrits au bureau de Chamonix celui de Megve.
Do le terme de cascade.
Options deffacement (et son option principale Supprimer la
cascade). Cette fois-ci, le bureau des guides de Chamonix ferme.
Avec cette option, la suppression de lenregistrement Chamonix
dans la table des BureauxGuides va supprimer galement tous les
guides de la table des Guides inscrits ce bureau. Do le terme
de suppression en cascade.
Lexprience prouve quau niveau auquel nous aspirons, ces
options, mme si elles paraissent sduisantes, sont plutt viter. Figure 839 Le dtail dune relation avec les options
Par exemple, supprimer par erreur lenregistrement Chamonix de Options de mise jour et Options de suppression

188
8 tablir les relations entre les tables
Si vous avez rencontr des difficults lors de ce paramtrage, reportez-
vous tout de suite la section suivante, traitant des solutions aux diffi-
cults de paramtrage des relations.

Rsoudre les difficults lies au


paramtrage des relations
Le paramtrage dfinitif de la fentre des relations constitue, vous lavez
compris, la cl de vote de la construction des tables de la base de don-
nes relationnelle. Normalement, si vous avez suivi tout ce que nous
avons vu ensemble, tout devrait tre dans lordre.
Si par contre vous ntes pas parvenu paramtrer correctement ces rela-
tions, il est inutile de poursuivre : le paramtrage de ces relations est une
condition sine qua non la poursuite de votre travail.
Il nest pas question de lister toutes les causes de dysfonctionnements
avec leurs symptmes et surtout leurs solutions, tant ils sont nombreux.
Ceci dit, lexprience prouve que certaines causes revenaient plus sou-
vent qu leur tour. Essayons den prsenter les principales.

Des donnes ont t saisies avant le paramtrage des


relations
Paramtrer une relation permet dassurer lintgrit rfrentielle entre la
table matre et son esclave, par exemple en sassurant quon ne peut ins-
crire un stagiaire qu une activit existante.
Saisir des donnes avant de paramtrer les relations fait sauter cette
scurit. Par exemple, vous avez dj inscrit un stagiaire (Paul) une
activit (Varape), et ce dans la table Inscriptions. Vous avez parallle-
ment cr une activit dans la table Activites, la Varappe, avec un p
de plus. Ce qui fait deux noms diffrents pour la mme activit... Vous
tes prvenus de ce type dincohrence en paramtrant lintgrit rf-
rentielle, par un message du type de la figure 840.

Figure 840
Alerte ! Lintgrit rfrentielle
ne peut tre applique...

189
DExcel Access

Voici comment vous sortir de ce mauvais pas ( essayer dans cet ordre,
du moins compliqu au plus compliqu) :
Adoptez au bon endroit la bonne orthographe et recommencez les
oprations de paramtrage des relations.
Effacez toutes les donnes des tables et recommencez les oprations
de paramtrage des relations.
Supprimez les tables concernes (ici Inscriptions et Activites), recrez-
les et recommencez les oprations de paramtrage des relations.
Supprimez toutes les tables de la base et reprennez toute la program-
mation depuis le dbut (dans le bon ordre cette fois).
Attention, ds quune relation est cre entre deux tables, il nest pas pos-
sible de supprimer une des tables. Il faut commencer par supprimer la rela-
tion dans la fentre des relations ; pour cela, affichez la fentre des
relations, slectionnez la relation concerne et appuyez sur la touche Suppr.

Il manque une cl primaire pour une table


Toute table doit possder une cl primaire, nous lavons bien compris. Si une
table nen contient pas, vous obtenez un rsultat proche de la figure 841,
sans le symbole cl primaire pour la table considre. Il faut alors rectifier en
dfinissant la cl primaire. Tout devrait rentrer dans lordre.

Figure 841
Table sans cl primaire : danger !

Une table contient une cl primaire inattendue


La figure 842 donne un exemple de cl primaire inattendue : pour cette
table des guides, la cl primaire nest pas le champ NumeroGuide,
comme prvu, mais un autre champ, N pour Access et ID pour Base.

Figure 842
La table des Guides na pas
pour cl primaire le champ NumeroGuide
mais un autre champ intitul N.

190
8 tablir les relations entre les tables
Ce champ a en fait t cr automatiquement par le logiciel parce que
vous naviez pas cr en temps et en heure la cl primaire de la table con-
cerne. Constatant cette dfaillance, au moment de fermer la table et de
lenregistrer, il a affich le message de la figure 843 qui vous proposait
de crer automatiquement cette cl primaire. Et vous avez valid sans
porter attention ce message en slectionnant la valeur par dfaut de
cette bote de dialogue, Oui. Consquence : Access a cr un nouveau
champ cl primaire dans la table.

Figure 843
Aucune cl primaire na t dfinie. Le
message davertissement (ici avec Access)
propose den crer une par dfaut.

Voici comment procder pour vous sortir de ce mauvais pas :


1 Dclarez que ce champ intrus nest plus cl primaire en dslection-
nant le bouton Cl primaire (sinon vous ne pourrez pas le supprimer).
2 Supprimez ce champ intrus.
3 Dclarez comme cl primaire le champ souhait.
4 Recommencez la procdure de paramtrage des relations.
Si cela ne fonctionne pas, songez tout reprendre zro... Moralit (qui
nous rappelle quelque chose, non ?) : pas de table sans cl primaire !

Il nexiste pas de liste de choix entre la table esclave et


sa table matre (Access)
Cette section ne concerne que les utilisateurs dAccess.
Si pour le champ cl trangre de la table esclave vous navez pas cr la
liste de choix par rapport aux valeurs de la cl primaire de la table matre,
vous navez pas tabli la relation entre esclave et matre. La table esclave
napparat pas du tout dans la fentre des relations, ou apparat, sans tre
lie aux autres par une relation orpheline en quelque sorte (figure 844).

Figure 844
La table matre Guides nest pas lie sa table
esclave Activites (lassistant Liste de choix
na pas t lanc pour le champ NumeroGuide
de la table Activites).

191
DExcel Access

Voici ce quil vous reste faire :


1 Dans la table esclave, pour le champ cl trangre, rectifiez loubli en
dfinissant la liste de choix par rapport la cl primaire de la table
matre.
2 Affichez les relations et tentez dtablir lintgrit rfrentielle
comme indiqu prcdement.

TRUC Afficher les tables manquantes dans la fentre des relations

Normalement, quand vous affichez la fentre des relations, toutes les tables concernes appa-
raissent. Ce nest parfois pas le cas. Utilisez alors le bouton Afficher une table (figures 8
45 et 846) et slectionnez la table manquante. Tout devrait rentrer dans lordre.

Figure 845 Le bouton Ajouter une table


dans la fentre des relations pour Access 2007

Figure 846 Le bouton Ajouter une table


dans la fentre des relations pour Access 2003

Synthse : le verdict des relations


Ltablissement des relations peut se comparer la pose de la cl de
vote dune chapelle romane : elle valide (ou non) la solidit de la struc-
ture des tables de votre base de donnes relationnelle.
Cette phase est absolument fondamentale. Lexprience prouve que
limpossiblit programmer correctement cette fentre des relations
trouve presque toujours son origine dans une structure de schma rel (et
donc de tables) inapproprie. Tant que cette incohrence ne sera pas
rsolue avec des tables correctement bties et un enchanement logique de
tables matres et esclaves (et donc une fentre des relations cohrente), il
sera tout simplement impossible de continuer la programmation.

192
8 tablir les relations entre les tables
Nous vous proposons donc le tableau ci-dessous, rcapitulant les princi-
pales tapes de travail selon le logiciel que vous utilisez :
Tableau 84 Check-list de construction dune base de donnes relationnelle (jusquau paramtrage des relations)

Phase tape
Modlisation tablissez le schma thorique partir de la phrase cl les stagiaires sinscrivent des activits encadres par des
guides appartenant des bureaux des guides
tablissez le schma rel partir du schma thorique et des nombres cls 1 ou N
Programmation des tables Crez tous les champs de chaque table avec :
Un nom : NumeroStagiaire et non Numro du stagiaire
Un type : texte, numro automatique, date/heure, numrique, etc
Des proprits : format, masque de saisie, valeur par dfaut, null interdit, etc
Choisissez dans chaque table un champ cl primaire permettant didentifier sans ambiguit un enregistrement parmi
les autres (souvent un champ de type numrotation automatique)
Dans chaque table esclave, crez le champ cl trangre correspondant au champ cl primaire de sa table matre
Programmation Crez pour tous les champs cl trangre des tables esclaves la liste de choix par rapport la cl primaire de leur
des relations (sous Access) table matre en utilisant le type de donnes Assistant liste de choix
Crez ventuellement des listes de choix manuelles dans le cas de choix entre un nombre limit de valeurs (Chamo-
nix, Argentire, Les Houches)
Dans la fentre des relations, appliquez lintgrit rfrentielle chaque relation
Programmation Dans la fentre des relations, cliquer-glisser chaque champ cl trangre des tables esclaves vers le champ cl pri-
des relations (sous Base) maire de leur table matre

Les principales causes dinsuccs dans le paramtrage des relations sont :


une base mal ne (schmas thorique et rel incorrects) ;
un oubli de cl primaire dans chaque table ;
pas de rappel sous forme de cl trangre dans la table esclave de la
cl primaire de la table matre ;
une saisie prmature de donnes incompatibles.
Aucune solution simple ne peut tre donne pour parer ces difficults ; il
faudrait presque un coach individuel, tant les sources de dysfonctionne-
ment dans ltablissement des relations sont nombreuses. La seule solu-
tion pour sen prmunir est de suivre la mthodologie de construction de
base de donnes relationnelle dcrite ci dessus.
Nous voici maintenant prts saisir des donnes dans nos tables.

193
chapitre 9
Crer un formulaire
et saisir les donnes

SOMMAIRE
B quoi sert un formulaire ?
Nous disposons maintenant dune base de donnes cohrente, B Crer un formulaire de saisie
avec des tables, des champs (dont une cl primaire) et un rseau simple
de relations entre ces tables. Tout est prt pour recevoir B Aller plus loin avec
les formulaires
des donnes. Nous allons ici apprendre crer et utiliser
B Saisir et modifier les donnes
les formulaires, loutil certainement le plus adapt la saisie
de donnes dans un SGBDR. MOTS-CLS
B Formulaire et sous-formulaire
B Assistant Cration de formulaire
B Modification de formulaire
B Menu daccueil
B Saisie des donnes
DExcel Access

Aprs avoir programm les tables et leurs champs conformment au


schma rel, aprs avoir tabli les relations entre les tables, et avant de
saisir les donnes dans la table, il est temps maintenant de programmer
les formulaires pour saisir les donnes.
Les formulaires sont des outils conviviaux daide la visualisation, saisie,
modification et suppression de donnes. Nous verrons dans le dtail
comment les crer et les utiliser. Nous verrons galement comment crer
un formulaire avec un sous-formulaire, pour agir sur deux tables simulta-
nment (par exemple pour avoir accs simultanment aux informations
relatives un stagiaire et ses inscriptions). Et mme comment utiliser
un formulaire ouverture automatique pour crer un menu convivial
dutilisation de notre base !
Enfin, aprs avoir voqu la possibilit de saisie directe des donnes dans
la table, nous terminerons par ltude des principales caractristiques et
difficults que lon peut rencontrer en saisissant, modifiant et suppri-
mant des donnes.

quoi sert un formulaire ?


Un formulaire est tout simplement une aide la saisie, la modification
et la visualisation des donnes dune base de donnes. Certes, les don-
nes dune base peuvent se saisir directement dans les tables en mode
Contenu, de faon dailleurs trs semblable celle dont on saisit les don-
nes dans une feuille de calcul. Mais ce nest probablement pas la
meilleure technique et nous ne la conseillons pas.
Access et Base proposent de crer des formulaires pour saisir les don-
nes. Les formulaires sont en fait des interfaces entre loprateur de
saisie et les tables dans lesquelles les donnes sont saisies. En utilisant un
formulaire, loprateur ne voit pas la table dans laquelle il saisit les don-
nes, mais une interface plus claire, plus simple et plus ordonne.
Comparons une table en mode Contenu avec le formulaire qui lui est
ddi (ces exemples sont issus du modle Northwind dAccess 2007). La
table (ici celle des Clients), figure 91, ressemble une feuille de calcul.
Sa prsentation est sommaire (on ne voit pas toutes les colonnes) et il
sera facile de se tromper de ligne ou de colonne la saisie. Bref, le travail
de loprateur nest pas vraiment facilit...
Le formulaire correspondant, figure 92, est nettement plus clair, lisible et
agrable. Il met de bonne humeur, non ? Et en plus, puisquun seul enregis-
trement est affich la fois, les risques derreur sont grandement rduits.

196
9 Crer un formulaire et saisir les donnes
Figure 91
Cette table des clients en mode contenu
nest pas trs sexy...

Figure 92
Le formulaire correspondant
est bien plus clair et efficace !

En conclusion, un formulaire est une interface ergonomique et efficace


dassistance la saisie, la modification et la consultation des donnes. Il
fiabilise et acclre la saisie des donnes. Et en plus, comme nous allons le
voir dans ce chapitre, il est trs simple crer !

197
DExcel Access

Crer un formulaire de saisie simple


Pour saisir les donnes dune table, nous serons le plus souvent amens
utiliser un formulaire simple, que nous allons vous apprendre crer
TECHNIQUE Mode Cration et assistant
dans ce chapitre.

Ces deux modes ne sont pas incompatibles : lun


Un formulaire est un type particulier dobjet (avec les tables, requtes et
peut prendre le relais de lautre. Il sera toujours tats/rapports). Chaque objet peut, pour simplifier, tre cre soit en
possible de modifier en mode Cration un for- mode Cration (celui que nous avons utilis pour la cration de nos
mulaire cr par un assistant afin, par exemple, de tables) soit en mode Assistant. notre avis, le mode idal pour crer
le perfectionner. Cest dailleurs ce que nous
formulaires, requtes et tats/rapports est le mode Assistant ; le mode
ferons.
Cration est prfrable pour les tables.

Crer un formulaire avec lassistant


Lassistant Cration de formulaire va nous permettre de construire en
quelques clics un formulaire professionnel qui nous permettra de saisir
les donnes de notre base en toute facilit.
Pour lancer lassistant Formulaire :
Sous Access 2007 : demandez laffichage des formulaires dans le
volet de navigation (figure 93). Puis, dans longlet Crer, groupe For-
mulaire, cliquez sur Plus de formulaires puis Assistant Formulaire
(figure 94).

Figure 93
Afficher les formulaires disponibles
dans le volet de navigation Access 2007

198
9 Crer un formulaire et saisir les donnes
Figure 94
Lancer lassistant Formulaire Access 2007

Sous Access 2003 : dans le volet de navigation, slectionnez la famille


Formulaires. Double-cliquez ensuite sur Crer un formulaire laide de
lassistant (figure 95).

Figure 95
Lancer lassistant Formulaire Access 2003

Sous Base : cliquez sur Formulaire dans le volet de navigation.


Double-cliquez ensuite sur Utiliser lassistant de cration de formulaire
(figure 96). BASE Un assistant de cration plus riche

Nous voici maintenant sous le contrle des assistants respectifs de notre Lassistant Formulaire de Base comporte plus de
possibilits et plus dtapes que son alter ego
logiciel ; nous navons plus qu nous laisser guider pour obtenir notre Access. Nous avons choisi de calquer notre prsen-
premier formulaire. Leur ergonomie est normalement suffisamment tation sur le droul de lassistant Access. Les utili-
claire pour ne pas poser de problme particulier. Illustrons leur mode sateurs de Base se reporteront le cas chant aux
opratoire au travers de la cration dun formulaire concernant la table aparts spcifiques.
Stagiaires.

199
DExcel Access

Figure 96
Lancer lassistant Cration de formulaire Base

Dterminer la table et les champs du formulaire


Nous voulons crer un formulaire pour saisir les donnes de la table des
Stagiaires. Il faut donc slectionner cette table avec tous ses champs.
Voici comment faire selon le logiciel que vous utilisez.
Avec Access :
1 Dans la liste droulante des tables disponibles, slectionnons la table
Stagiaires.
2 Tous les champs de cette table apparaissent dans la zone Champs
disponibles. Faisons-les tous basculer dans la zone Champs slectionns
par le double chevron vers la droite >> (figure 97).
3 Cliquons sur Suivant.

Figure 97
Le premier cran de lassistant formulaire
Access : la slection de la table
et de ses champs.

200
9 Crer un formulaire et saisir les donnes
Avec Base :
1 Slectionnez la table requise (ici, Stagiaires).
2 Slectionnez les champs requis (ici, tous, comme sur la figure 98).
3 Cliquez sur Suivant.

Figure 98
Cration de formulaire Base : tous les champs
de la table Stagiaires sont slectionns.

La plupart du temps, tous les champs dune table sont prsents dans le for- BASE Sous-formulaire
mulaire ddi cette table. Il peut en tre autrement. Si une table comporte Juste aprs le choix de la table et des champs,
des lments confidentiels, il est possible de crer des formulaires diffrents Base propose de crer un sous-formulaire pour
ne donnant accs qu certains champs en fonction de loprateur. pouvoir la fois agir sur la table des Stagiaires et
des Inscriptions. Cette option ne nous concerne
pas ici.
ACCESS Utiliser plusieurs tables ou plusieurs requtes dans un formulaire

Lassistant Formulaire spcifie (figure 97) que plusieurs tables ou plusieurs requtes
sont utilisables pour le mme formulaire. quoi cela sert-il ?
Dans notre cas pratique, il serait intressant par exemple de disposer dun formulaire
permettant, pour un nouveau stagiaire, de pouvoir la fois crer lenregistrement du
stagiaire (table Stagiaires) et linscrire lactivit de son choix (table Inscriptions). Ce
qui ferait intervenir deux tables pour ce formulaire.
De mme, on pourrait aussi imaginer un formulaire permettant de visualiser et de
modifier les coordonnes du guide encadrant une activit particulire. Ce serait alors
un formulaire bas sur une requte.
Mais le cas dun formulaire bas sur une et une seule table est le plus courant (cest aussi
le plus simple).

201
DExcel Access

Choisir laspect du formulaire


Les tapes suivantes permettent successivement de choisir le type et le
format du formulaire.
Access et Base proposent plusieurs types de prsentations pour les for-
mulaires. Vous pourrez tester toutes les possibilits, nous avons quant
nous choisi pour Access Colonne simple (figure 99) et pour Base
Colonnes tiquettes gauche. Cliquons sur Suivant.

Figure 99
Le choix de la prsentation du formulaire
Access (ici, Colonne simple)

BASE Paramtrer ce que devra faire le formulaire

Base offre un cran complmentaire qui permet de paramtrer ce que pourra effectuer le for-
mulaire (visualiser, saisir ou modifier des donnes) et de grer ainsi diffrents profils dutilisa-
teurs. Dans notre cas pratique, nous avons choisi loption la plus gnrale, celle propose par
dfaut (figure 910). Faire Suivant.

Figure 910 Cration dun formulaire Base : loption par dfaut offre le plus de possi-
bilits daction au formulaire.

202
9 Crer un formulaire et saisir les donnes
Ltape suivante consiste en le choix du style du formulaire. Les gots et
les couleurs ne se discutent pas. Nous avons choisi le style Solstice
(figure 911) pour Access et Beige 3D pour Base. Cliquez sur Suivant.

Figure 911
Le style Solstice est choisi pour Access parmi
les diffrentes possibilits offertes par Access 2007

Enfin, Access et Base proposent de nommer ce formulaire du nom de la


table source (ici Stagiaires). Cest une excellente initiative, parce quainsi
nous associerons sans hsitation le formulaire la table auquel il donne
accs : chaque couple table-formulaire portera le mme nom. Access et
Base proposent aussi douvrir directement le formulaire en mode Con-
tenu (pour sen servir) ou en mode Cration/bauche pour le modifier.
Choisissons le mode Contenu pour en voir tout de suite le rsultat. La
figure 912 illustre pour Access cette tape finale de lassistant :

Figure 912
La fin de lassistant Formulaire sous Access. Le formulaire
sappelera Stagiaires (du nom de la table source) et souvrira
par dfaut en mode Contenu.

Le formulaire en mode Contenu


Le formulaire des Stagiaires saffiche donc en mode Contenu, comme le
montrent les figures 913 pour Access et 914 pour Base.

203
DExcel Access

Figure 913
Le formulaire Stagiaires Access en mode
Contenu. Aucun enregistrement nest saisi.

Figure 914
Le formulaire Stagiaires Base en mode
Contenu. Remarquez les outils en bas
de fentre pour naviguer denregistrement
en enregistrement.

204
9 Crer un formulaire et saisir les donnes
Comme la table des Stagiaires ne comporte aucune donne, ce formu-
laire apparat vierge.
Remarquez lindication (Nouv.) dans le champ NumeroStagiaire (pour
indiquer quil sagit dun nouvel enregistrement), ainsi que la prsence
dun compteur denregistrement en bas de lcran pour naviguer denre-
gistrement en enregistrement.
Remarquez galement, dans le volet de navigation, la prsence de ce for-
mulaire Stagiaires dans la liste des formulaires disponibles. TRUC Limportance
de la cohrence des noms
Maintenant, la facilit avec laquelle nous avons cr ce formulaire ne
doit pas masquer quelques dfauts : Nous avons largement insist sur limportance de
la cohrence et de la lisibilit des noms utiliss
Les noms de champs ont t repris comme tiquettes de champs. pour les objets et les champs. Nous en voyons ici
Cest parfaitement logique, mais pas forcment clair pour un opra- toute limportance : le formulaire bas sur la table
teur de saisie dont le travail nest pas de dcrypter le jargon utilis par des Stagiaires sappelle automatiquement de ce
mme nom. Imaginez un instant que nous ayons
le crateur de la base de donnes. appel cette table Stagaires (avec une faute
Ltiquette DateNaissanceStagiaire napparat pas en entier. dorthographe), cette faute nous aurait poursuivi
tout au long de la vie de la base.
Nous allons remdier simplement ces quelques dfauts en modifiant le
formulaire en mode Cration (bauche pour Base).

Modifier un formulaire
Les techniques de modification de formulaires (ou dtats comme nous
le verrons page 325) ne sont pas trs compliques en soi, mais elles sont
dlicates mettre en uvre : elles demandent pas mal dhabilet dans le
maniement de la souris et du clavier. Il va sagir en quelque sorte dun jeu
de gommettes comme la maternelle, ou de Post-it si vous prfrez,
dans lequel nous allons jouer sur la taille, le contenu et la position des
diffrents lments du formulaire (ses contrles) sur le cadre du formu-
laire en lui-mme.
Il nest pas trs facile darriver du premier coup ses fins, il est mme
possible que vos perdiez des donnes importantes lors de vos premires
tentatives. Cest pourquoi nous vous conseillons de travailler sur une
copie du formulaire (voir page 161) pour tester vos modifications.

ATTENTION Ne jamais conserver des versions inutiles dobjets

Le gros risque quand on fait des copies dobjets au sein de la mme base est bien videm-
ment doublier de supprimer des lments obsoltes, voire innapropris ou mme faux. La
confusion va sinstaller. La plus grande rigueur est donc ncessaire ce stade : toujours
supprimer les objets qui nont plus dutilit !

205
DExcel Access

Ceci dit, vous devrez rarement modifier un formulaire cr par lassis-


tant. Notre formulaire Stagiaire est exploitable tel quel, mme sil nest
pas parfait. Concrtement, si on est press ou si la perfection de prsen-
tation nest pas requise, un formulaire issu directement de lassistant
pourra trs bien convenir. Avis aux paresseux ou aux gens qui ne souhai-
tent pas inutilement perdre leur temps...
Pour modifier un objet, par exemple un formulaire, il faut utiliser le
mode Cration (notez quavec Access 2007 nous utiliserons une variante
de ce mode appel Page). La figure 915 prsente laspect dun formu-
laire en mode Cration, ici sous Access 2007, mais la prsentation
Access 2003 et Base nest pas significativement diffrente.

Figure 915
Le formulaire Stagiaires
en mode Cration sous Access 2007

La section centrale de cette figure 915 prsente le formulaire en lui-


mme. On y voit des lments qui serviront, en mode Contenu, afficher
les donnes. Ces lments sappellent des contrles. Notre formulaire
des Stagiaires comporte ici cinq contrles, un pour chacun des champs
que ce formulaire permettra de saisir (en lespce les quatre champs de
notre table des Stagiaires).

Figure 916
Un formulaire en mode Contenu,
avec cinq contrles, leur tiquette
et leur contrle proprement dits

206
9 Crer un formulaire et saisir les donnes
La figure 916 permet de mieux comprendre ce quest un contrle et ses
diffrents lments. Cette figure visualise le formulaire dfinitif des Sta-
giaires, en mode Contenu cette fois, avec des donnes saisies :
gauche, ltiquette du contrle, son titre. Il ne sagit que dune ti-
quette destine informer loprateur du champ sur lequel est plac
modifiable volont dans son emplacement.
droite, le contrle en lui-mme, qui correspond au champ propre-
ment dit. Cest sur ce contrle que loprateur de saisie se place
quand il saisira les donnes.
Modifier un formulaire reviendra alors modifier les tiquettes des con-
trles pour les rendre plus lisibles (par exemple, Nom du stagiaire au lieu
de NomStagiaire), ainsi qu dplacer et redimensionner les contrles
(tiquette et contrle la fois).
Nous allons maintenant tudier comment effectuer concrtement les
modifications les plus courantes. Nous allons calquer nos explications sur
le mode Page dAccess 2007, spcifiquement destin ce type de manipu-
lation et intermdiaire entre le mode Contenu et le mode Cration.

BASE Modifier un formulaire

Il existe deux diffrences essentielles par rapport Access 2007. Tout dabord, puisquil
ny a pas de mode Page, il faut utiliser le mode bauche. Ensuite, la mthode pour modi-
fier les proprits du contrle est diffrente :
1. Slectionnez le contrle concern dans le mode bauche et, par un clic droit, choi-
sissez loption Contrle.
2. La bote de dialogue Proprits saffiche (figure 917). Il est possible de changer
police et alignement, de choisir une couleur darrire plan, dafficher une info bulle
(mini message dinformation daide la saisie) ou de dsactiver le contrle (en affec-
tant la valeur Non la proprit Activ).

Figure 917 La fentre Proprits dun contrle de formulaire en mode bauche

207
DExcel Access

ACCESS 2003 Modifier un formulaire

Les principes exposs ci-dessous pour Access 2007 sont pour lessentiel galement vala-
bles pour Access 2003.
La principale diffrence tient labsence du mode Page dAccess 2007. Il faudra donc
ouvrir le formulaire modifier en mode Cration, il offrira les mmes possibilits, mais
avec moins de confort dutilisation (les contrles ne vont pas automatiquement se rali-
gner comme avec Access 2007 par exemple ; il faudra le faire manuellement en effectuant
un cliquer-glisser).

Pour afficher un formulaire en mode Page, il faut distinguer selon que le


formulaire est dj ouvert ou non :
Sil est dj ouvert : par un clic droit dans le volet de navigation sur le
nom du formulaire, choisissez loption Mode Page. Vous pouvez aussi
cliquer sur la flche de liste droulante du bouton de changement de
mode daffichage (en haut gauche de longlet Accueil, figure 918),
et choisir loption Mode Page.
Si le formulaire nest pas ouvert, slectionnez-le dans le volet de navi-
gation, cliquez dessus avec le bouton droit et choisissez mode Page.
La figure 919 dtaille le formulaire Stagiaires en mode Page :
Au centre de lcran se trouve le formulaire en lui-mme. On
Figure 918 remarque que lon peut en slectionner une partie en cliquant dessus,
Basculer un formulaire en mode Page celle-ci sentoure alors dun liser orange.
En haut de lcran on a la possibilit dafficher deux rubans doutils
spcifiques, Format (par dfaut) et Rorganiser.
droite de lcran, on trouve la liste des champs disponibles pour ce
formulaire (ceux de la table source des Stagiaires).

Figure 919
Le formulaire Stagiaires en mode Page. Le titre
de ce formulaire (le mot Stagiaires) est entour
dun liser, il est donc slectionn.

208
9 Crer un formulaire et saisir les donnes
La section centrale prsente le formulaire en lui-mme et ses contrles,
ici au nombre de cinq.
Commenons par modifier les tiquettes des contrles. Nous raligne-
rons et redimensionnerons les contrles ensuite.

Modifier ltiquette dun contrle de formulaire


Illustrons la procdure de modification dune tiquette par celle de lti-
ATTENTION Slectionner ltiquette ou le
quette du champ NumeroStagiaire : contrle en lui-mme
1 Cliquez sur ltiquette modifier. Elle sentoure dun liser orange
Le contrle se compose du contrle en lui-mme
(figure 920). ( droite) et de son tiquette ( gauche). Il est
2 Cliquez nouveau sur ltiquette. Le liser disparat, vous entrez possible de modifier le texte de ltiquette
dans le texte de ltiquette proprement dit (le point dinsertion cli- comme nous venons de le faire, mais bien vi-
demment pas le contrle en lui mme qui cor-
gnote dans le texte). respond au champ en lui mme.
3 Modifiez le texte comme vous le souhaitez (figure 921).
4 Cliquez nimporte o sur le formulaire pour valider et stopper la
modification de ltiquette. La modification est valide (figure 922).

Figure 920 Ltiquette modifier Figure 921 Le texte de ltiquette Figure 922 Ltiquette a t modifie.
est slectionne (liser orange pais). est modifiable (liser noir normal). Remarquez quAccess a dcal les contrles
en eux-mmes pour tenir compte de la nouvelle
tiquette plus large.

Rptez cette opration pour tous les champs du formulaire des sta-
giaires (figure 923). Remarquez quAccess a dcal vers la droite les
contrles pour viter le chevauchement avec les nouvelles tiquettes.

Figure 923
Toutes les tiquettes ont t modifies. Access a dplac
les contrles vers la droite pour viter le chevauchement.

Dplacer et redimensionner un contrle dun formulaire


Dplacer et redimensionner un contrle sont les deux oprations les plus
frquentes ds lors que lon veut obtenir une prsentation impeccable.

209
DExcel Access

INFO Les contrles se rencontrent Ce sont malheureusement aussi deux oprations pnibles et dlicates si
aussi sur les tats/rapports on ny est pas habitu.
Les tats (ou rapports sous Base), dont nous parle- Le principe gnral est de dplacer et de redimensionner le contrle,
rons au chapitre 13, sont des objets qui permet-
exactement comme vous le feriez dune forme sous Excel, Word ou
tent dobtenir, comme leur nom lindique, des
prsentations impeccables des tables ou des Powerpoint, en effectuant un cliquer-glisser (pour le dplacer) ou en
requtes dune table. Comme les formulaires, ils se slectionnant un bord du contrle puis en le faisant glisser (pour redi-
crent trs facilement avec les assistants. Comme mensionner le contrle).
les formulaires, ils donnent souvent satisfaction du
premier coup. Comme les formulaires, modifier Le meilleur conseil quon puisse vous donner en la matire est dexpri-
leur apparence est dlicat (car il sagira de menter ces manipulations en utilisant une copie de votre formulaire en
dplacer ou redimensionner des contrles). mode Page. Le formulaire dorigine ne sera alors pas modifi et vous
pourrez vous exercer en toute tranquillit.

ALLER PLUS LOIN viter la tabulation dans le champ cl primaire de la table

Quand nous naviguerons dans notre formulaire en mode Contenu pour saisir des don-
nes (page 226), nous utiliserons la touche Tabulation pour naviguer de contrle en con-
trle. Le champ cl primaire de la table (dans notre exemple NumeroStagiaire) tant un
champ numrotation automatique, il ne sera pas possible de le modifier manuellement.
Le plus sr sera alors dinterdire la tabulation sur ce champ ; concrtement, lors de la
saisie de donnes, le pointeur ne sarrtera pas sur le champ quand nous utiliserons la
touche de tabulation et tout risque derreur de saisie sera vit. Voici comment procder
dans un formulaire en mode Page :
1. Slectionnez le contrle (ici, NumeroStagiaire).
2. Appelez le menu contextuel par un clic droit, puis slectionnez Proprits.
3. La Feuille des proprits apparat sur le cot droit de lcran. Cliquez sur longlet
Autres et forcez la ligne Arrt tabulation de Oui Non (figure 924).

Ceci clt notre expos concernant la cration de formulaire simple. Vous


Figure 924 La ligne Arrt tabulation
voici arms pour crer tous les formulaires des diffrentes tables de notre
du champ NumeroStagiaire est force Non :
le pointeur ne se positionnera plus cas pratique. La section suivante ne concerne que les utilisateurs de Base.
sur ce contrle en mode Contenu. Si vous utilisez Access, passez directement la page 215.

Crer un formulaire avec liste de choix sous Base


Une liste de choix, rappelons-le, permet dans le formulaire dune table
esclave, de slectionner la valeur de la cl trangre parmi les valeurs qua
la cl primaire de la table matre. Par exemple, en utilisant le formulaire
Activites, il sera possible de slectionner pour le champ NumeroGuide
parmi toutes les occurrences du champ NumeroGuide dans la table des
Guides (et donc de choisir un guide parmi ceux de la table). Il sagit l
bien videmment dune aide considrable la saisie.

210
9 Crer un formulaire et saisir les donnes
Les formulaires crs sous Access comportent automatiquement ces
listes de choix, puisquelles sont directement intgres dans les pro-
prits des champs comme nous lavons vu (page 170).
Par contre, pour les raisons inverses (les champs dune table Base ne
comportent pas la proprit Liste de choix), les formulaires Base ne com-
portent pas par dfaut de liste de choix. Il faut donc les paramtrer la
main ; cest lobjet de cette section.
Pour cette dmonstration, nous allons prendre lexemple du formulaire
des Guides. Dans ce formulaire, le champ BureauGuides devra com-
porter une liste de choix par rapport aux trois valeurs (Chamonix,
Argentire et Les Houches) du mme champ de la table des
BureauxGuides.
Le mode opratoire est globalement le suivant :
1 Ouvrir le formulaire pralablement cr grce lassistant en mode
bauche.
2 Supprimer le contrle considr (ici, BureauGuides) en le slection-
nant et en appuyant sur la touche Suppression de votre clavier.
3 Insrer le contrle de formulaire Zone de liste pour recrer le contrle
(ici, BureauGuides), avec cette fois-ci une liste de choix, et insrer
une tiquette pour indiquer le nom du champ.
Dtaillons la dernire tape, linsertion et le paramtrage du contrle de
formulaire Zone de liste et linsertion dune tiquette.

Insrer la liste de choix


Linsertion de la liste de choix avec Base passe par linsertion dun con-
trle spcifique appel Zone de liste dans le formulaire. Voici comment
procder, aprs avoir ouvert le formulaire en mode bauche et supprim
le contrle pour lequel on souhaite insrer la liste de choix :
1 Demandez si ncessaire laffichage de la barre doutil Contrles de formu- Figure 925
laire par le menu Affichage, options Barre doutils puis Contrles de for- Loutil Zone de liste permet
dinsrer un contrle de zone
mulaire. Cette barre doutils comporte notamment loutil Zone de liste
de liste dans un formulaire
(figure 925) qui va justement permettre dinsrer notre liste de choix. en mode bauche.
2 Pour insrer la zone de liste, il suffit de slectionner loutil Zone de
liste et de dessiner sur le fond de formulaire le contrle lendroit o
lon dsire le placer, figure 926. Nous entrons ds lors sous le con-
trle de lAssistant Zone de liste.
3 Premire tape : le choix de table. Bien videmment, dans notre cas,
nous slectionnons la table BureauxGuides, figure 927. Cliquez sur
Suivant.

211
DExcel Access

Figure 926
Le contrle Zone de liste
se dimensionnera selon cette plage.

Figure 927
Les diffrentes tables disponibles
pour servir de source la zone de liste

4 Deuxime tape : choix du champ. Slectionnez dans cet cran le


champ devant safficher dans la liste de choix. Dans notre exemple, il
sagit de BureauGuide, figure 928. Attention, ce champ est nces-
sairement cl primaire de la table source (dans le cas contraire il ny
aura pas de relation de un plusieurs. Cliquez sur Suivant.
5 Troisime tape : liaison des champs. Cette tape permet de lier le
champ de la table esclave ( gauche) avec celui de la table matre (
droite), figure 929.

212
9 Crer un formulaire et saisir les donnes
Figure 928
Slection du champ de la liste droulante

Figure 929
Liaison des champs. Slectionner droite
et gauche le mme champ, gauche
Cl trangre, droite Cl primaire.

Aprs avoir cliqu sur Terminer, Base affiche le formulaire avec la liste
droulante, figure 930. Reste insrer ltiquette correspondante,
puisque rien nindique sur ce contrle de quel champ il sagit.

213
DExcel Access

Figure 930
Le formulaire avec la liste droulante
(mais sans son tiquette)

Insrer ltiquette de la liste de choix


Pour insrer une tiquette de champ, il faut afficher la barre doutils Con-
trles de formulaire, voir page 211. Le contrle utiliser pour une ti-
quette est le contrle ABC :
1 Slectionnez le contrle ABC (figure 931).
Figure 931 2 Dessinez le cadre de ltiquette par un cliquer-glisser.
Le contrle tiquette ABC 3 Double-cliquez sur le contrle et activez longlet Gnral des Pro-
de la barre doutil Contrles
prits du contrle.
de formulaire permet
dinsrer des zones de texte 4 Saisissez le texte afficher dans la proprit Titre (ici, Bureau des
ou des tiquettes. guides , figure 932).
5 Validez la modification en fermant la bote de dialogue Proprits.
La modification est effectue. Nous pouvons maintenant fermer notre
formulaire (en lenregistrant ventuellement) et le rouvrir en mode
Contenu) : il suffit alors de cliquer sur la flche de la liste droulante
pour visualiser les options possibles, figure 933.

Figure 932
La modification de la ligne Titre
de longlet Gnral des Proprits
du contrle tiquette permet dafficher
le texte souhait dans ltiquette.

214
9 Crer un formulaire et saisir les donnes
Figure 933
Le formulaire en mode Saisie comporte
bien la liste droulante avec les diffrentes
valeurs de la table matre associe.

Les perfectionnistes nont plus qu ajuster les tailles et les alignements


de champs pour obtenir un formulaire parfait.

Aller plus loin avec les formulaires


Nous venons de crer des formulaires simples avec les assistants.
Gageons quils vous conviendront dans la majorit des cas.
Mais il existe dautres types de formulaires, plus volus, avec donc des ALLER PLUS LOIN Crer un formulaire
possibilits dutilisation accrues. Nous allons, dans cette section, dcou- bas sur une requte avec Access
vrir comment crer un formulaire permettant dagir sur deux tables la Nous navons cr jusqu prsent que des formu-
fois (par exemple pour saisir des donnes concernant un stagiaire et ses laires bass sur des tables. Il peut tre utile den
inscriptions). Nous verrons aussi que nous pouvons faciliter lutilisation crer par rapport des requtes, par exemple pour
de notre base en crant un menu daccueil convivial avec des boutons faciliter la saisie de nos inscriptions. Nous tudie-
rons cette technique dans le chapitre 10 consacr
ouvrant automatiquement tous les objets de notre base, afin quun no- aux requtes, page 248.
phyte puisse sen servir.

Crer un formulaire pour agir sur deux tables la fois


Un formulaire avec un sous-formulaire permet de saisir, modifier et visua-
liser les donnes de deux tables la fois. Imaginons par exemple que nous
voulions afficher simultanment les informations de la table des Stagiaires
et des Inscriptions, pour pouvoir notamment la fois visualiser et modifier
les donnes relatives au stagiaire et ses inscriptions.
cet effet, il suffit de crer un nouveau formulaire avec lassistant cration
de formulaire. La procdure ci-dessous dcrit alors les tapes suivre avec
Access 2007 et 2003 aprs avoir lanc lassistant de cration de formulaire
(les utilisateurs de Base se reporteront lapart spcifique).

215
DExcel Access

la premire tape de lassistant, lcran de slection des tables et des


champs, slectionnez les champs des deux tables souhaites. Dans notre
exemple :
1 Slectionnez la table Stagiaires dans la liste de choix des tables.
2 Slectionnez tous les champs de cette table.
3 Slectionnez, sans passer lcran suivant, la table des Inscriptions.
4 Slectionnez alors les champs de cette table ( lexception du champ
NumeroStagiaire, cl trangre de cette table et dj affich avec le
champ cl NumeroStagiaire de la table des Stagiaires). Vous devez
alors obtenir laffichage de la figure 934.

Figure 934
Les champs slectionns pour le formulaire
avec sous-formulaire

ALLER PLUS LOIN Formulaire attach Ltape suivante propose de prsenter les informations par Stagiaires ou par
Loption Formulaire attach va afficher sur le for-
Inscriptions (en fonction des tables que nous avons slectionnes dans ltape
mulaire principal un bouton sur lequel il faudra cli- prcdente). Elle laisse aussi le choix entre Formulaire avec sous-formulaire
quer afin douvrir le sous-formulaire. Cest notre (recommand) ou Formulaire attach. Validez les rglages de la figure 935.
avis moins pratique que loption Formulaire avec
sous-formulaire dans laquelle les deux formulaires
souvrent lun dans lautre. Mais rien ne vous
empche de vous faire votre opinion.

Figure 935
Il est possible de prsenter le formulaire
organis selon la premire table
slectionne ou selon la seconde

216
9 Crer un formulaire et saisir les donnes
Ltape suivante permet de choisir, entre plusieurs prsentations, celle que
vous souhaitez appliquer au sous-formulaire. Nous avons opt pour Feuille
de donnes, les donnes de notre sous-formulaire vont donc apparatre
comme sous un tableur.
Les deux dernires tapes sont trs simples. Commencez par choisir un style
de prsentation votre got. Sur lcran final, pensez modifier les noms
proposs par dfaut pour le formulaire et le sous-formulaire (figure 936).

Figure 936 Ne pas oublier de nommer le formulaire et le sous-formulaire


(ici, avec le mme nom que le formulaire, SF signifiant sous-formulaire)

Le formulaire est termin, vous obtenez un rsultat proche de la


figure 937. Il est constitu dun formulaire (pour les stagiaires) incluant
un autre formulaire (pour les inscriptions), la manire des poupes
russes, chacun dentre eux fonctionnant exactement comme tous les
autres formulaires.

Figure 937
Des formulaires gigognes permettant
dagir sur plusieurs tables simultanment

217
DExcel Access

BASE Formulaire et sous-formulaire


La mthodologie de cration dun couple formulaire/sous-formulaire
sous Base est trs semblable la mthode adapte Access, quel-
ques dtails dergonomie prs. Elle passe par lAssistant formulaire :
1. Slectionnez la premire table (celle devant figurer dans le formu-
laire principal) et les champs souhaits (ici, tous les champs de
cette table).
2. Slectionnez successivement la deuxime tape de lassistant
Ajouter un sous-formulaire, Sous-formulaire bas sur une
relation existante et enfin la relation concerne (ici, Inscrip-
tions), figure 938.
3. Ajoutez les champs du sous-formulaire (ici, les 2 champs Numero-
Inscription, NomActivite, lexclusion de NumeroStagiaire dj
inclus dans le formulaire principal).
4. partir de ce moment, le paramtrage du sous-formulaire tant
effectif, lassistant droule les mmes tapes que pour un formu- Figure 938 Ne pas sauter ltape
laire ordinaire. Ajouter un sous-formulaire si on veut en obtenir un !

Crer un menu douverture pour nophyte avec Access


Vous avez suffisamment de connaissances sur les SGBDR pour savoir
PRODUCTIVIT Un menu permet dviter quune base de donnes contient trs vite de nombreux objets. Par exemple,
douvrir un objet inappropri
la base de notre cas pratique contient dj quatre tables (cinq avec Base) et
Nous venons de crer un formulaire avec sous- autant de formulaires ; sans compter le formulaire et son sous-formulaire.
formulaire. Ce sous-formulaire na pas dutilit
Et nous nen sommes quau dbut : dautres objets, comme des requtes et
sans son formulaire. Or un oprateur non inform
pourrait parfaitement louvrir seul, puisquil appa- des tats/rapports, vont venir rejoindre notre collection.
rat dans le volet de navigation. Crer un menu Autant dire que nous risquons de nous perdre. Alors imaginez pour
permet donc de ne pas laisser loprateur la pos-
sibilit de se tromper.
lutilisateur de notre base qui ne connat ni Access ni les particularits de
notre base...
En dautres termes, lclatement des informations et des traitements va
rapidement compliquer lutilisation quotidienne de la base, surtout si elle
est employe par plusieurs personnes : comment sy retrouver ?
Une solution simple et lgante consiste crer un formulaire qui
souvrira automatiquement et qui regroupera diffrents boutons ddis
telle ou telle tche, un peu la manire des liens hypertextes dune page
Web : il suffira de cliquer sur le bon bouton.
Cette possibilit nest malheureusement offerte que par Access. Il va fal-
loir crer un formulaire spcifique avec les boutons daction puis para-
mtrer louverture automatique de ce formulaire.

Crer le formulaire de menu


Un formulaire de menu est un formulaire ordinaire, la nuance prs quil
ne contient aucun contrle daccs aux champs dune table, mais unique-

218
9 Crer un formulaire et saisir les donnes
ment des boutons daction permettant deffectuer telle ou telle action
(ouvrir une table, un formulaire, etc.).
Illustrons cette procdure en crant un menu qui comporte un bouton
permettant douvrir notre formulaire des Stagiaires. Bien videmment,
ce menu pourra comporter autant de boutons que souhait...
Cette procdure commence par la cration dun formulaire vierge. Inu-
tile dans ce cas dutiliser lassistant cration de formulaire, il suffit de
crer un nouveau formulaire en mode Cration.
Pour insrer un bouton daction sur ce nouveau formulaire :
1 Slectionnez loutil Bouton de longlet Outils de cration de formulaire,
onglet Cration, groupe Contrles.
2 Dessinez un bouton sur le formulaire par un cliquer-glisser.
3 Slectionnez laction que devra effectuer le bouton, dans cet exemple
Oprations sur formulaire et Ouvrir un formulaire, figure 939.

Figure 939
Le choix de laction effectuer
par un bouton daction de formulaire menu

4 Slectionnez lobjet souhait (ici, le formulaire des Stagiaires),


figure 940.

Figure 940
Le choix de lobjet ouvrir
sur un formulaire menu

219
DExcel Access

5 Lassistant propose alors douvrir le formulaire pour rechercher un enre-


gistrement spcifique ou pour accder tous les enregistrements. Nous
avons choisi la seconde option (celle par dfaut) sur la figure 941.

Figure 941
Le formulaire aura accs
tous les enregistrements de la table.

6 Prfrez laffichage dun bouton avec du texte et modifiez le texte par


dfaut, comme sur la figure 942.

Figure 942
Bien penser modifier le nom du bouton

7 Ltape finale de lassistant vous propose de nommer votre bouton,


pour pouvoir vous y retrouver aprs. Modifiez si vous le souhaitez ce
nom, et cliquez sur Terminer. Cest fait.
Il ne reste qu enregistrer ce formulaire en le nommant Menu par exemple.
Pour tester ce formulaire, ouvrez-le en mode Contenu. Cliquez sur le
bouton que nous venons de crer, il excute alors laction programme
(ici, louverture de notre formulaire Stagiaires).
Reste maintenant automatiser laffichage de ce formulaire lors de
louverture de la base, et la cration de notre menu ouverture automa-
tique sera termine.

220
9 Crer un formulaire et saisir les donnes
ACCESS 2003 Afficher les contrles de formulaire

Appelez le menu Affichage, puis slectionnez loption Bote outils, figure 943.

Figure 943 Les diffrents contrles de la bote outils de formulaire (Access 2003).
Le bouton daction est encadr.

Automatiser louverture dun formulaire STOP Vous ne voulez plus du menu


ouverture automatique
Pour paramtrer louverture automatique dun formulaire, par exemple
notre menu, lors de louverture de la base de donnes, il faut : Si vous en avez assez du menu ouverture auto-
matique, vous pouvez trs bien le fermer en cli-
Sous Access 2007 : cliquez sur le bouton Office, puis sur le bouton quant en haut droite sur le bouton de fermeture
Options Access (tout en bas droite) et enfin, dans la catgorie Base de Windows. Vous pouvez aussi effectuer les opra-
donnes active, slectionnez le formulaire Menu dans la liste drou- tions dautomatisation douverture decrites ci-
lante de Afficher le formulaire, comme le montre la figure 944. contre lenvers

Figure 944
Le formulaire Menu souvrira
automatiquement louverture de la base.

Sous Access 2003 : dans le menu Outils, option Dmarrage, slec-


tionnez le formulaire Menu dans la liste droulante de Afficher formu-
laire/page.
la prochaine ouverture de la base, notre formulaire de menu souvrira
automatiquement comme souhait. Nous naurons plus qu cliquer sur les
boutons disponibles pour effectuer automatiquement laction attache.

221
DExcel Access

Saisir et modifier les donnes


Nous avons programm les tables de notre base selon notre schma rel.
Nous avons cr tous les champs de chaque table, en dfinissant leurs pro-
prits. Dans chaque table, et parmi ses champs, nous avons choisi une cl
primaire. Nous avons tabli les relations entre les tables matres et les
tables esclaves et paramtr lintgrit rfrentielle. Nous avons cr tous
les formulaires ncessaires la saisie de nos donnes.
Nous pouvons maintenant saisir les donnes de notre base. Elles peuvent
tre saisies ou modifies via les formulaires, ou directement dans les
tables. part quelques dtails dergonomie auxquels vous allez vite vous
habituer, la manire de saisir les donnes ne devrait pas vous perturber :
on sy fait assez vite.
Cependant, deux particularits importantes diffrencient cette saisie
dans une base de donnes relationnelle celle dans un tableur ou un trai-
tement de texte. Nous les aborderons ci-dessous.

Les spcificits de la saisie des donnes dans une base


de donnes relationnelle
La saisie des donnes dans une base de donnes prsente deux caract-
ristiques trs importantes :
Dabord les contraintes dintgrit rfrentielle vous interdiront (heu-
reusement) certaines manipulations. Par exemple, vous ne pourrez
pas inscrire un stagiaire une activit qui nexiste pas, pas plus que
vous ne pourrez supprimer un guide encadrant une activit (ou une
activit comportant des inscrits).
Ensuite toutes les donnes saisies sont enregistres immdiatement
et automatiquement dans la base et les tables sont mises jour et
enregistres en temps rel. Toute suppression denregistrement sera
dfinitive !

Les contraintes dintgrit rfrentielle


Les tables ne peuvent tre cres dans nimporte quel ordre. Il est indis-
pensable de respecter la hirarchie matreesclave. La mme exigence
subsiste lors de la saisie des donnes. La table matre sera toujours la pre-
mire servie : comment envisager la saisie dune activit avant que son
guide titulaire ait lui-mme t saisi ?

222
9 Crer un formulaire et saisir les donnes
Nous allons donc saisir nos donnes dans lordre suivant :
1 Les tables matres : Stagiaires puis Guides ou Guides puis Stagiaires ;
2 La table esclavematre Activites ;
3 La table esclave Inscriptions.
Les mmes contraintes auront les mmes effets ds quil sagira de sup-
primer des donnes (dautant que, comme nous le verrons, toute sup-
pression denregistrement est dfinitive) : il ne sera pas possible de
supprimer un enregistrement de la table matre tant que des enregistre-
ments lis seront encore prsents dans les tables esclaves. En clair, dans
notre cas pratique :
On ne peut supprimer un guide de la table des Guides tant quune
activit de la table Activites est encadre par celui-ci, cest dire tant
que le NumeroGuide de ce guide est prsent dans un enregistrement
de la table Activits.
On ne peut supprimer une activit de la table Activites tant quun sta-
giaire y est inscrit, cest dire tant que le NomActivite de cette activit
est prsent dans un enregistrement de la table Inscriptions.
On ne peut supprimer un stagiaire de la table Stagiaires tant quil est
inscrit une activit, cest dire tant que son NumeroStagiaire est
prsent dans un enregistrement de la table Inscriptions.
Et enfin les utilisateurs de Base ne pourront supprimer un bureau des
guides dans la table BureauxGuides tant quun guide de la table
Guides y sera inscrit, cest dire tant que son nom est prsent dans le
champ BureauGuides la table Guides.

Les donnes sont enregistres immdiatement


Sous tableur ou traitement de texte, tant que le fichier correspondant
nest pas enregistr, les donnes ne sont pas dfinitivement modifies.
On peut toujours utiliser le bouton Annuler pour revenir en arrire sur la
saisie. On peut aussi fermer le fichier en cours, sans lenregistrer, et rou- IMPORTANT Le message Voulez-vous
vrir la version prcdente. enregistrer les modifications
apportes ?
Sous SGBDR, la logique est totalement diffrente. Le logiciel teste la vali-
dit des donnes (doublons, proprits, format, valeurs autorises...) et, si Parfois, par exemple en fermant un formulaire ou
une table, le message Voulez-vous enregis-
elles sont valides, il les enregistre automatiquement dans la table, comme trer les modifications apportes ? saffiche.
sur la figure 945. Cette caractristique (perturbante au dbut, mais on sy Ce message ne concerne pas les donnes saisies,
habitue trs vite) a plusieurs consquences quil faut bien avoir en tte : nous vous confirmons quelles sont dj enregis-
Toute saisie est enregistre immdiatement. tres. Il napparat en fait que si vous avez modifi
la structure du formulaire ou de la table (par
Toute modification de donnes est immdiatement prise en compte. exemple, vous avez effectu un tri de la table) ;
Toute suppression de donnes est immdiatement excute. dans ce cas, le message denregistrement ne con-
cerne que cette modification de structure.
Il est inutile denregistrer la base aprs saisie pour enregistrer les donnes.

223
DExcel Access

Figure 945
Les donnes valides sont enregistres
automatiquement dans la base de donnes.

Les figures 946 949 reprsentent les donnes que nous vous propo-
sons de saisir dans votre base dcole dalpinisme.

Figure 946
Les donnes de la table Stagiaires

Figure 947
Les donnes de la table Guides

Figure 948 Les donnes de la table Activites Figure 949 Les donnes de la table Inscriptions

224
9 Crer un formulaire et saisir les donnes
Les volumes de donnes proposs pour notre cas pratique sont trs fai- PRCISION Ne pas saisir les champs
bles. Cest simplement pour ne pas insister trop lourdement sur la phase numrotation automatique
de saisie des donnes, qui reste en tout tat de cause assez pnible, et Les donnes gnres par lordinateur (cls pri-
pour garder une certaine souplesse de travail. Il est vident quun maires numrotation automatique) ne sont vi-
SGBDR est conu pour traiter des volumes bien plus consquents (des demment pas saisir : champs NumeroStagiaire,
NumeroGuide, DateInscription (Access) ou Nume-
milliers, voire des millions denregistrements). roInscription (Base).

Saisir, modifier et supprimer des donnes


Cette section va voquer lessentiel savoir en matire de cration, de modi-
fication et de suppression denregistrement, en commenant par le choix de
la technique de saisie, via un formulaire ou directement dans la table.

Saisir un formulaire ou directement dans la table


Les donnes peuvent se visualiser, se saisir, se modifier ou se supprimer en
passant par un formulaire ou directement dans la table en mode Contenu.
Chaque technique prsente des avantages et des inconvnients. Difficile
de vous conseiller en la matire, tant les prfrences personnelles de
chacun ont dimportance.Cependant, les caractristiques principales de
chaque technique peuvent dgager des rgles gnrales de choix, vous
de choisir :
Un formulaire donne une vision claire dun seul enregistrement la
fois. Utiliser un formulaire est donc en gnral plus confortable. On y
perd par contre la vision globale de la table puisquon ne voit quun
seul enregistrement.
Inversement, saisir directement dans une table apporte une vision
globale de tous les enregistrements, mais trs compacte et plus
fouillis. La visualisation des dtails dun enregistrement est donc plus
dlicate, mais la vision globale de la table est meilleure.
Puisquen gnral la saisie est tout de mme facilite par les formulaires,
tudions cette technique en premier.

Saisir des donnes avec un formulaire


Pour ouvrir un formulaire en mode Contenu, cest dire pour visualiser, TRUC Crer un nouvel enregistrement
ajouter, modifier ou supprimer des enregistrements, il suffit de double- Quand le curseur est positionn dans le dernier
cliquer sur le nom du formulaire dans lcran daccueil de la base (ou cli- champ du dernier enregistrement, appuyer sur
quer sur le bouton appropri du menu daccueil). Tabulation le positionne dans le premier champ
dun nouvel enregistrement.
Ce mode est assez intuitif, peu de temps suffit pour sy habituer :
On se dplace de champ en champ par les touches Tabulation (et Shift
+ Tabulation pour se dplacer en marche arrire) ou par les touches de
dplacement en bas de lcran, comme sur la figure 950.

225
DExcel Access

On cre un nouvel enregistrement en cliquant en bas du formulaire


sur licne Nouvel enregistrement, comme sur la figure 950.

Figure 950 Les boutons de dplacement dans un formulaire. De gauche droite,


premier enregistrement, enregistrement prcdent, compteur denregistrement,
enregistrement suivant, dernier enregistrement, nouvel enregistrement
ACCESS ET BASE Les champs numrotation
automatique ne dmarrent pas de la
On se dplace de champ en champ en cliquant sur les boutons de
mme valeur
dplacement entre enregistrements en bas de formulaire, comme le
Les champs numrotation automatique sincr- montre la figure 950.
mentent automatiquement la saisie. Il ne faut
videmment pas les saisir (dailleurs ce sera Vous apprcierez notamment le confort apport par les listes de choix
impossible). Avec Access la numrotation com- dans les champs cl trangre des tables esclaves : par exemple, en saisis-
mence 1 et 0 avec Base.
sant les inscriptions, vous naurez qu faire votre choix parmi les sta-
giaires et les activits disponibles.

Saisir des donnes directement dans une table


Le formulaire ntant quune aide la saisie, rien ninterdit de saisir les
donnes directement dans les tables. Il suffit douvrir la table en mode
Contenu.

ACCESS 2007 ET 2003 La liaison entre tables matre et esclave


est visualise en mode Contenu de la table

Les enregistrements dune table matre sont prcds du symbole +. Cliquer sur + permet
de visualiser les enregistrements lis, figure 951. Cette option nest pas disponible avec
Base.

Figure 951 Lactivit dpendant du guide n4, Eddy D.

Une table en mode Contenu ressemble trangement une feuille de


calcul dun tableur, avec des lignes (correspondant des enregistrements)
et des colonnes (reprsentant les champs). La ligne vierge en bas de
tableau reprsente un nouvel enregistrement. Il suffit de passer de cellule
en cellule et dalimenter les champs. Les listes de choix ventuellement

226
9 Crer un formulaire et saisir les donnes
paramtres sont disponibles. Les figures 946 949 page 224 illus-
trent des tables en mode Contenu.

Modifier et supprimer des donnes


Rappelons ce principe fondamental : toute modification ou suppression
de donnes est dfinitive, il nest pas possible dy revenir (sauf, bien
entendu, si lon ressaisit les donnes dorigine). En particulier, les outils
Annuler ou les combinaisons Ctrl + Z sont inoprants dans ce cas.
Pour modifier un enregistrement, il faut se positionner sur lenregistre-
ment et le champ souhaits, et le modifier. La modification sera son
tour teste selon les rgles de validation et enregistre automatiquement. TRUC Modifier ou supprimer un
enregistrement en mode Contenu
Pour supprimer un enregistrement : dune table
Avec un formulaire, slectionnez lenregistrement et cliquez sur Visualiser une table en mode Contenu permet
loutil Supprimer. davoir une vue gnrale de son contenu. Il est donc
En mode Contenu dune table, slectionnez lenregistrement comme souvent plus facile de rechercher et de modifier/sup-
primer un enregistrement par ce biais plutt que par
avec un tableur (en slectionnant la ligne complte) et utiliser le
un formulaire qui ne donne que la vision dun seul
bouton Supprimer (ou la touche Suppression de votre clavier). enregistrement et avec lequel on peut trs bien se
Dans les deux cas, le message obtenu (figure 952) confirme que la sup- tromper denregistrement par mgarde.
pression sera dfinitive, ne rpondez pas au hasard.

Figure 952
Le message avertissant quune suppression
denregistrement est dfinitive

Concernant la suppression denregistrement, en dehors du fait que toute


suppression est toujours dfinitive, deux remarques essentielles sont faire :
Le message de la figure 953, Suppression impossible apparat typique-
ment quand vous tentez par exemple de supprimer lenregistrement
dun guide qui encadre une activit : cest une consquence heureuse du
principe dintgrit rfrentielle qui veut que tout enregistrement
dpendant dans la table esclave ait son quivalent dans la table matre.

Figure 953
Il est impossible de supprimer un enregistre-
ment dune table matre ayant des enregistre-
ments dpendants dans la table esclave.

Dans une table possdant un champ numrotation automatique, sup-


primer un enregistrement fait perdre dfinitivement son numro.
Concrtement, imaginons quune table Clients comporte 100 enregis-

227
DExcel Access

PARALLLE La non rutilisation trements numrots par un champ numrotation automatique de 1


dune valeur annule de cl primaire 100. Si nous supprimons le 99e client, le premier client cr aprs cette
Le numro dimmatriculation dune voiture ne peut suppression portera le numro 101, et le numro 99 ne sera plus jamais
galement tre rattribu, chaque vhicule ayant attribu. Progressivement, au fil des suppressions denregistrements, la
sa propre identit. Ou encore le numro de scu- table ressemblera ainsi un gruyre avec autant de trous dans les
rit sociale, aprs dcs de son titulaire, nest plus
utilis.
valeurs de cl primaire que de suppressions denregistrements (dont les
numros ne seront jamais rattribus).

viter les difficults lies la saisie de donnes


Les contraintes de proprits de champ (texte, masque de saisie, format
date, liste de choix) vont interdire certaines manipulations. Lobjet de
cette section est de vous en prsenter les principales, accompagnes des
messages davertissement.

Il faut respecter les proprits du champ


Le non respect des proprits de champ est la cause la plus frquente
derreur lors de la saisie de donnes. Par exemple :
Vous navez rien saisi dans un champ de type Null Interdit, figure 954.

Figure 954
Vous tes invit saisir une valeur
pour ce champ Null Interdit.

Vous ne respectez pas le format du champ, par exemple en tentant


dentrer une date non valide, figure 955.

Figure 955
Le format de lentre ne correspond pas
au format attendu pour ce champ.

Vous tentez de crer un doublon dans un champ Cl primaire, par


exemple en tentant de crer une activit portant le mme nom quune
activit existante, figure 956.

Figure 956
Tentative de cration dun doublon
dans un champ cl primaire

228
9 Crer un formulaire et saisir les donnes
Il faut respecter le principe dintgrit rfrentielle
Le principe mme des bases de donnes relationnelles impose le respect
de lintgrit rfrentielle.
Par exemple, vous aurez un message derreur si vous tentez daffecter une
activit un numro de guide qui nexiste pas dans la table des Guides,
figure 957.

Figure 957
Problme dintgrit rfrentielle :
la cl primaire de la table
matre Guides nexiste pas.

ACCESS 2003 ET BASE Les messages derreur

Access 2007 a fait de gros efforts en matire de clart des mes-


sages derreur, ne vous attendez pas tre aussi bien traits avec
Access 2003 ou Base. Les figures 9-58 et 9-59 reprsentent par
exemple les messages obtenus avec Base et Access 2003 quand
un champ valeur requise nest pas aliment.
Figure 958 Le mme message Base que
pour la figure 959 Access (cest dj moins clair...)

Figure 959 Le message Access 2003 spcifiant quune valeur est requise
pour le champ PrenomGuide de la table des Guides (remarquez le franglais).

Il existe bien dautres causes derreur de saisie. Il nest bien videmment


pas possible de les lister toutes. Nos conseils en la matire, outre de
suivre scrupuleusement ceux qui prcdent, se rsument sen remettre
au bon sens :
toujours bien observer son cran ;
lire attentivement les messages (parfois abscons) et les dcoder ;
agir en consquence.

229
DExcel Access

Synthse : les formulaires et la saisie des


donnes
Un formulaire est probablement le meilleur moyen pour saisir des donnes
dans une base. Lalternative consistant utiliser directement les tables en
mode Cration offre en effet moins de scurit et de confort, le risque de
confusion entre les diffrents enregistrements tant plus important.
Vous pouvez crer un formulaire trs simplement en utilisant lassistant
Cration de formulaire. Il est mme possible de crer des formulaires
agissant sur plusieurs tables la fois, ainsi que de paramtrer un menu
convivial daccs aux objets de la base de donnes. Par contre, la modifi-
cation manuelle dun formulaire peut parfois tre dlicate ; heureuse-
ment elle nest jamais indispensable, sauf exception.
La saisie de donnes recle quelques surprises. Bien videmment, lexis-
tence de relations entre les tables impose de bien garder en mmoire le
principe dintgrit rfrentielle dans lajout et la suppression de donnes.
Mais surtout la validation et lenregistrement automatique de la saisie, de
la modification ou de la suppression de donnes vont surprendre lopra-
teur venant du monde des tableurs ou traitements de texte.
Le tableau ci-dessous resitue cette phase dans lensemble de la procdure
menant la construction dune base de donnes relationnelle complte.
Nous voici maintenant prts passer la phase certainement la plus
intressante de notre projet : lexploitation de nos donnes avec les
requtes.

230
9 Crer un formulaire et saisir les donnes
Tableau 91 Check-list de construction dune base de donnes relationnelle (jusqu la saisie des donnes)

Phase tape
Modlisation tablissez le schma thorique partir de la phrase cl les stagiaires sinscrivent des activits encadres par
des guides appartenant des bureaux des guides
tablissez le schma rel partir du schma thorique et des nombres cls 1 ou N
Programmation des tables Crez tous les champs de chaque table avec :
Un nom : NumeroStagiaire et non Numro du stagiaire
Un type : texte, numro automatique, date/heure, numrique, etc
Des proprits : format, masque de saisie, valeur par dfaut, null interdit, etc
Choisissez dans chaque table un champ cl primaire permettant didentifier sans ambiguit un enregistrement
parmi les autres (souvent un champ de type numrotation automatique)
Dans chaque table esclave, crez le champ cl trangre correspondant au champ cl primaire de sa table matre
Programmation des Pour tous les champs cl trangre des tables esclaves, crez la liste de choix par rapport la cl primaire de leur
relations (sous Access) table matre, en utilisant le type de donnes Assistant liste de choix
Crez ventuellement des listes de choix manuelles dans le cas de choix entre un nombre limit de valeurs (Chamo-
nix, Argentire, Les Houches)
Dans la fentre des relations, appliquez lintgrit rfrentielle chaque relation
Programmation des Dans la fentre des relations, cliquer-glisser chaque champ cl trangre des tables esclaves vers le champ cl pri-
relations (sous Base) maire de leur table matre
Programmation Crez les formulaires (avec ventuellement des sous-formulaires) avec lassistant Cration de formulaire
des formulaires Avec Base, ajoutez manuellement la liste de choix pour un champ cl trangre
Avec Access, pensez ajouter un menu pour accder aux principaux objets de la base
Saisie des donnes Les donnes doivent respecter lintgrit rfrentielle et les proprits des champs
Les donnes sont automatiquement enregistres ; les suppressions et modifications de donnes sont dfinitives
Utilisez de prfrence les formulaires

231
chapitre 10
Exploiter les donnes
avec une requte simple

SOMMAIRE
B Quest-ce quune requte ?
Nous avons notre disposition des donnes dans une base B Crer une requte simple
parfaitement structure. Nous allons maintenant nous attaquer B Comprendre les rsultats dune
la partie certainement la plus intressante de notre projet : requte en mode Contenu
lexploitation proprement dite des donnes grce aux requtes. B Sexercer crer des requtes
B Faciliter la saisie des donnes
avec une requte

MOTS-CLS
B Requte
B Assistant Cration de requte
B Requte en mode
Cration/bauche et Contenu
B Formulaire bas sur une requte
B Proprits Arrt tabulation
et TabStop dun formulaire
DExcel Access

Ce chapitre marque une rupture par rapport aux prcdents. Jusqu pr-
sent, nous avons appris analyser une problmatique de base de don-
nes, programmer sa structure et entrer des donnes. Mais quavons-
nous fait de ces donnes ? part les stocker dans des tables, pas grand
chose en vrit... Par exemple, pouvons-nous dire rapidement qui parti-
cipe telle ou telle activit ? Qui encadre telle ou telle activit ? Ou
encore pouvons-nous donner chaque guide la liste des stagiaires qui
participent aux activits dont ils sont chargs ? Non. En effet, ces infor-
mations ncessitent de manipuler et de mettre en perspective plusieurs
tables.
Cette mise en perspective, se fait justement travers un nouveau type
dobjet dont nous navons pas encore parl : les requtes. Dans ce cha-
pitre, nous allons apprendre crer une requte simple et dcouvrir com-
ment une requte, couple un formulaire, peut mme simplifier la
saisie des donnes dune base de donnes relationnelle.

Quest-ce quune requte ?


Une requte est un type dobjet Access ou Base (avec les tables, formu-
laires et tats/rapports) dont le rle au sein dune base de donnes est de
manipuler les donnes prsentes dans les tables afin den faciliter lanalyse.

Figure 101
La table des Inscriptions est trie selon les
valeurs croissantes du champ NomActivite. On
ny voit que les numros des stagiaires, et non
leurs noms stocks dans une autre table. Cette
liste nest donc pas trs parlante...

Par exemple, nous avons inscrit des stagiaires des activits. Mainte-
TECHNIQUE Trier une table nant, comment lister clairement tous les stagiaires, activit par activit ?
Pour trier une table en mode Contenu, slec- Mme si linformation est prsente dans les tables, elle nest gure opra-
tionnez le champ souhait puis, par un clic droit, tionnelle puisque les donnes sont clates entre plusieurs tables ; tout ce
appelez loption Trier. Attention : quand vous fer-
merez la table, Access et Base vous demanderont si
quon pourra faire sera de visualiser la table Inscriptions en mode Con-
vous souhaitez enregistrer les modifications. Les tenu et de la trier selon le champ NomActivite. Les inscrits seront alors
modifications dont il sera alors question concernent lists par activit, mais ne seront indiqus que par leur NumeroStagiaire,
le tri des donnes et non les donnes en elles-mmes les noms et prnoms tant stocks dans la table des Stagiaires : pas trs
(qui dailleurs nont pas t modifies par le tri).
lisible, figure 101. Seule une requte, regroupant NumeroStagiaire et

234
10 Exploiter les donnes avec une requte simple
NomActivite de la table Inscriptions, mais aussi NomStagiaire et Pre-
nomStagiaire, rpondra efficacement notre demande, figure 102.

Figure 102
La requte groupant les champs de la table des Inscriptions
et des Stagiaires ; les noms des inscrits apparaissent en clair,
cest bien plus efficace !

Plusieurs types de requtes


Le principe de base dune requte est donc dutiliser des champs dune
ou de plusieurs tables et den raliser :
soit une simple synthse (par exemple, lister tous le stagiaires en
fonction de lactivit laquelle ils se sont inscrits) ;
soit une slection denregistrements (par exemple, lister tous les sta-
giaires dune activit particulire), on parle alors de requte slection ;
soit une analyse pousse par la cration de nouvelles donnes (par
exemple, calculer le montant d par chaque stagiaire en fonction de
ses inscriptions et de ses rglements antrieurs), on parle alors de
requte calcul.
Nous venons de citer quelques exemples. Nous pourrions en citer dautres
dans une base de donnes de commande/facturation dentreprise :
lister par client les produits commands et livrs ;
lister les commandes effectues par tel client entre telle et telle date
(requte slection) ;
calculer le total d par client en fonction des quantits livres, des carac-
tristiques des produits (prix unitaire, etc) et des conditions particulires
du client (taux de remise, etc) ; il sagira alors dune requte calcul.
Les requtes constituent donc le cur dun SGBDR en ce sens quune
base de donnes dpourvue de requtes ne sert rien : les donnes y sont
bien stockes, mais on ne peut rien en faire, en dehors de lister linfor-
mation des tables telles quon les a saisies, sans aucune plus value.
Ce chapitre traite de la cration des requtes de base, les deux suivants
vont voquer la construction de requtes slection et calcul plus volues.

235
DExcel Access

Rflexions pralables la cration dune requte


Avant de crer une requte et de choisir le bon outil pour le crer, il faut
tout dabord dterminer les champs devant y participer.

Choisir les champs participant une requte


Crer une requte va consister, un peu comme au restaurant, choisir
parmi les plats de la carte afin dobtenir un repas quilibr, complet et
digeste : en fonction de ce que devra faire la requte, il faudra slec-
tionner les champs ncessaires dans les tables disponibles.
Prenons un exemple simple. Dans notre cas pratique, en observant la
table Inscriptions, nous avons constat que nous ne sommes pas capables
de comprendre clairement qui est inscrit quoi (parce que le stagiaire ny
est reprsent que par son numro et que nous ne connaissons pas par
cur la correspondance entre ces numros et les noms des stagiaires). Il
nous faut donc crer une requte pour connatre les stagiaires inscrits aux
diffrentes activits. Ce sera lobjet de ce chapitre.
Cette requte va contenir les champs suivants :
Le champ NomActivite de la table Activites ;
Les champs NumeroStagiaire, NomStagiaire et PrenomStagiaire de
la table Stagiaires.
Ce choix, car il sagit toujours dun choix, nest pas fait au hasard. Tout
dabord, nous navons besoin, stricto sensu, que des champs NomActivite,
Nom Stagiaire et PrenomStagiaire. Pourquoi donc avons-nous rajout le
champ NumeroStagiaire de la table Stagiaires ? Il ne semble pas relle-
ment indispensable, puisque noms et prnoms peuvent trs bien suffire.
Mais ce raisonnement nest pas complet. Ce champ NumeroStagiaire est
en effet cl primaire de la table Stagiaires et sa prsence dans la requte
nous simplifiera grandement la vie, parce quil permettra de lever lambi-
gut en cas de doublons et parce que lutilisation pratique de la requte
en sera grandement facilite (recherche denregistrements et tris seront
beaucoup plus efficaces).
Ensuite, certains champs de la future requte peuvent se choisir dans
ATTENTION Ne pas intgrer cl primaire et plusieurs tables. NomActivite est prsent dans la table Activites (sous
cl trangre dans la mme requte forme de cl primaire) et dans la table Inscriptions (sous forme de cl
secondaire). NumeroStagiaire est la fois cl primaire de la table Sta-
Nous venons dexpliquer quil est prfrable de
choisir la cl primaire de la table matre plutt giaires et cl trangre de la table Inscriptions. Nous avons systmati-
que la cl trangre de la table esclave. Il ne quement opt pour slectionner le champ de la table pour lequel il est cl
faut bien videmment pas intgrer les deux primaire. L encore, les tris et recherches seront facilits. Et cela nous
dans la mme requte, cela ne servirait absolu- simplifiera galement la vie lavenir : quand nous aurons besoin de
ment rien !
modifier cette requte, nous saurons que le champ choisi, quand ce cas

236
10 Exploiter les donnes avec une requte simple
se prsente, est systmatiquement le champ cl primaire de la table
matre.
Enfin, nous nous sommes limits dans cette liste de champs. Nous
aurions fort bien pu ajouter les numros de tlphone des stagiaires. Et
aussi, pourquoi pas, les noms des guides, avec tant qu faire le bureau
dans lequel ils sont inscrits. Et progressivement nous aurions intgr la
requte dorigine tous les champs de la base... Dans notre cas pratique,
a naurait pas t bien grave, mais imaginez ce que cela peut induire
dans une base un peu complique, dans laquelle on ajoute aux requtes
des champs de toutes sortes, au cas o. Rapidement, on en arrive alors
des requtes qui se ressemblent toutes puisque chacune contient tous les
champs de la base... Il vaut mieux tre slectif, car en lespce le mieux
est lennemi du bien, et crer des requtes ne comprenant que les champs
ncessaires et utiles la question pose.
Retenons donc ces trois rgles :
Toujours intgrer dans une requte la cl primaire de chaque table
participant la requte.
Toujours prfrer la cl primaire de la table matre la cl trangre
de la table esclave.
Se limiter aux champs ncessaires et suffisants la requte concerne.

Choisir le mode de cration de la requte ALLER PLUS LOIN Requtes ajout


Il existe deux faons de btir une requte : soit en utilisant lassistant , et suppression de donnes
soit en utilisant le mode Cration (bauche pour Base) : En dehors des requtes voques ci-contre, on
Lassistant Cration de requte Access fonctionnant trs bien, nous peut parler des requtes ajout et suppression de
vous conseillons de lutiliser sans rserve. donnes :
Les requtes ajout servent, comme leur nom
Par contre, dans Base, ds que la requte crer manipule plus dune lindique, ajouter des donnes dans des
table, ce qui est le cas le plus frquent, lassistant gnre une requte qui tables. On va par exemple utiliser une requte
doit tre modifie manuellement en mode bauche (parce que Base, ajout pour ajouter dans une table des mouve-
ments bancaires les enregistrements du mois
ne prend pas en compte les relations existant entre les tables, tort). Il tlchargs sur Internet.
vaut donc mieux, dans ce cas, utiliser le mode bauche ds le dbut. Les requtes suppression, elles, suppriment des
En conclusion, pour crer une requte, utilisez de prfrence lassistant enregistrements selon certains critres. Combi-
nes une requte ajout, on les utilisera en
Cration de requte avec Access et le mode bauche avec Base. particulier pour archiver des donnes anciennes
(la premire requte suppression slectionnera
les enregistrements antrieurs la date darchi-
vage et la seconde requte ajout les ajoutera
Crer une requte simple une table Archives).

Une requte simple se cre sous Access avec lassistant ddi (page 238)
et sous Base directement en mode bauche (page 241).

237
DExcel Access

Crer une requte avec lassistant Access


Lassistant Cration de requte dAccess est particulirement simple et
efficace pour crer tout type de requte, dont celui qui nous intresse ici.
Pour lancer cet assistant :
Sous Access 2007 : dans longlet Crer, groupe Autre, cliquez sur
loutil Assistant requte. Choisissez ensuite loption Assistant requte
simple et cliquez sur OK.
Sous Access 2003 : cliquez sur la famille Requte du volet de naviga-
tion et double-cliquez sur loutil Crer une requte laide de lassis-
tant.
Lassistant Cration de requte est alors lanc. Il suffit maintenant de
rpondre aux questions qui vous sont poses, tape par tape. Illustrons
son fonctionnement par la cration dune requte listant, dans notre cas
pratique, les stagiaires inscrits aux diffrentes activits, activit par activit.

Slectionner les champs de la requte (tape 1 de lassistant)


Cette tape va permettre de slectionner les champs que lon souhaite
RAPPEL Les boutons >, >>, <, <<
voir participer la requte. Dans notre exemple, nous souhaitons voir
> : Dplace dans la colonne de droite le champ apparatre dans la requte :
slectionn dans la colonne de gauche;
>> : Idem pour tous les champs de la colonne le champ NomActivite de la table Activites ;
de gauche; les champs NumeroStagiaire, NomStagiaire et PrenomStagiaire de la
< : Dplace dans la colonne de gauche le table Stagiaires.
champ slectionn dans la colonne de droite;
<< : Idem pour tous les champs de la colonne Pour chacune des tables concernes par la requte (figure 103) :
de droite.
1 Slectionnez dans la liste droulante la table souhaite.
2 Passez les champs souhaits dans la zone Champs slectionns.
3 Recommencez ventuellement les tapes 1 et 2 pour les autres tables
ou passez ltape suivante.

Figure 103
Les champs NomActivite (de la table Activites)
et NumeroStagiaire, NomStagiaire et
PrenomStagiaire (de la table des Stagiaires)
sont slectionns pour participer la requte.

238
10 Exploiter les donnes avec une requte simple
Concrtement, dans notre cas pratique, le mode opratoire est le
suivant :
1 Slectionnez la table Activites.
2 Dans cette table, slectionnez le champ NomActivite en le plaant
dans la colonne de droite.
3 Sans passer ltape suivante de lassistant, slectionnez la table Sta-
giaires.
4 Dans cette table, slectionnez les champs NumeroStagiaire, NomS-
tagiaire et PrenomStagiaire en les plaant dans la colonne de droite.
5 Tous les champs devant participer la requte sont slectionns.
Vous pouvez passer ltape suivante.
Attention : le pige de cette tape de lassistant est de cliquer sur Suivant
avant davoir fait passer dans la colonne de droite tous les champs nces-
saires.

FAQ Questions relatives la slection des champs dune requte

Et si je me trompe ? Si vous avez un peu mlang les champs dans lcran de slec-
tion des champs, le plus simple est certainement de dslectionner tous les champs de
la requte par le bouton << et de recommencer calmement.
Pourquoi ces champs et pas dautres ? Lintrt des requtes est de faire du sur
mesure, lexemple fourni nest quune proposition. Rien ninterdit dajouter dautres
champs, comme par exemple le nom du guide encadrant lactivit. Rien ninterdit non
plus den enlever (encore que dans ce cas prcis, ce sera difficile). Enfin, ce choix nest
pas dfinitif, vous pourrez toujours ajouter ou supprimer des champs volont plus
tard en mode Cration/ bauche.
Lordre de slection des champs est-il important ? Oui et non... Oui, parce que les
champs vont apparatre dans la requte dans lordre o ils sont slectionns. Et non,
parce quil sera toujours possible de le modifier ultrieurement. Mais le plus simple
est certainement de prendre les champs dans le bon ordre ds le dpart !

Choisir le type de requte (tape 2 de lassistant)


Access propose ensuite comme sur la figure 104 le choix entre une
requte dtaille ou de synthse :
Une requte de synthse permet deffectuer des totalisations sur des
champs numriques. Elle est lquivalent, pour une base de donnes, de
la fonction sous-total dune liste de donnes (page 60) : partir dune
liste dtaille de ventes par reprsentant, elle va effectuer la totalisation
de ces ventes par reprsentant (elle pourra dailleurs en effectuer aussi la
moyenne, en extraire la vente du montant le plus lev, etc.).
La requte dtaille se contente de lister les enregistrements des
tables concernes, sans effectuer de totalisation.

239
DExcel Access

Notre requte des stagiaires par activits ne comporte aucun champ


numrique. Nous allons donc choisir le type requte Dtaille, et cliquer
sur Suivant.

Figure 104
Lalternative entre requte dtaille
ou de synthse

Enregistrer la requte (tape 3 de lassistant)


Notre requte est termine, il ne reste plus qu lenregistrer et choisir
sous quel mode on souhaite la visualiser comme le montre la figure 105.

Figure 105
Ne jamais oublier de modifier
le nom de la requte

Observez quAccess propose de nommer la requte du nom de la pre-


mire table qui a t utilise dans sa construction. Cela part dun bon
sentiment, mais ce nest pas trs oprationnel. Vous allez vite com-
prendre que nous serons amens multiplier les requtes dans notre
base, chaque requte tant ddie un usage spcifique.

240
10 Exploiter les donnes avec une requte simple
Il est donc trs important de nommer les requtes avec des noms clairs et
prcis de faon pouvoir retrouver facilement celle que lon recherche.
Dans notre cas pratique, puisque notre requte permet de lister les sta-
giaires par activits, le plus simple est certainement de la nommer Sta-
giairesParActivites, figure 105, ou quelque chose dquivalent.
Enfin, sur la bote de dialogue de la figure 105, nous avons le choix
douvrir la table pour en visualiser immdiatement les rsultats ( option
ouvrir la requte pour afficher les informations) ou dentrer dans la
structure mme de la requte pour en modifier les caractristiques en
mode Cration (option modifier la structure de la requte).
Puisque nous navons aucune modification apporter la requte, choi-
sissons loption Ouvrir la requte... terminons lassistant. La requte
souvre en mode Contenu comme sur la figure 106.

Figure 106
La requte StagiairesParActivites
en mode Contenu

La section suivante traite de la cration de requte en mode Cration et


non plus laide de lassistant comme nous venons de le faire. Pour plus
dinformations sur le mode Contenu dune requte, reportez-vous direc-
tement la page 244

Crer une requte en mode Cration/bauche


Le mode Cration (bauche pour Base) est, avec le mode Assistant, le
deuxime mode de cration dune requte. Rappelons quil est le seul
vritablement oprationnel avec Base. Les utilisateurs dAccess ont
pourtant intrt lexprimenter, ne serait-ce que pour le comparer avec
le mode Assistant et choisir ainsi leur mode prfr... De plus, ainsi que
nous le verrons, le mode Cration est celui utiliser pour modifier une
requte dj cre.
Nous allons exprimenter ce mode au travers de la cration de la requte
listant comme prcdemment les activits et les stagiaires y participant.
Il y aura globalement trois tapes suivre :
1 Crer une nouvelle requte en mode Cration bauche ;
2 Insrer les tables concernes ;
3 Insrer les champs concerns.

241
DExcel Access

Crer une nouvelle requte en mode Cration/bauche


Pour crer une nouvelle requte (vierge) en mode Cration/bauche :
Sous Access 2007 : cliquez sur le bouton Cration de requte dans
longlet Crer, groupe Autre.
Sous Access 2003 : cliquez sur Requtes dans le volet de navigation,
puis double-cliquez sur Crer une requte en mode Cration.
Sous Base : cliquez sur Requtes dans le volet de navigation, puis cli-
quez sur Crer une requte en mode bauche.
Nous sommes maintenant prts paramtrer notre requte en y int-
grant les champs dsirs. Puisque ce mode de cration de requte sera
surtout utilis par les amateurs de Base, nous allons axer notre dmons-
tration sur ce logiciel (Access offre des crans quasiment identiques et
nappelle pas de remarque particulire).

Insrer les tables participant la requte


Il sagit ici de spcifier les tables dans lesquelles les champs de la requte
seront slectionns. Base (et Access) proposent demble le choix dajouter
des tables parmi celles de notre base de donnes relationnelle, figure 107.
Il sagit maintenant de slectionner celles dont nous avons besoin.

Figure 107
Il faut slectionner toutes les tables
de la relation matre/esclave.

Nous navons stricto sensu besoin que des tables Activites et Stagiaires.
Mme si cest logiquement exact (car ces deux tables sont en relation via
la table des Inscriptions), cela ne fonctionnera pas ; Base et Access vont
en effet exiger que la table ralisant la relation (celle des Inscriptions)
soit galement prsente dans la liste des tables de la requte. Il faut donc
slectionner les trois tables Stagiaires, Inscriptions et Activites, soit en
double-cliquant sur chaque table, soit en les slectionnant et en cliquant
sur Ajouter. Le rsultat de cette slection est illustr par la figure 108,
sur laquelle on constate la matrialisation des relations entre la table
esclave Inscriptions et ses tables matres Stagiaires et Activites.

242
10 Exploiter les donnes avec une requte simple
Figure 108
Il faut slectionner toutes les tables
de la relation matre/esclave.

Insrer les champs participant la requte


Il sagit maintenant dinsrer les quatre champs devant participer notre
requte, NomActivite (de la table Activites) et NumeroStagiaire,
NomStagiaire et PrenomStagiaire (de la table Stagiaires).
Dans la partie basse de lcran de requte en mode Cration/bauche,
nous allons placer les noms de ces champs cte cte sur la premire
ligne nomme Champ. Pour cela, nous disposons de deux techniques :
Le cliquer-glisser : slectionnez le champ souhait dans la table
(partie haute de lcran) et faites-le glisser dans la cellule souhaite.
La slection dans une liste de choix : cliquez dans la cellule souhaite et
slectionnez le champ dans la liste de choix. La figure 109 montre la
slection de Activites.NomActivites (ce qui signifie champ
NomActivite de la table Activites )

Figure 109
La slection dun champ dune requte
en mode bauche par liste de choix

243
DExcel Access

La figure 1010 dtaille notre requte StagiairesParActivites en mode


Cration/bauche aprs insertion de tous ses champs.

Figure 1010
Tous les champs de la requte
StagiairesparActivites en mode bauche

La requte est termine. Nous pouvons maintenant la fermer (en nomet-


tant videmment pas de lenregistrer) ou la visualiser en mode Contenu.

RAPPEL Grer les modes daffichage dune requte

Il nest pas inutile de rappeler lessentiel quand la gestion des modes daffichage dune
requte, le mode Contenu et le mode Cration/bauche :
Double-cliquer sur le nom de la requte dans le volet de navigation de lcran
daccueil de la base de donnes ouvre toujours la requte en mode Contenu.
Pour ouvrir directement une requte en mode Cration/bauche, slectionner la
requte dans le volet de navigation et, par un clic droit, accder loption mode
Cration (Access) ou Modifier (Base).
Pour basculer une requte du mode Cration au mode Contenu, accder par un clic
droit loption Mode feuille de donnes. Avec Base, il faut fermer la requte et la
rouvrir.
Pour basculer du mode Contenu au mode Cration, utiliser le bouton Excuter ou
accder par un clic droit loption Mode cration. Avec Base, il faut fermer la
requte et la rouvrir.

Comprendre les rsultats dune requte en


mode Contenu
Une requte en mode Contenu permet den visualiser les rsultats, cest
dire dans notre exemple de lister les activits de lcole et les stagiaires
qui y sont inscrits.

244
10 Exploiter les donnes avec une requte simple
Si la requte nest pas ouverte, il suffit de double-cliquer sur son icne ACCESS 2007 Des possibilits de filtre
dans le volet de navigation. Si elle est dj ouverte en mode Cration/ dans les requtes
bauche, il suffit de la basculer en mode Contenu selon les techniques Cliquer sur la flche ct dun nom de champ
exposes en apart. offre la possibilit dexcuter des filtres sur le con-
tenu de la colonne, exactement comme le ferait un
Une requte en mode Contenu se prsente, aussi bien sous Access que filtre de liste de donnes, figure 1011.
sous Base, comme une feuille de calcul ou une table en mode Contenu
(figure 1012) : les diffrents champs apparaissent en en-tte de colonne
et les enregistrements rsultants sont lists les uns en dessous des autres.
Le compteur denregistrement en bas dcran (absent sur la figure pour des
raisons de lisibilit) spcifie quil y a neuf couples stagiaires-activits (ce
qui correspond au nombre denregistrements de la table Inscriptions).
Notre requte semble tre trie au hasard, mais il nen est rien : elle est
trie par dfaut selon lordre des Inscriptions, table reliant Stagiaires et
Activites. Il est bien entendu possible de la trier dans tout autre ordre : il
suffit de slectionner une colonne et de trier avec loutil adquat, par
exemple par un clic droit suivi de loption Trier. Notez dans ce cas que le
tri ne sera effectif que pour cette session, le programme de la requte
ntant pas modifi.
Figure 1011 Les possibilits de filtre
dans un requte Access 2007

Figure 1012
La requte StagiairesParActivites en mode Contenu

ACCESS La ligne Nouv.() utiliser avec prcaution

Vous avez certainement remarqu avec Access la dernire ligne de notre requte en mode
Contenu, la ligne Nouv.(). Elle nous permet de dcouvrir une particularit tonnante des
requtes avec Access.
Une requte utilise les donnes des tables. Mais elle permet galement de les modifier et
mme dajouter des enregistrements. Cest la signification de cette ligne : lutiliser va per-
mettre, non plus de lister les donnes des tables, mais dentrer directement des donnes
dans les tables.
Disons-le tout net : cette possibilit mlange les genres et risque dtre source de confusion.
Pour saisir des donnes dans les tables, nous disposons de formulaires patants (ou mme
de tables en mode Contenu), utilisons-les systmatiquement cet usage. Et rservons les
requtes exclusivement la manipulation des donnes et jamais leur modification.

245
DExcel Access

Maintenant, pour exacte que soit linformation, nous pouvions nous


attendre mieux. Lapparence de notre requte en mode Contenu nest en
effet pas particulirement attrayante : imaginez son apparence ds que
nous aurons 1 000 stagiaires inscrits 50 activits, ce ne sera gure
lisible... Aucune rupture ou saut de page nest effectu chaque change-
ment dactivit. Ce sera le rle des tats (ou rapports sous Base) que de
crer des rapports professionnels pour visualiser les rsultats de nos
requtes, se reporter au chapitre 13 page 310.

Sexercer crer des requtes


Lidal serait que vous vous exerciez tout de suite crer plusieurs
requtes dans votre base exemple. Si vous tes utilisateur dAccess, testez
la construction de chaque requte par lassistant puis en mode Cration,
vous forgerez ainsi vos prfrences entre ces deux techniques.
Nous vous proposons ainsi de crer deux autres requtes, listant
respectivement :
Les activits auxquelles chaque stagiaire est inscrit (requte Activites-
ParStagiaires).
Pour chaque guide, les activits quil encadre avec les stagiaires qui y
sont inscrits (requte StagiairesParActivitesParGuides).
Remarquons tout de suite que la requte ActivitesParStagiaires sera exacte-
ment le pendant de celle que nous venons de crer, StagiairesParActivites.
Les mmes champs y sont prsents, mais ordonns diffrement : dabord
NumeroStagiaire, NomStagiaire et PrenomStagiaire de la table Stagiaires,
puis NomActivite de la tables Activites. Ce qui confirme que lordre de
slection des champs a un impact immdiat sur le rsultat de la requte.
La requte StagiairesParActivitesParGuides, elle a un impact sur trois
tables, Stagiaires, Activites et Guides.

Figure 1013
La requte ActivitesParStagiaires
en mode Cration bauche

246
10 Exploiter les donnes avec une requte simple
Les figures 1013 et 1014 en dtaillent la structure en mode Cration /
bauche, les figures 1015 et 1016 illustrent leurs rsultats en mode
Contenu (remarquez que chacune comprend 9 lignes, correspondant aux
9 inscriptions de la table des Inscriptions).

Figure 1014
La requte
StagiairesParActivitesParGuides
en mode Cration bauche

Figure 1015
La requte ActivitesParStagiaires en mode
Contenu trie par NumeroStagiaire

Figure 1016
La requte StagiairesParActivitesParGuides
en mode Contenu trie par NumeroGuide

Bien entendu, ces corrections ne sont que des propositions. Noubliez


jamais quune requte, cest toujours du sur mesure et jamais du prt--
porter. Remarquez toutefois quelles respectent les rgles que nous
avions voques page 236, par rapport au choix des champs :
Toujours intgrer dans une requte la cl primaire de chaque table
participant la requte.
Toujours prfrer la cl primaire de la table matre la cl trangre
de la table esclave.
Se limiter aux champs ncessaires et suffisants la requte concerne.

247
DExcel Access

Nous avons maintenant lessentiel pour dmarrer ltude de requtes plus


sophistiques en commenant, comme dans la section suivante, par uti-
liser une requte comme source dun formulaire pour faciliter la saisie
des donnes de notre base exemple.

Faciliter la saisie des donnes avec une


requte sous Access
Cette section ne concerne que les utilisateurs dAccess.
Nous venons de crer une requte regroupant des donnes de plusieurs
tables. Nous verrons, dans les chapitres suivants, dautres types de
requtes plus sophistiques, permettant par exemple de dtecter des
enregistrements nayant pas de correspondance dans une autre table
(pour lister les guides de secours par exemple) ou pour crer des champs
calculs (pour connatre le montant payer pour chaque stagiaire).
Mais une requte ne sert pas uniquement faciliter lanalyse des donnes
de la base, comme celles que nous venons dvoquer. Elle peut aussi
apporter une aide la saisie des donnes. Prenons un exemple concret. Pour
saisir les inscriptions des stagiaires de notre cas pratique, nous disposions
RAPPEL Une requte Access sert aussi jusqu prsent de deux formulaires. Dabord le formulaire Inscriptions, qui
ajouter des donnes
naffiche que le numro du stagiaire : quand nous aurons 150 000 inscrits, il
Nous avons vu page 245 quune requte Access ne sera facile de confondre le numro 4 807 et le 4 870. Et ensuite le formu-
se contente pas dafficher les donnes des tables.
laire et son sous-formulaire, qui, eux, affichent toutes les donnes du sta-
Elle permet galement de les modifier. Nous vous
avons mis en garde contre le mlange des genres giaire en mme temps que ses inscriptions : formulaire plus complet
une requte devant, notre sens, ntre utilise certainement, mais peut-tre un peu trop (a-t-on vraiment besoin de son
que pour la manipulation des donnes. Nous nuti- adresse et de son numro de tlphone quand on saisit les inscriptions ?).
lisons ici cette possibilit de modification des don-
nes par une requte, en contradiction apparente Lide que nous allons mettre en uvre dans cette section est la suivante.
avec ce conseil, que parce que celle-ci ne sera uti- Nous allons crer une requte spcifique contenant les champs nces-
lise quau travers dun formulaire. Et aussi titre saires et suffisants pour grer les inscriptions. Et nous utiliserons cette
dillustration de cette capacit tonnante des
requtes.
requte comme source dun formulaire quil ny aura plus qu lutiliser
pour saisir nos inscriptions.

Crer la requte source


La cration de la requte source ne pose aucune difficult aux experts
que nous sommes. Il faut y insrer dans lordre les champs DateInscrip-
tion et NumeroStagiaire (de la table des Inscriptions), NomStagiaire et
PrenomStagiaire (de celle des Stagiaires) et enfin NomActivite (de la
table des Inscriptions).

248
10 Exploiter les donnes avec une requte simple
OBSERVONS Lordre et lorigine des champs de la requte source du formulaire

Le choix des champs et leur ordre dapparition dans la requte nest videmment pas ala-
toire.
Il ne faut pas oublier que cette requte nest faite que pour enregistrer de nouvelles ins-
criptions. Cest pourquoi nous avons choisi les champs cl trangre de la table des Ins-
criptions (NumeroStagiaire et NomActivite) et non les cls primaires des tables matres
correspondantes. Ce dernier choix, erron, aurait amen crer de nouveaux enregistre-
ments dans les tables des Stagiaires et des Activites.
Enfin, vous avons insr NomStagiaire et PrenomStagiaire juste aprs le champ NumeroS-
tagiaire, avant le champ NomActivite, afin de coller ltat civil du stagiaire son numro.

La cration de cette requte ne prsente aucune difficult particulire.


La figure 1017 la reprsente en mode Cration. Notez que nous avons
appel cette requte SaisieInscriptions.

Figure 1017
La requte SaisieInscriptions
en mode Cration.

Crer le formulaire bas sur la requte


Il suffit de crer le formulaire avec tous les champs de notre requte
selon la mthode expose au chapitre 9. Il faut simplement bien spcifier
que le formulaire doit chercher les donnes dans une requte. Nommez
le formulaire SaisieInscriptions, du nom de la requte source.
Reste enfin modifier un dtail (important) sur ce formulaire. Les
champs NomStagiaire et PrenomStagiaire qui y apparaissent ny sont
que purement indicatifs, ils ne sont pas faits pour tre modifis (ces
informations sont grer dans la table des Stagiaires). Il faut donc inter-
dire leur modification loprateur de saisie. Une des techniques les plus
faciles mettre en uvre va consister interdire larrt du pointeur sur
ces champs en mode Contenu du formulaire ; en cours de saisie des don-
nes, loprateur qui utilise la touche de tabulation pour aller de champ
en champ naura pas accs ceux-ci.

249
DExcel Access

cet effet, ouvrez le formulaire en mode Cration, slectionnez le con-


trle souhait (successivement NomStagiaire et NumeroStagiaire) puis
faites un clic droit sur le contrle et slectionnez Non dans la proprit
Arrt tabulation de longlet Toutes, figure 1018.

Figure 1018
La proprit Arrt tabulation dun contrle de
formulaire Access 2007

ALLER PLUS LOIN Affecter les proprits Arrt tabulation (TabStop) Non aux champs grs par le SGBDR

Nous vous avons conseill de laisser le plus sou-


vent possible Access et Base grer les champs cl
primaire, par exemple avec des numros automati-
ques. Appliquer cette proprit Arrt tabulation
ce type de champ dans un formulaire permet trs
utilement de ne pas laisser loprateur la possibi-
lit de le modifier par mgarde : au cours de la
saisie, le curseur sautera ce champ cl primaire,
qui deviendra ainsi purement informatif.
Lquivalent Base de cette proprit est TabStop.
On la paramtre en mode bauche en double- Figure 1019 La proprit TabStop dun contrle de formulaire Base
cliquant sur le contrle et slectionnant Non pour
la proprit TabStop de longlet Gnral,
figure 1019.

250
10 Exploiter les donnes avec une requte simple
La figure 1020 illustre le formulaire obtenu en mode Contenu. Nous
avons maintenant un outil efficace pour saisir les inscriptions de nos
chers stagiaires : nous constatons quen naviguant de champ en champ le
curseur ne sarrte plus sur les deux champs interdits et nautorise donc la
modification que des donnes de la table Inscriptions.
Ce formulaire ne sert pas saisir (et encore moins modifier) des don-
nes de la table Stagiaires, mais uniquement saisir des inscriptions pour
des stagiaires de la table Stagiaires. Pour saisir de nouveaux stagiaires ou
de nouvelles activits, il faudra toujours utiliser les formulaires ddis Figure 1020 Le formulaire de saisie
ces tables. des inscriptions en mode Contenu

En conclusion de cette section, nous navions auparavant utilis les


requtes que pour extraire et manipuler les donnes en provenance de
tables ou de requtes. Nous venons dexprimenter, par ce nouveau for-
mulaire, des requtes susceptibles de fonctionner lenvers , en
entrant des donnes dans une table, selon le schma de la figure 1021 :
la requte SaisieInscriptions utilise les donnes des tables Stagiaires
et Inscriptions ;
le formulaire SaisieInscriptions utilise tous les champs de la requte
SaisieInscriptions ;
le formulaire SaisieInscriptions permet en retour de modifier les don-
nes de la table des Inscriptions (mais pas des Stagiaires).

Figure 1021
Les donnes dune table transitent par une requte puis un formulaire
qui permet son tour de modifier les donnes dune des tables source.

251
DExcel Access

Synthse : exploiter les donnes avec une


requte simple
Une requte est un type particulier dobjet Access qui va servir pr-
senter, manipuler et analyser les donnes prsentes dans les tables dune
base de donnes relationnelle. Une des premires utilisations des
requtes va tre de regrouper des donnes clates en plusieurs tables
afin, par exemple, de lister les stagiaires de notre cole dalpinisme avec
les activits auxquelles ils sont inscrits et les guides qui les encadrent.
Le mode de cration de requte conseill est le mode Assistant avec
Access et bauche avec Base. Le mode Contenu permet den visualiser
les rsultats.
Un requte Access peut galement servir de source un formulaire, par
exemple pour faciliter la saisie de donnes. Mais cette utilisation doit
rester exceptionnelle.
Lassistant Cration de requte Access possde un fonctionnement suffi-
samment clair pour quil ne soit pas ncessaire dy revenir. Par contre, le
tableau 101 rcapitule lessentiel sur la procdure de cration de requte
en mode Cration/bauche.

252
10 Exploiter les donnes avec une requte simple
Tableau 101 tapes de cration de requte en mode Cration/bauche

Phase tape Dtail/remarque


Cration dune nouvelle requte Access 2007 : dans longlet Crer, groupe
en mode Cration/bauche Autre, cliquer sur le bouton Cration de
requte.
Access 2003 : cliquer sur Requtes dans le
volet de navigation, puis double-cliquer sur
Crer une requte en mode Cration.
Base : cliquer sur Requtes dans le volet de
navigation, puis sur Crer une requte en
mode bauche.
Paramtrage des tables et des champs tape 1 : ajout des tables. Slectionner une une les tables participant
la requte.
tape 2 : insertion des champs dans la ligne Insrer les champs un un par un glisser-dpo-
Champs. ser ou par la liste droulante dans la case
Champ.
tape 3 : enregistrement. Enregistrer et donner un nom clair et prcis la
requte (par exemple, StagiairesParActivites-
ParGuides).

Nous allons dcouvrir au cour des chapitres suivants dautres possibilits


tonnantes offertes par les requtes.

253
chapitre 11
Isoler des enregistrements
particuliers dans une base
de donnes

SOMMAIRE
B Modes cration/bauche,
assistant et SQL : sorienter
Au chapitre 3, nous avons appris slectionner
des enregistrements dans les listes de donnes, nous allons B Raliser des slections
denregistrements
dcouvrir ici les fonctions quivalentes sous Access et Base ;
B Identifier des enregistrements
autant dire que nous ne serons pas dus, tant leurs possibilits sans correspondance
et leur facilit demploi sont tonnantes. Jugez par vous mme... B Identifier les doublons
dans une table

MOTS-CLS
B Mode SQL
B Requte slection
B Critres de slection
B Caractres gnriques
B Critres Et et Ou
B Requte de non-correspondance
B Requte de recherche
de doublons
B Modification dune requte
existante
DExcel Access

Les requtes que nous avons cres au chapitre 10 ne font que collecter de
linformation, sans ajouter une quelconque plus-value (sauf la rendre
lisible et accessible, ce qui nest dj pas si mal). Nous allons ici dbuter
ltude de requtes volues permettant danalyser vritablement nos don-
nes, ce qui est au bout du compte ce pourquoi nous avons construit notre
base de donnes. En dautres termes, nous allons commencer ici
recueillir les fruits de notre long travail de modlisation et de construction.
Nous allons commencer par clarifier les diffrents modes dune requte :
assistant, Cration/bauche et SQL. Nous apprendrons ensuite com-
ment procder des slections denregistrements selon des critres per-
sonnalisables. Enfin, nous tudierons deux requtes particulirement
utiles la gestion de nos donnes, les requtes de non-correspondance et
de recherche de doublons.
Concrtement, aprs ce chapitre, nous disposerons :
des listes de stagiaires, activit par activit ;
de la liste de guides de secours qui nencadrent aucune activit ;
de la liste des stagiaires inscrits plusieurs activits.
Nous aurons ainsi fait un grand pas dans la connaissance des donnes de
notre cole dalpinisme.

RFRENCES Apprendre SQL Modes cration/bauche, assistant et


De nombreux sites web vous familiariseront avec SQL : sorienter
ce langage si vous le souhaitez. En voici quelques-
uns parmi les plus intressants : Prenons quelques instants pour dfinir les termes Assistant, mode Cra-
B http://fr.wikipedia.org/wiki/ tion/bauche et mode SQL dont il est souvent question en matire de
Structured_Query_Language
B http://sqlpro.developpez.com/
requte.
B http://www.commentcamarche.net/sql/ SQL, pour Structured Query Language (langage structur de requte) est,
sqlintro.php3
comme son nom lindique, le langage informatique de programmation
B http://www.laltruiste.com/courssql/
sommaire.html des requtes, aussi bien pour Access que pour Base. Les assistants
B http://sql.1keydata.com/fr/ (Access) et les modes Cration (Access) et bauche (Base) appliqus aux
Vous pourrez aussi trouver aux ditions Eyrolles requtes ne sont que des interfaces dveloppes pour permettre lutilisa-
louvrage suivant qui vous permettra de vous teur de programmer des requtes sans avoir apprendre ce langage SQL.
former SQL :
Apprendre SQL avec MySQL, Christian Notre objectif nest pas ici de nous initier ce langage complet et touffu,
Soutou, 2006, 398 pages. des ouvrages entiers y sont consacrs. Au cours de ce chapitre nous ne
lvoquerons que pour programmer sous Base les requtes que nous
allons dvelopper avec les assistants Access et dont Base ne dispose pas.

256
11 Isoler des enregistrements particuliers dans une base de donnes
Raliser des slections denregistrements
Slectionner des enregistrements particuliers parmi tous les enregistre-
ments dune base est la premire tape menant lanalyse des donnes.
Connatre les reprsentants ayant ralis des ventes dans telle rgion,
isoler les produits dont les ventes cumules excdent un millier deuros,
ou encore identifier les activits qui comportent le plus dinscrits permet
au responsable de mieux analyser la ralit et donc dagir au plus prs des
intrts de son organisation.
Nous apprendrons dans cette section crer des requtes slection sim-
ples, puis des requtes slection interactives. Nous terminerons par
ltude des combinaisons de critres.

Crer une requte slection


Une requte slection permet, comme son nom lindique, de raliser des
slections parmi les enregistrements de la base de donnes. Par exemple
pour retrouver les ventes ralises par tel reprsentant ou encore les com-
mandes passes entre telle et telle date. Elle est en quelque sorte lqui-
valent pour une base de donnes dun filtre pour une liste de donnes
sous tableur.
Nous allons illustrer son mode de cration par la ralisation dune
requte permettant de lister les participants une activit particulire,
par exemple lactivit Neige.
Autant le savoir tout de suite, les assistants Access qui nous ont grande-
ment aid jusqu prsent ne nous seront maintenant plus daucune utilit :
lensemble des oprations lies la dfinition de critres de slection ne
peuvent seffectuer quen mode Cration/bauche dune requte.
bien y rflchir, cette requte nest quune variante de la requte Sta-
giairesParActivites que nous avons dj cre : il ne sagit que de lui
ajouter le critre de slection permettant de ne lister que les participants
lactivit Neige. Le plus simple et le plus rapide sera donc de mettre en
application une technique que nous vous avions suggre, celle consis-
tant travailler partir de copie dobjets. Nous allons ainsi copier cette
requte source StagiairesParActivites et paramtrer les critres de slec-
tion sur cette copie :
1 Slectionnez la requte StagiairesParActivites dans le volet de navi-
gation de la base ;
2 Copiez-la par Ctrl + C, puis collez-la avec Ctrl + V ;
3 Modifiez le nom de la copie en lappelant par exemple Stagiai-
resNeige.

257
DExcel Access

Reste entrer le critre de slection des enregistrements. Il suffit cet effet


douvrir la requte modifier en mode Cration/bauche, puis de saisir le
ou les critres sur la ligne Critre dans la colonne du champ souhait. La
figure 11-1 montre le critre ncessaire notre requte StagiairesNeige.

Figure 111
Le critre Neige est saisi
pour le champ NomActivite.

BASE Alias, ksaco ? La saisie des critres ncessite quelques remarques. Tout dabord, il est
En mode bauche, lors de la cration dune inutile dajouter les guillemets " (Access) ou ' (Base) lors de la saisie des
requte, Base autorise pour chaque champ la critres, le logiciel les ajoute tout seul. Ensuite il est bien videmment
saisie dun alias. Il sert simplement obtenir un indispensable de respecter la lettre lorthographe des contenus des
libell plus lisible que le nom du champ lors de
champs (Neige et non Naige). Par contre, respecter la casse nest pas
lexcution de la requte (par exemple, NomSta-
giaire peut avoir comme alias Nom du stagiaire). indispensable : les trois critres Neige, NEIGE ou neige fonctionneront
de la mme faon.
La figure 11-2 reprsente notre requte en mode Contenu. Nous ny
voyons bien comme souhait que les participants lactivit Neige.
Noubliez surtout pas denregistrer les modifications en fermant la requte.

Figure 112
Les trois participants lactivit Neige

Crer une requte slection paramtre


PRODUCTIVIT Multiplier La requte slection que nous venons de crer fonctionne parfaitement
les requtes partir dun modle
bien mais prsente un inconvnient pour bien faire, puisque lcole
Pour crer les variantes de la requte Stagiai- propose plusieurs activits, il faudrait crer autant de variantes de cette
resNeige, il suffit den prendre une copie, puis dy requte StagiairesNeige : une pour le rocher AD, une pour le rocher TD,
modifier manuellement le critre correspondant
une autre activit. etc. Si lcole comportait 100 activits, cela ferait quand mme un peu
trop de requtes...
Lalternative que nous allons tudier ici va consister crer une requte
slection paramtre. Lors de son excution, cette requte va afficher une
bote de dialogue avec une zone de saisie ; nous naurons qu y entrer le
nom dune activit de lcole et la requte nous en renverra les participants.
Nous pourrons ainsi nous contenter de cette seule requte, potentielle-
ment capable de lister les stagiaires de nimporte quelle activit.

258
11 Isoler des enregistrements particuliers dans une base de donnes
Le mode opratoire est exactement le mme que pour une requte slec-
tion simple, la diffrence prs quaprs avoir ouvert la requte en mode
Cration, il faut saisir pour le champ souhait et sur la ligne critre, entre
crochets [ ], le message que vous dsirez voir affich lors de lexcution
de la requte. Dans notre exemple, il faut par exemple saisir dans le
champ NomActivite le code [Entrez le nom de lactivit souhaite
SVP] comme sur la figure 11-3.

Figure 113
La saisie du critre paramtr Access

BASE La programmation du paramtre

La syntaxe est lgrement diffrente pour Base : saisir


=:Entrez_le_nom_de_l_activit_souhaite, comme sur la figure 11-4. Le signe =
va disparatre quand vous allez valider, cest normal (il permet simplement dviter que la
chane de caractres soit considre comme une constante et sencadre de guillemets).

Figure 114 La saisie du critre paramtr Base

Lors de lexcution de la requte, Access ou Base affichent dans une


bote de dialogue le message prcdemment saisi entre crochets, dans
notre exemple Entrez le nom de lactivit souhaite SVP . Entrez
alors le nom de lactivit pour laquelle vous souhaitez connatre les ins-
crits dans la zone de saisie (figure 11-5) et validez, les rsultats saffi-
chent comme souhait.

Figure 115
La saisie dun paramtre dune requte

Nous allons maintenant conclure cette tude des critres de slection


dans une requte avec quelques prcisions concernant les critres logi-
ques ET et OU.

259
DExcel Access

ALLER PLUS LOIN Trier une requte

Il est en gnral souhaitable de trier les rsultats dune requte selon un ordre fixe, afin
den faciliter la lecture et lanalyse.
Un tri se paramtre trs facilement en mode Cration/bauche : il suffit de choisir loption
Croissant ou Dcroissant sur la ligne Tri de la colonne du champ souhait. La figure 11-6
illustre sous Base le tri de notre requte StagiairesNeige selon le champ NumeroStagiaire.

Figure 116 Le paramtrage dun tri dans une requte avec Base.

Combiner les critres de slection


Combiner des critres permet de rpondre des questions plus com-
RAPPEL ET et OU
plexes, comme lister les participants de lactivit Neige et ceux de lacti-
Lacception habituelle de ET et de OU ne correspond vit Goulottes, ou encore les participants de lactivit Goulottes ns
pas toujours son quivalent logique. Nous lavions
voqu lors de ltude des filtres de slection de
avant le 01/01/1990. Il sagit dans ces deux cas de variations sur le thme
listes de donnes au chapitre 3. En particulier, nous des combinaisons de critres laide des oprateurs ET et OU.
avions voulu lister les ventes ralises par Jean et Pour combiner plusieurs critres sur le mme champ (par exemple pour
Pierre ; mais nous avions fini par constater
quaucune vente navait pu tre ralise la fois par lister les participants aux activits glaciaires Neige et Goulottes), il suffit
Jean ET Pierre, et que la logique voulait quon de saisir dans la colonne du champ concern les critres les uns aux des-
recherche dans ce cas les ventes de Pierre OU celles sous de sautres en utilisant les lignes Ou. La figure 11-7 illustre comment
de Jean. Voyez page 51 pour plus de dtails. lister les stagiaires inscrits lactivit Neige ou lactivit Goulottes.

Figure 117
La saisie de deux critres OU (toutes les lignes
disponibles en dessous des critres dj saisis
peuvent recueillir des lignes OU)

Pour appliquer des critres sur plusieurs champs la fois, par exemple
SYNTAXE pour lister les participants de lactivit Goulottes ns avant le 01/01/
Suprieur , strictement suprieur ... 1990, il suffit de saisir les diffrents critres dans les colonnes des
Utilisez = accol > ou < pour spcifier ou champs concerns. La figure 11-8 illustre le paramtrage de la requte
gal : => ou =< listant les participants lactivit Goulottes ns avant le 01/01/1990.

260
11 Isoler des enregistrements particuliers dans une base de donnes
Notez le paramtrage du critre concernant le champ DateNaissance-
Stagiaire (ne saisir que <01/01/1990, Access ajoute les caractres #).

Figure 118
Le paramtrage de critres
sur plusieurs champs en parallle.

Les combinaisons de plusieurs critres sur plusieurs champs reclent


quant eux quelques piges : il faut dans ce cas bien penser rpter si
ncessaire lensemble des critres de tous les champs pour chaque ligne
Ou utilise. Par exemple :
Les paramtres de la figure 11-9 listent les stagiaires des deux acti-
vits Neige et Goulottes, tous ns avant le 01/01/1990. Le critre
<01/01/1990 est rpt pour les deux lignes Ou de critres Neige et
Goulottes.
Par contre, sur la figure 11-10, le critre <01/01/1990 nest prsent
que sur la ligne Goulottes, et nest donc valide que pour cette activit.
Cette requte listera donc dune part tous les participants lactivit
Goulottes ns avant le 01/01/1990, et dautre part tous les partici-
pants lactivit Neige, quelque soit leur date de naissance.

Figure 119 Les critres de chaque champ sont rpts sur chaque ligne Ou

Figure 1110 Lomission dun critre sur une ligne Ou

261
DExcel Access

EXHAUSTIF Lister tous les critres Utiliser les critres de slection volus
de slection disponibles
Les SGBDR proposent toute une panoplie de critres volus permet-
Nhsitez pas consulter laide en ligne de vos tant daffiner nos recherches. Il est impossible de tous les lister, tant ils
logiciels prfrs : sont nombreux. Le tableau ci-dessous en donne les principaux pour
Access : taper dans laide les mots cls
Exemple de critres de requte. Access, juste pour vous donner une ide de ce quil sera possible de faire
Base : taper dans laide le mot Critres puis avec de tels critres.
choisir la rubrique bauche de requte.
Tableau 111 Slection de quelques critres de slection volus (Access)

Famille Critre Explication Exemple dans la base dalpinisme


Divers Est Null Affiche les enregistrements dont la valeur Est Null dans le champ TelStagiaire slectionne
de champ est nulle les stagiaires qui nont pas le tlphone
Texte Pas comme N* Renvoie les enregistrements ne commen- Appliqu au champ NomActivite, liste toutes les
ant pas par N activits sauf Neige
NbCar([NomStagiaire])<=7 Liste les stagiaires dont le nom comporte 10 Exclut Duchemin (8 caractres)
caractres ou moins
Nombre <=500 Renvoie les enregistrements dont la valeur Appliqu au champ NumeroStagiaire, renvoie les
du champ est infrieure ou gale 500 500 premiers inscrits
En (500, 600) Renvoie les enregistrements dont la valeur Appliqu au champ NumeroStagiaire, renvoie les
du champ est gale 500 ou 600 stagiaires compris entre le 500e et le 600e inscrit
Comme"*,99" Renvoie les enregistrements dont la valeur Pas dexemple dans notre base
du champ se termine par ,99
Date #23/03/1980# Renvoie les enregistrements dats du 23 Appliqu au champ DateNaissanceStagiaire, ren-
mars 1980 voie lenregistrement de Dupont Albert
PartDate("m", Renvoie les enregistrements des anniversai- Appliqu au champ DateNaissanceStagiaire, ren-
[DateNaissanceStagiaire]) = 3 res survenant en mars (troisime mois de voie lenregistrement de Dupont Albert
lanne)

Identifier des enregistrements sans


correspondance
Lobjet dune requte de non-correspondance est de rechercher dans une
CNIL Informatique et libert
table matre les enregistrements pour lesquels une valeur particulire de
Les quelques exemples donns ci-contre illustrent cl primaire est absente dans la cl secondaire de sa table esclave. Con-
clairement ce quun utilisateur mal intentionn peut
faire avec une base de donnes relationnelle. Con-
crtement, une requte de ce type pourra rechercher les produits dune
sultez cet effet lannexe spcifique, page 342. entreprise qui nont jamais t commands, ou encore les salaris dune
entreprise qui nont jamais particip un voyage du comit dentreprise,
ou encore les titulaires dune carte bleue qui nont jamais utilis cette
carte pour un achat dans un magasin...

262
11 Isoler des enregistrements particuliers dans une base de donnes
Dans notre cas pratique, ce type de requte pourrait isoler les stagiaires
qui ne se sont inscrits aucune activit. Ou encore, comme nous allons
le faire, les guides de secours.
Dans notre cas pratique, nous nous rappelons en effet que dans la table des
Guides coexistent des guides qui ont une affectation et dautres qui nen
ont pas (les guides de secours auxquels nous pouvons faire appel en cas de
dfaillance du titulaire). Une requte de non-correspondance va permettre
de les lister. La caractristique dun guide de secours est en effet de pos-
sder un NumeroGuide (cl primaire de la table des Guides) quon ne
retrouve pas dans le champ NumeroGuide, cl trangre de la table des
Activites, comme sur la figure 11-11. Dans ce schma, nous constatons
que les enregistrements rechercher (les guides) se trouvent dans la table
matre de la relation entre Guides et Activites, et que le champ permettant
de dterminer quil sagit dun guide de secours est le champ Numero-
Guide, cl trangre de la table esclave de la mme relation.

Figure 1111
Illustration dune non-correspondance : Chlo
nencadre pas dactivit puisque son identi-
fiant de la table matre nest pas prsent dans
la table esclave.
Attention : ces donnes ne correspondent pas
celles du cas pratique...

Concrtement, pour crer ce type de requte, nous allons utiliser sous


Access lexcellent Assistant cration de requte de non-correspondance.
Sous Base, pour lequel cet assistant nexiste pas, nous allons nous initier
SQL, qui est le vritable langage de programmation des requtes ainsi
que nous allons le voir (page 263).

Crer la requte de non-correspondance avec lassistant


Access
Nous allons ici apprendre excuter lassistant Access ddi aux requtes
de non-correspondance pour isoler les guides de secours des autres
guides de la table des Guides.

263
DExcel Access

Pour lancer lassistant Cration de requte de non-correspondance :


Sous Access 2007 : cliquez sur loutil Assistant requte dans longlet
Crer, groupe Autre, et choisissez loption Assistant requte de non-cor-
respondance.
Sous Access 2003 : slectionnez la famille Requte dans le volet de
navigation, puis double-cliquez sur Nouveau et choisissez loption
Assistant requte de non-correspondance (figure 11-12).

Figure 1112
Louverture de lassistant Requte
de non-correspondance sous Access 2003

Nous sommes maintenant sous le contrle de lassistant qui va nous


mener bon port, condition videmment de rpondre judicieusement
aux questions qui vont nous tre poses...
La premire tape de lassistant consiste choisir la table dont on sou-
haite extraire les enregistrements. Les guides de secours sont saisis dans
la table des Guides. la question Quelle table ou requte contient les
enregistrements que vous souhaitez voir dans les rsultats de la
requte ? , il faut donc slectionner la table des Guides, figure 11-13.
Cliquez sur Suivant.
La deuxime boite de dialogue permet de spcifier la table dans laquelle
TRUC La hirarchie matre esclave
dans la requte de non-correspondance nous nallons pas retrouver certaines valeurs de la cl primaire de la table
spcifie ltape prcedente. Il sagit ici de la table Activites (les guides
Dans ltape 1 de lassistant de cration de
requte de non-correspondance, il faut slec-
de secours ne verront pas leur NumeroGuide rappel dans cette table),
tionner la table matre de la relation. Dans ltape comme sur la figure 11-14. Cliquez sur Suivant.
2, il faut en slectionner la table esclave. Ltape suivante de lassistant va fixer le champ selon lequel la recherche
de non-correspondance entre les deux tables spcifies prcedemment va
seffectuer. Il ne peut sagit que du champ autorisant la relation entre ces
deux tables comme le confirme la logique : un guide de secours ne voit
pas son NumeroGuide de la table Guides rappel dans la table Activites
(figure 11-15). Cliquez sur Suivant.

264
11 Isoler des enregistrements particuliers dans une base de donnes
Figure 1113
La slection de la table source
dans lassistant Requte de non-correspondance

Figure 1114
La slection de la table de non-correspondance

Figure 1115
La slection du champ de non-correspondance

265
DExcel Access

Il sagit maintenant dindiquer Access les champs que nous dsirons


voir affichs par la requte de non-correspondance. Si nous najoutions
aucun champ cette tape, nous nobtiendrions que les NumeroGuide
des guides de secours, ce qui serait exact mais pas trs parlant... Intgrez
donc lensemble des champs de notre table source des Guides, figure 11-
16. Cliquez sur Suivant.

Figure 1116
Tous les champs de la table source
Guides sont slectionns.

Lassistant se termine par lcran classique qui permet denregistrer la


requte et den choisir le mode douverture, Cration ou Contenu. Le
nom propos par dfaut par Access pour notre requte, Guides et Activits
sans correspondance est exact, mais pas forcment trs explicite, il vaut
mieux lui substituer le nom GuidesDeSecours, parfaitement clair. Choi-
sissons ensuite de visualiser les rsultats de la requte comme sur la
figure 11-17 et cliquons sur Terminer.

Figure 1117
La fin de lassistant Requte de non-correspon-
dance (le nom de requte a t modifi)

266
11 Isoler des enregistrements particuliers dans une base de donnes
Le rsultat de la requte de non-correspondance saffiche, figure 11-18.
Nous constatons que seul Pierre Tairraz, du bureau de Chamonix, na
pas daffectation en cours. Il est donc le seul guide de secours.

Figure 1118
Seul Pierre Tairraz nencadre pas dactivit

AUTRE EXEMPLE Requte Stagiaires sans Inscription

La requte de non-correspondance entre Stagiaires et Inscriptions (selon le champ Numero-


Stagiaire) ne doit afficher aucun enregistrement (puisquil nexiste aucun stagiaire ntant ins-
crit aucune activit). Vrification, figure 11-19 : la requte de non-correspondance est vide,
il ny a donc aucun stagiaire qui ne soit inscrit aucune activit.

Figure 1119 Il nexiste aucun stagiaire inscrit aucune activit.

Comment le vrifier ? Son NumeroGuide (dans la table des Guides) est le 2.


Il suffit douvrir la table Activites en mode Contenu et de constater que seule
la valeur 2 nest pas prsente dans la colonne NumeroGuide, figure 11-20. Ce
qui confirme bien que seul ce guide nencadre pas dactivit.

Figure 1120
Seuls les numros de guide 1, 3 et 4
sont prsents dans la table Activites.
Le guide 2 est donc guide de secours.

Comment, sur le plan technique, fonctionne une requte de non-


correspondance ? Pour chaque valeur de la cl primaire de la table
matre, elle recherche la prsence de la mme valeur dans la cl trangre
de la table esclave. chaque fois que la recherche ne trouve pas la cor-
respondance, elle renvoie ladite valeur (ainsi que les autres champs de
lenregistrement de la table matre). Tout lintrt est bien videmment
dexcuter cette recherche rapidement et sans se tromper, mme sur des
milliers denregistrement.

Visualiser la requte de non-correspondance


Lassistant nous a aid construire notre requte de non-correspon-
dance. Nous pouvons parfaitement la visualiser, non plus en mode Con-

267
DExcel Access

tenu comme prcdemment, mais en mode Cration et mme en mode


SQL, pour savoir concrtement comment Access a traduit les instruc-
tions de lassistant.

Le mode Cration de la requte de non-correspondance


AU CHOIX Afficher ou non Demandez donc laffichage de notre requte de non-correspondance entre
certains champs dune requte Guides et Activites en mode Cration pour obtenir un affichage proche de
Tous les champs prsents dans une requte en la figure 11-21. Nous y retrouvons dabord les champs de la table des
mode Cration participent son excution. Par Guides (pour afficher ltat civil des guides de secours) et enfin le champ
contre, on peut trs bien nafficher que certains de NumeroGuide de la table Activites, sur lequel la recherche de non-corres-
ses champs en mode Contenu avec cette case
Afficher. Imaginons par exemple une requte
pondance a t effectue. Notons galement deux particularits :
devant effectuer des calculs complexes ; pour des Pour le dernier champ NumeroGuide de la table Activites, le critre de
raisons pratiques, nous avons dcompos ce calcul slection paramtr automatiquement par lassistant Access est Est Null.
en plusieurs tapes, donc en plusieurs champs.
En effet, un guide de secours a un NumeroGuide dont la valeur ne se
Nous navons rellement besoin que dafficher les
rsultats de ce dernier champ, et nous pouvons retrouve pas dans le mme champ de la table Activites.
donc dcocher cette case Afficher pour les La case Afficher est dcoche pour ce mme champ. Ce champ nest
champs intermdiaires. Voyez le chapitre 12 pour donc pas affich par la requte en mode Contenu : tant mieux,
plus de prcisions sur les calculs dans les requtes.
puisque justement sa valeur est nulle !

Figure 1121
Le paramtrage de la requte de non-corres-
pondance en mode Cration

Nous aurions trs bien pu programmer cette requte directement en


mode Cration en reproduisant les paramtres de la figure 11-21, con-
dition que nous ayons su comment. Lobjet de ce livre nest pas
dapprendre toutes les finesses de paramtrage de ce mode Cration,
mais bien plutt de nous initier aux grandes rgles prsidant la cration
de base de donnes simples et efficaces. Heureusement, lassistant est
venu notre secours dans ce cas particulier.

Le mode SQL de la requte de non-correspondance


SQL est, comme nous lavons spcifi, le langage informatique utilis en
arrire plan par Access et Base. Mme si ici notre but nest pas
dapprendre ce langage assez complexe, rien ne nous empche de visua-

268
11 Isoler des enregistrements particuliers dans une base de donnes
liser notre requte de non-correspondance en mode SQL, ne serait-ce
que pour voir (encore que ce code SQL nous sera utile pour crer
cette requte de non-correspondance sous Base, voyez ci-dessous).
Pour afficher une requte existante en mode SQL, slectionnez la
requte dans le volet de navigation puis, par un clic droit, loption mode
SQL, ou bien cliquez sur loutil Affichage puis sur loption mode SQL.
La figure 11-22 prsente notre requte GuidesDeSecours en mode SQL.

Figure 1122
La requte GuidesDeSecours en mode SQL

Nous y visualisons le code gnr SQL gnr par lassistant dans notre
exemple :
SELECT Stagiaires.NumeroStagiaire, Stagiaires.NomStagiaire,
Stagiaires.PrenomStagiaire, Stagiaires.DateNaissanceStagiaire,
Stagiaires.TelStagiaire
FROM Stagiaires LEFT JOIN Inscriptions
ON Stagiaires.[NumeroStagiaire] = Inscriptions.[NumeroStagiaire]
WHERE (((Inscriptions.NumeroStagiaire) Is Null))

Le tableau ci-dessous en dcompose les lments :


Tableau 112 Code SQL de la requte de non-correspondance entre Guides et Activites (Access)

Code Signification
SELECT Guides.NumeroGuide, Guides.NomGuide, Linstruction SELECT permet de spcifier les champs afficher.
Guides.PrenomGuide, Guides.BureauGuide Les noms de la table et du champ sont spars par un point (.) ; par
exemple, Guides.NumeroGuide signifie champ NumeroGuide de
la table des Guides .
FROM Guides LEFT JOIN Activites ON Guides.NumeroGuide Linstruction FROM dsigne la table matre du couple matre/esclave (ici
= Activites.NumeroGuide Guides).
Linstruction LEFT JOIN dsigne la table esclave (ici Activites).
Linstruction ON dsigne les champs mettant les deux tables en relation,
ici le champ NumeroGuide.
WHERE (((Activites.NumeroGuide) Is Null)) Linstruction WHERE permet dintroduire une condition dans notre code
SQL. La condition est ici que le guide de secours possde un Numero-
Guide qui ne se retrouve pas dans la table des Activites.

269
DExcel Access

Crer la requte de non-correspondance en mode SQL


avec Base
Le langage SQL est le langage informatique de base de donnes rela-
tionnelle utilis en arrire-plan aussi bien par Access que par Base. Nous
venons de crer au chapitre prcdent une requte de non-correspon-
dance laide de lassistant Access. Pour obtenir son quivalent Base (qui
ne dispose pas de cet assistant), la seule solution est de crer le code SQL
correspondant et de lutiliser dans une requte Base en mode SQL. Dans
notre cas, nous allons nous contenter dutiliser le code SQL gnr par
lassistant Access.
Cette section est bien videmment calibre pour les utilisateurs de Base.
Ceux dAccess pourront malgr tout sy rfrer, les procdures sont trs
semblables.
La syntaxe dun code SQL Base diffre lgrement de celle de son
homologue Access. Nous allons donc commencer par rcrire le code
SQL de notre requte de non-correspondance avant de lappliquer une
requte vierge en mode SQL.

Crer le code SQL de requte de non-correspondance


Nous venons de dtailler le code SQL gnr sous Access par lassistant
requte de non-correspondance entre les tables Guides et Stagiaires.
Quelques diffrences de dtail distinguent la syntaxe SQL Base de SQL
Access. En particulier, il faut, sous Base, sparer les noms de champs des
noms de tables par des ". Le code correspondant au SQL Access SELECT
Guides.NumeroGuide, Guides.NomGuide, Guides.PrenomGuide,
Guides.BureauGuide est, pour Base, SELECT "Guides"."NumeroGuide",
"Guides"."NomGuide", "Guides"."PrenomGuide", "Guides"."BureauGuides".

Par consquent, le code SQL de notre requte de non-correspondance


dvelopp sous Access devient pour Base :
SELECT "Guides"."NumeroGuide", "Guides"."NomGuide",
"Guides"."PrenomGuide", "Guides"."BureauGuides" FROM "Guides" LEFT
JOIN "Activites" ON "Guides"."NumeroGuide" =
"Activites"."NumeroGuide" WHERE ( ( ( "Activites"."NumeroGuide" ) IS
NULL ) )

Nous allons maintenant crer une requte Base en mode SQL pour y
placer ce code. Et le tour sera jou...

270
11 Isoler des enregistrements particuliers dans une base de donnes
Crer la requte de non-correspondance en mode SQL
partir du moment o le code SQL est crit, crer une requte en mode
SQL est un jeu denfant :
1 Crez une nouvelle requte en mode SQL.
2 Saisissez le code SQL.
3 Enregistrez et nommez la requte.
Le mode opratoire pour Base, appliqu notre requte de non-correspon-
dance entre les tables Guides et Activites, est trs simple. Commencez par
crer un nouvelle requte en mode SQL en slectionnant la famille Requtes
dans le volet de navigation puis en cliquant sur loutil Crer une requte en
mode SQL. Une nouvelle requte souvre, il suffit dy saisir le code SQL sou-
hait au clavier ou par copier/coller. La figure 1123 illustre le code saisi
avec Base. Il ne reste plus qu enregistrer la requte et lexcuter. Ses rsul-
tats sont exactement conformes ceux de son homologue Access.

Figure 1123 Le code SQL de requte de non-correspondance (Base)

ACCESS Crer une requte en mode SQL

Voici comment crer sous Access une requte en mode SQL.


Avec la version 2007 :
1. Crez une nouvelle requte en mode Cration (dans longlet Crer, groupe Autre,
cliquez sur loutil Cration de requte).
2. Fermez la bote de dialogue Ajouter une table.
3. Basculez en mode SQL par le bouton Affichage, option mode SQL.
Avec la version 2003 :
4. Crez une nouvelle requte en mode Cration (cliquez sur Requtes dans le volet
de navigation, double-cliquez sur Nouveau, choisissez loption Mode Cration).
5. Fermez la bote de dialogue Ajouter une table.
6. Basculez en mode SQL par le bouton Affichage, option mode SQL.

Identifier les doublons dans une table


Il y a doublon sur un champ quand la mme valeur est prsente dans ce
champ pour plus dun enregistrement de cette table. Rechercher des
doublons sur un champ dans une table permet de trouver par exemple :
Les salaris homonymes dune entreprise (il y a alors doublon sur le
champ Nom de la table des Salaris).

271
DExcel Access

Les clients ayant pass plus dune commande (il y a alors doublon sur
le champ NumeroClient de la table des Commandes).
Les chques encaisss par erreur deux fois dans les fichiers compta-
bles de lentreprise (il y a alors doublon sur le champ NumeroCheque
de la table des MouvementsComptables).
Dans notre cas pratique, nous allons chercher identifier les stagiaires
qui se sont inscrits plusieurs activits. Afin peut-tre de les chou-
chouter un peu plus...

TRUC Trouver les doublons pour un champ susceptible de devenir cl primaire

Il est frquent dutiliser des donnes dj existantes pour crer une table Access ou Base,
notamment en important un tableau Excel ou Calc (page 150). Ces donnes peuvent par-
fois contenir par erreur des doublons sur un champ susceptible de devenir cl primaire.
Tant que ces doublons ne seront pas reprs et limins, cette opration ne sera pas pos-
sible puisquune cl primaire nadmet pas de doublon. Il sera alors trs utile dutiliser une
requte de recherche de doublons pour les isoler et les traiter.

Avant de passer la programmation de cet exemple, recherchons ensemble


ALLER PLUS LOIN Doublon sur le champ
NomActivite de la table des Inscriptions quel champ est susceptible de contenir un doublon si un stagiaire est inscrit
plusieurs activits. Ce nest en effet pas aussi vident quil parat. Dans
Si nous recherchons les doublons dans le champ
NomActivite de la table des Inscriptions, nous
notre exercice, le doublon ne sera ni dans la table des Stagiaires (puisque
dtecterons les activits pour lesquelles il y a plus par dfinition chaque stagiaire ny est prsent quune seule fois) ni dans la
dun inscrit ; dans la figure 1124, il y a par table Activites (puisque toujours par dfinition chaque activit ny est pr-
exemple trois inscrits lactivit Neige (les sta- sente quune fois). Cest donc dans la table des Inscriptions quil faut
giaires dont le numro est le n 1, 3 et 4).
rechercher notre doublon. Une analyse approfondie amne constater que
si un stagiaire est inscrit plusieurs activits, son numro de stagiaire est
prsent plusieurs fois dans le champ NumeroStagiaire, figure 11-24.

Figure 1124
Le stagiaire n1 est inscrit quatre activits,
les n2 et n3 deux activits
et le n4 une seule.

Nous avons donc dtermin le champ susceptible de contenir des dou-


blons pour rsoudre notre exercice. Il ne nous reste plus qu btir la
requte correspondante. Comme dans le cas de la requte de non-corres-
pondance, Access dispose dun assistant spcifique que Base ne possde
pas ; nous allons donc utiliser cet assistant avec Access, puis nous utilise-
rons le code SQL gnr pour lappliquer la requte Base.

272
11 Isoler des enregistrements particuliers dans une base de donnes
Crer une requte de recherche de doublons avec
lassistant Access
Le lancement de lassistant correspondant est trs facile :
Sous Access 2007 Cliquez sur loutil Assistant requte dans longlet
Crer, groupe Autre, puis slectionnez loption Assistant requte
trouver les doublons. Cliquez sur Suivant.
Sous Access 2003 Cliquez sur la famille Requtes du volet de navi-
gation, puis sur le bouton Nouveau et choisissez Assistant requte
trouver les doublons. Cliquez sur Suivant.
Nous sommes maintenant sous le contrle de lassistant :
1 Dsignation de la table susceptible de contenir des doublons Nous
avons dtermin dans notre exercice quil sagit de la table des Ins-
criptions. Slectionnons-la dans la liste droulante, figure 11-25. Cli-
quons sur Suivant.

Figure 1125
Choix de la table Inscriptions
qui est susceptible de contenir des doublons

2 Choix du champ susceptible de contenir des doublons Nous avons


dtermin dans notre exercice quil sagit du champ NumeroStagiaire,
figure 11-26. Cliquons sur Suivant.
3 Ajout ventuel dautres champs Access propose dajouter des
champs parmi les autres champs de la table. Slectionnons-les tous,
figure 11-27. Cliquons sur Suivant.
4 Fin de lassistant Access propose de nommer la requte Rechercher
les doublons pour [nom de la table source]. Pourquoi pas, mais ce nest
pas trs clair... StagiairesMultiActivites sera plus parlant. Par ailleurs,
nous retrouvons la possibilit douvrir la requte en mode Contenu ou
en mode Cration. Choisissons le mode Contenu pour visualiser tout
de suite le rsultat de la requte, figure 11-28, et cliquons sur Terminer.

273
DExcel Access

Figure 1126
Le champ NumeroStagiaire
de la table Inscriptions contient les doublons

Figure 1127
Lassistant propose de rajouter
les autres champs de la table source

Figure 1128
Ne jamais oublier de changer le nom
par dfaut dune requte. Noter que
loption Modifier la structure est coche.

274
11 Isoler des enregistrements particuliers dans une base de donnes
Notre requte saffiche en mode Contenu, comme le montre la figure 11-
29. Son rsultat est exact : le stagiaire n1 est inscrit quatre activits, les
n2 et n3 deux activits et seul le stagiaire n4 (inscrit une seule acti-
vit) nest pas prsent dans cette requte. Mais elle souffre dun dfaut
majeur : les noms et prnoms des stagiaires ne sont pas affichs, ce qui
ne la rend pas trs lisible ! Qu cela ne tienne, nous allons les ajouter.

Figure 1129
Seuls les numros de stagiaires inscrits plusieurs activits saffichent
dans la requte de non-correspondance directement issue de lassistant Access.
Exact, mais pas trs parlant...

RAPPEL Les champs dune requte sont modifiables

Cliquer sur une cellule de la requte disposant dune liste de choix, figure 11-30, met en
vidence le fait quil soit possible de modifier les donnes de la requte. Nous en avonc
dj parl (page 245), mais il faut le rpter : utiliser une requte pour modifier les don-
nes est trs dangereux et ne doit tre rserv qu des cas exceptionnels, comme la
requte spcifique de saisie des inscriptions que nous avons dveloppe au chapitre .

Figure 1130 Un requte peut aussi modifier les donnes source

Modifier une requte existante


Notre requte issue de lassistant manque de lisibilit. Nous allons lui
ajouter les champs NomStagiaire et PrenomStagiaire.
Lajout de champs dans une requte dj existante nest quune variante de
la cration dune requte en mode Cration/bauche que nous avons abord
au chapitre 10, page 243. Il va sagir dafficher la requte en mode Cra-
tion/bauche, dajouter ventuellement les tables requises et enfin dinsrer
les champs souhaits parmi les champs dj utiliss par la requte.

275
DExcel Access

La figure 11-31 montre notre requte StagiairesMultiActivites en mode


Cration lissue de lassistant.

Figure 1131
La table des Stagiaires napparat pas
dans les tables disponibles pour la requte.

Les champs ajouter la requte appartiennent une table (celle des


Stagiaires) qui ne participe pas encore la requte. Pour ajouter une
table dans une requte en mode Cration/bauche, il faut utiliser loutil
Ajouter une table, figures 11-32 et 11-33.

Figure 1132
Lajout des tables manquantes
dans une requte en mode
Cration/bauche.
Ajouter les diffrentes tables
et cliquer sur Fermer.

276
11 Isoler des enregistrements particuliers dans une base de donnes
Figure 1133
Loutil Ajouter une table dAccess 2003

Nous souhaitons maintenant insrer nos deux champs NomStagiaire et


PrenomStagiaire, non droite du champ NomActivite par cliquer glisser
comme nous savons dj le faire (page 245), mais entre NumeroStagiaire
et NomActivite. Pour insrer un champ entre deux autres, il suffit de cli-
quer sur le champ souhait et de le glisser sur le champ gauche duquel
on veut insrer le champ et de relcher le clic : le champ slectionn
sinsre alors entre le champ de gauche et celui au dessus duquel on la
pos. Par exemple, pour insrer NomStagiaire entre NumeroStagiaire et
DateInscription :
1 Cliquez sur NomStagiaire dans la table des Stagiaires.
2 Glissez-le au-dessus du champ DateInscription. TRUC Dplacer les colonnes dune requte
3 Relchez le clic. Pour dplacer les colonnes dune requte, il suffit,
La figure 11-34 montre la requte modifie dfinitive. Il suffit de lex- comme avec un tableur, de cliquer sur len-tte de
la colonne (donc du champ) et de la glisser o lon
cuter pour connatre la liste des trois stagiaires concerns, figure 11-35.
veut.
Noubliez pas de lenregistrer en la fermant.

Figure 1134 La requte dfinitive Rechercher les doublons. Remarquez le critre de slection pour le champ NumeroStagiaire.

Figure 1135
Les trois stagiaires inscrits plusieurs activits.

277
DExcel Access

ALLER PLUS LOIN Le code SQL Access de notre requte de recherche de doublons

Le code gnr par lassistant Access de notre cas pratique est le suivant :
SELECT Inscriptions.NumeroStagiaire, Stagiaires.NomStagiaire,
Stagiaires.PrenomStagiaire, Inscriptions.DateInscription,
Inscriptions.NomActivite
FROM Stagiaires INNER JOIN Inscriptions
ON (Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire)
AND (Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire)
WHERE (((Inscriptions.NumeroStagiaire)
In (SELECT [NumeroStagiaire] FROM [Inscriptions] As Tmp
GROUP BY [NumeroStagiaire] HAVING Count(*)>1 )))
ORDER BY Inscriptions.NumeroStagiaire;
Sans entrer dans le dtail, il sanalyse ainsi :
SELECT... : spcifie les champs participant la requte ;
FROM... : dcrit les relations entre les tables de la requte ;
WHERE... : dfinit le critre de recherche de doublon (...[NumeroStagiaire]
HAVING Count(*)>1) ;
ORDER BY... : dcrit lordre de tri de la requte.

Crer une requte de recherche de doublons en mode SQL


Rappelons que le mode SQL est le seul permettant de crer une requte
de recherche de doublons avec Base, ce logiciel ne possdant pas lassis-
tant correspondant. Il va sagir alors, comme avec la requte de non-cor-
respondance de la section prcdente, dadapter le code SQL gnr par
Access et de lappliquer une requte Base en mode bauche.
Concernant ladaptation du code SQL Access en code SQL Base, nous
savons dj que Base utilise des " comme sparateur de champ, voir
page 263. Nous savons de plus que le champ DateInscription (utilis
dans la base dcole dalpinisme Access) a comme quivalent le champ
NumeroInscription sous Base. Le code SQL adapt Base est donc :
SELECT "Inscriptions"."NumeroStagiaire", "Stagiaires"."NomStagiaire",
"Stagiaires"."PrenomStagiaire", "Inscriptions"."NumeroInscription",
"Inscriptions"."NomActivite"
FROM "Stagiaires" INNER JOIN "Inscriptions" ON
("Stagiaires"."NumeroStagiaire" = "Inscriptions"."NumeroStagiaire")
AND ("Stagiaires"."NumeroStagiaire" =
"Inscriptions"."NumeroStagiaire")
WHERE ((("Inscriptions"."NumeroStagiaire") In (SELECT
"NumeroStagiaire" FROM "Inscriptions" As Tmp GROUP BY
"NumeroStagiaire" HAVING Count(*)>1 )))
ORDER BY "Inscriptions"."NumeroStagiaire";

Il nous suffit maintenant de copier ce code dans une requte Base en


mode bauche et de lexcuter pour obtenir son rsultat, figure 11-36.

278
11 Isoler des enregistrements particuliers dans une base de donnes
Figure 1136
La requte Base cre en SQL donne
les mmes rsultats que celle de la figure 11-35.

Synthse : rechercher des enregistrements


particuliers dans une base de donnes
Ce chapitre a dvelopp le fonctionnement des requtes slection sous
SGBDR, au travers notamment de la slection paramtre et conviviale
avec un message interactif, de la requte de non-correspondance et de la
recherche de doublons.
Les requtes slection permettent, comme leur nom lindique, de recher-
cher des enregistrements particuliers selon des critres entirement para-
mtrables. Il suffit dentrer lesdits critres sur la ligne correspondante
dune requte en mode Cration/bauche. Il est possible de combiner
des slections sur plusieurs champs la fois et/ou plusieurs critres sur le
mme champ en utilisant la ligne Ou.
Les requtes de non-correspondance, cas particulier de requte slection,
permettent didentifier les enregistrements dune table matre qui nont
pas de correspondance dans la table esclave, par exemple pour construire
la liste des guides de secours. Les utilisateurs dAccess emploieront avec
profit lexcellent assistant ddi, ceux de Base utiliseront le mode SQL.
Le tableau ci dessous rsume la cration dune telle requte avec Access.
Les requtes de recherche de doublons, autre cas particulier de requte
slection, permettent, quant elles, disoler les champs comportant des
doublons, par exemple pour identifier les fidles stagiaires de notre cole
qui se sont inscrits plusieurs activits. Les utilisateurs dAccess utilise-
ront avec profit lexcellent assistant ddi, ceux de Base utiliseront le
mode SQL. Le tableau ci-dessous rsume la cration dune telle requte
avec Access.

279
DExcel Access

Tableau 113 tapes pour la cration dune requte de non-correspondance (Access)

Phase tape Illustration dans notre cas pratique de


recherche des guides qui nencadrent pas
dactivits
Lancer lassistant Requte de non-correspon- Access 2007 : dans longlet Crer, groupe
dance Autre, cliquez sur loutil Assistant requte et
choisissez loption Assistant requte de non-
correspondance.
Access 2003 : slectionnez la famille Requte
dans le volet de navigation, puis double-cli-
quez sur Nouveau et choisissez loption Assis-
tant requte de non-correspondance.
Assistant Requte de non-correspondance Choix de la table source (table matre) Guides
Choix de la table de non-correspondance (table Activites
esclave)
Choix du champ de non-correspondance (cl NumeroGuide
primaire et secondaire)
Slection des champs afficher NomGuide et PrenomGuide
Fin de lassistant Noubliez pas de donner un nom significatif
la requte

Tableau 114 tapes pour la cration dune requte Rechercher les doublons (Access)

Phase tape Illustration dans notre cas pratique de


recherche de stagiaires inscrits plus
dune activit
Lancement de lassistant Access 2007 : dans longlet Crer, groupe
Autre, cliquez sur loutil Assistant requte, puis
sur loption Assistant requte trouver les dou-
blons.
Access 2003 : cliquez sur la famille Requtes
du volet de navigation, puis sur le bouton Nou-
veau et choisissez Assistant requte trouver les
doublons.
Assistant Rechercher les doublons tape 1 : slection de la table source Inscriptions
tape 2 : slection du champ susceptible de NumeroStagiaire
contenir les doublons
tape 3 : ajout dautres champs de la table DateInscription et NomActivite
source
tape 4 : Fin de lassistant Donnez un nom caractristique la requte
Ajout manuel des champs en mode Cration NomStagiaire et PrenomStagiaire

280
11 Isoler des enregistrements particuliers dans une base de donnes
Enfin, nous nous sommes initis au langage SQL utilis par les SGBDR ;
les modes Assistant et Cration/bauche ntant que des interfaces per-
mettant de programmer des requtes sans connatre ce langage.
Nous allons, au cours du chapitre suivant, pousser les requtes dans leurs
derniers retranchements en tudiant comment crer, un peu la manire
dun tableur, un champ calcul partir dautres champs.

281
chapitre 12
Effectuer des calculs et des
synthses avec une requte

SOMMAIRE
B Prendre en compte
une modification
Au menu de ce chapitre, le meilleur des requtes : jongler
du cahier des charges
avec les chanes de caractres pour des mailings impeccables,
B Crer des champs calculs
effectuer des calculs pour savoir qui nous doit de largent, etc.
B Raliser des synthses
Nous saurons ainsi crer des requtes contenant des champs avec une requte
calculs, un peu la manire dun tableur, mais dans une base B Organiser son travail
de donnes ! avec les requtes

MOTS-CLS
B Cascade de modifications
B Requte calcul
B Champ calcul
B Oprateur arithmtiques
B Concatnation de chane
de caractres
B Test logique VraiFaux()
B Requte de synthse Somme,
Minimum, Maximum, Moyenne
DExcel Access

Ce chapitre conclut ltude des requtes perfectionnes commence au


chapitre prcdent.
Nous aborderons ensuite ltude des requtes calcul, qui permettent de
calculer un champ partir dautres, par exemple pour calculer le montant
des cotisations diminues de la ristourne laquelle le stagiaire a droit, ou
encore pour effectuer des tests conditionnels du style Si...alors... sinon...
Nous terminerons par la ralisation de requtes de synthse afin, par
exemple, de calculer le montant des cotisations impayes par stagiaire.
cet effet, cette tude ncessite dans un premier temps de revenir sur la
structure de la base de donnes relationnelle de notre cas pratique.

Prendre en compte une modification du


cahier des charges
Comme nous lavons vu au chapitre 5 (page page 105), les diffrents objets
et tches sempilent les uns sur les autres comme dans un chteau de
cartes, chaque tage dpendant de la solidit de celui du dessous et dter-
minant celle de celui du dessus. En cas de modification des hypothses de
dpart alors quune partie de la base a dj t programme, lquilibre
gnral de ldifice peut tre compromis et tout peut seffondrer...
Cette section a pour but de vous sensibiliser aux consquences en cascade
dun oubli (ou dune erreur) dans la modlisation de notre base de donnes
relationnelle (et donc dexpliquer pourquoi il vaut mieux ne pas se trouver
dans cette situation). Elle va aussi permettre dintroduire dans notre cas pra-
tique un nouvel lment qui permettra de bien intressants dveloppements.
Quavons nous oubli dans le cahier des charges initial de notre cole
dalpinisme, celui qui nous a servi de socle au dveloppement de cas
pratique ? Le ct financier des choses, tout simplement ! Nulle part
nous ne parlons dargent ou de cotisations ; pourtant, les stagiaires
payent bien des cotisations. Pourquoi donc notre base ne pourrait-elle
pas en mme temps les grer ?
La prise en charge des cotisations dans notre base de donnes peut, selon
les cas, tre plus ou moins complexe prendre en compte. Le cas le plus
simple pour la programmation (mais pas forcment le meilleur pour le
compte en banque) serait de crer une cotisation vie par stagiaire : on
naurait besoin de cotiser qu linscription, et cette cotisation ouvrirait
un droit vie pour sinscrire toutes les activits sans limitation. La coti-
sation serait alors attache la personne du stagiaire et il suffirait de
rajouter un champ Cotisation dans la table des Stagiaires.

284
12 Effectuer des calculs et des synthses avec une requte
Un cas plus complexe serait que la cotisation soit double : dune part une
cotisation annuelle fixe (une sorte dabonnement) et dautre part une coti-
sation annuelle diffrente pour chaque activit laquelle on sinscrit. On
pourrait en plus imaginer quune ristourne puisse tre accorde certains
stagiaires particulirement mritants ou fidles, ou mme encore quune
inscription deux activits ou plus dclenche une rduction par activit
supplmentaire. Inutile de dire dans ce cas que les schmas de modlisa-
tion thorique et relle, et donc la structure de la base de donnes, seraient
bien plus complexes : il y a de trs fortes probabilits quil faille alors
reprendre presquintgralement la programmation des tables, et donc des
formulaires, et donc de la saisie, et donc des requtes dj cres...
Heureusement pour nous, la ralit que nous vous proposons de prendre
en compte se situe un degr intermdiaire de complexit :
Chaque stagiaire doit sacquitter annuellement dune cotisation en
fontion de lactivit concerne :
Goulottes : 500 .
Mixte : 600 .
Neige : 400 .
Rocher AD : 350 .
Rocher TD : 650 .
Par souci de simplification et pour ne pas trop compliquer le modle,
nous nallons pas nous soucier de laffectation dune cotisation une
anne particulire. Les cotisations seront toujours rputes dues ou
payes pour lanne en cours.
Josette Duchemin, particulirement sympathique et mritante, a
droit 10 % de rduction (mais dautres stagiaires sont susceptibles
de bnficier leur tour dune ristourne).

Identifier les modifications de la base suite au nouveau


cahier des charges
Soyons trs clairs : il est impossible de donner des conseils gnraux appli-
cables dans toutes les situations en cas de modification du cahier des
charges. Tout cas est un cas despce. Parfois, la modification sera minime
et nimposera que dajouter un champ dans une table. Parfois il faudra
reprendre intgralement toute la structure des tables et des relations, et
donc avec tous les objets en dpendant. En fait, tout dpendra du schma
rel modifi intgrant les nouvelles hypothses et contraintes : sil est
proche du schma de dpart, les modifications apporter seront minimes
et, sil en est trs diffrent, il y aura du pain sur la planche.

285
DExcel Access

La prise en compte des cotisations selon les rgles que nous venons de
dfinir ont en fait trois consquences dans les tables de notre cas
pratique :
Le montant de la cotisation est fixe par activit ; cest donc dans la
table Activites que nous devons crer le champ Cotisation.
La ristourne potentielle est un droit personnel du stagiaire ; il faut
donc intgrer le champ Ristourne dans la table des Stagiaires.
Enfin, comme chaque stagiaire doit payer pour toute activit
laquelle il sinscrit, nous allons intgrer un champ CotisationOk (de
type Oui/Non) dans la table des Inscriptions, et par lequel nous spci-
fierons si le stagiaire est jour dans ses cotisations pour lactivit con-
cerne.
Le tableau ci-dessous rsume les modifications intgrer dans notre
base dcole dalpinisme new look :
Tableau 121 Liste des modifications de structure intgrer dans le cas pratique pour grer les cotisations

Table Champ Caractristiques


Activites Cotisation Type Montaire sans dcimale Null interdit Oui
Stagiaires Ristourne Type Pourcentage sans dcimale, valeur par dfaut 0 % (ou Dcimal avec une dcimale,
car par exemple 10 % = 0,1) Null interdit Oui
Inscriptions CotisationOk Type Case cocher de type Oui/Non (cocher la case signifiera alors que la cotisation est rgle).
Notez que pour ce type de champ la proprit Null interdit na pas de sens (puisque un champ Oui/non
est ncessairement gal Oui ou Non)

Nous constatons ainsi que ce simple ajout des cotisations a un impact


sur trois des quatres tables de notre base, soit tout de mme 75 % : il ny
a pas de petites modifications dans une base de donnes, toute modifica-
tion peut avoir des consquences importantes. Mais nous ne nous en
tirons pas si mal...

SCURIT Tester diffrentes versions dune base de donnes relationnelles

Nous aimerions probablement tester nos modifications sur une nouvelle version de la base
en gardant lancienne intacte afin de pouvoir y revenir le cas chant (si jamais par
exemple nous narrivions pas passer correctement nos modifications). Ou mme pour
grer sparment ces deux modles. Avec un tableur ou un traitement de texte, le plus
simple pour conserver des versions antrieures dun fichier est souvent dutiliser loption
Enregistrer sous du menu Fichier. Ce nest pas possible avec Access ou Base, car cette
option nest pas disponible. Il faut alors effectuer un copier/coller de la base dans lexplo-
rateur Windows et travailler sur la copie. Prcisons quil faut alors tre trs vigilant quant
la gestion de ces copies, et quen particulier, ds que les tests sont termins, il faut sup-
primer toute version nayant plus dutilit : le risque de confusion est trop important.

286
12 Effectuer des calculs et des synthses avec une requte
Modifier la base de notre cas pratique
Lajout des trois champs ncessaires la prise en compte des cotisations
va nous obliger :
1 Crer les trois champs dans les trois tables.
2 Mettre jour ou recrer tous les objets dpendants dj crs.
3 Mettre jour les donnes et les enregistrements.
La premire tape consistant ajouter les nouveaux champs ne pose pas de
difficult. Il suffit, pour chacun des trois champs, douvir la table corres-
pondante en mode Cration/bauche et dy ajouter le champ en spcifiant
bien son type et ses proprits. Et bien entendu de fermer chaque table en
nomettant pas de lenregistrer. Les figures 12-1 12-3 (pour Access) et
12-4 12-6 (pour Base) illustrent les modifications apporter. Observez-
les bien pour reproduire les diffrentes proprits de chaque champ.

Figure 121 Le champ Cotisation dans Access Figure 122 Le champ Ristourne dans Access

La structure en chane dAccess et de Base oblige ensuite reprendre


tous les objets qui dpendent des objets modifis. Tous les objets (for-
mulaires, requtes ou tats/rapports), dj crs, qui dpendent des
tables modifies et pour lesquels lajout des champs supplmentaires est
ncessaire, doivent tre mis niveau. Cette mise niveau peut se faire
sous deux formes. Si les objets modifier ne sont que des objets simples,
cest--dire sil ne suffira que de quelques minutes pour les rcrer avec

287
DExcel Access

les nouveaux champs, nous vous conseillons de supprimer les objets


obsoltes et de les recrer : modifier un objet est souvent plus compliqu
que de le recrer (surtout pour un formulaire ou un tat). Dans le cas par
contre o vous avez cr un formulaire ou une requte vritablement
complexe, il pourra tre plus rapide de le modifier en mode Cration/
bauche que de le recrer.

Figure 123 Le champ CotisationOk dans Access Figure 124 Le champ Cotisation dans Base

Figure 125 Le champ Ristourne dans Base Figure 126 Le champ CotisationOk dans Base

288
12 Effectuer des calculs et des synthses avec une requte
En ce qui nous concerne, dans notre cas pratique, tous les formulaires de ATTENTION Le formulaire et son sous-
saisie dans les tables Stagiaires, Inscriptions et Activites ont et crs par formulaire, le formulaire
lassistant. Il est donc conseill de les supprimer purement et simplement SaisieInscriptions
et de les recrer avec les mmes assistants. Les requtes dj cres, elles, Nous avons cr deux formulaires spcifiques
ne ncessitent pas lintgration des nouveaux champs ; il est donc inutile pour la saisie des inscriptions, le formulaire avec
de les modifier. son sous-formulaire (page 215) et le formulaire
SaisieInscriptions bas sur une requte
Au cas o vous souhaiteriez tout de mme modifier manuellement vos (page 248). Ces deux formulaires (ainsi que la
formulaires, voici la procdure suivre pour ajouter un champ un for- requte SaisiesInscriptions) doivent donc soit tre
mulaire existant selon le logiciel que vous utilisez : modifis, soit tre intgralement recrs. Nous
vous conseillons plutt cette dernire solution.
Sous Access 2007 :
1 Ouvrez le formulaire en mode Cration.
2 Ouvrez le volet Liste des champs par Alt + F8.
3 Ajustez ventuellement la dimension de la zone Dtail.
4 Glissez le champ souhait lendroit voulu dans le formulaire
(figure 12-7).
5 Positionnez et dimensionnez finement le contrle.

Figure 127
Lajout du champ Cotisation
dans le formulaire Activites en mode Cration

Sous Access 2003 :


1 Ouvrez le formulaire en mode Cration.
2 Ouvrez le volet Liste des champs avec loutil Ajouter des champs
(figure 12-8).
3 Ajustez ventuellement la dimension de la zone Dtail.
4 Glissez le champ souhait lendroit voulu du formulaire.
5 Positionnez et dimensionnez finement le contrle.

Figure 128
Loutil Liste des champs
dun formulaire en mode Cration

289
DExcel Access

Sous Base :
1 Ouvrez le formulaire en mode bauche.
2 Ouvrez le volet Liste des champs avec loutil Ajouter des champs
(figure 12-9).
3 Glissez le champ souhait lendroit voulu du formulaire.
4 Positionnez et dimensionnez finement le contrle.

Figure 129
Loutil Liste des champs
dun formulaire en mode bauche

Reste enfin, une fois les tables et les formulaires mis niveau, actua-
liser les donnes. En situation relle, avec des tables dj alimentes de
nombreux enregistrements, reprendre un par un chaque enregistrement
de chaque table pour alimenter un champ additionnel peut rapidement
tre fastidieux, beaucoup plus en tout cas que si le champ avait t
intgr ds le dpart au dessin de la base de donnes. Cette simple cons-
tatation confirme quel point ce type de situation est viter.
En ce qui concerne notre cas pratique, saisissez donc dans les champs
Cotisation (table Activites) et Ristourne (table des Stagiaires) les don-
nes de la page 285. Utilisez cet effet soit les formulaires rectifis soit
les tables en mode Contenu. Concernant le champ CotisationOk (de
type Oui/Non) de la table des Inscriptions, la figure 12-10 dtaille les
donnes que nous vous proposons de saisir dans votre base.

Figure 1210
La table Inscriptions en mode Contenu.
Le champ CotisationOk coch signifie
que la cotisation a t rgle.

Nous voici prts reprendre notre apprentissage du fonctionnement des


requtes.

290
12 Effectuer des calculs et des synthses avec une requte
Crer des champs calculs
Les requtes que nous avons tudies jusqu prsent ne font que collecter
linformation (par exemple lister les stagiaires par activits) ou slectionner
une partie de linformation en fonction de critres de recherche sur mesure
(par exemple ne lister que les stagiaires dune activit spcifique).
Les requtes calcul permettent, elles, de crer de linformation, un peu la
manire dExcel ou de Calc qui calculent des cellules partir dautres cel-
lules. Dans une base de facturation en entreprise, une requte calcul per-
mettra par exemple de calculer, partir des quantits livres dun produit
et de son prix unitaire, le montant total de la livraison pour ce produit.
Rien ne distingue une requte calcul dune autre requte, hormis la pr-
sence dans cette requte dun champ calcul soit partir de champs de
tables, soit partir dautres champs calculs. On peut ainsi crer, exacte-
ment comme sous tableur, une chane de calculs en cascade. Par
exemple, partir du montant total de la livraison pour un produit, on
pourra calculer sur la mme requte (ou sur une autre) le montant d par
le client en faisant intervenir le taux de ristourne auquel ce client a droit.
Les chanes de calcul et leurs possibilits sont vritablement trs tendues,
et il est impossible de les lister toutes. Nous avons choisi de vous prsenter :
une requte de calcul arithmtique ;
une requte de manipulation de texte ;
une requte de calcul avec test conditionnel.
Mais, avant de dtailler la cration de ces trois exemples, prenons quel-
ques instants pour savoir comment crer une requte calcul avec un
champ calcul.

Connatre la syntaxe dun champ calcul dans une


requte
Une requte calcul devant contenir un champ calcul se prsente exacte-
ment comme une autre requte. La seule contrainte est quelle doit bien
videmment contenir tous les champs ncessaires au calcul. Par exemple,
la requte devant calculer un champ PrixTotal devra comporter les
champs PrixUnitaire et Quantite.
Pour crer un champ calcul dans une requte, il suffira de saisir dans
une case libre de la premire ligne dune requte en mode Cration/
bauche le nom de ce champ et la formule de calcul selon la syntaxe
NomDuChampCalcule:FormuleDeCalcul.

Par exemple, la figure 12-11 montre la requte permettant de calculer,


partir des champs PrixUnitaire et QuantiteCommandee dune table

291
DExcel Access

Commandes, le champ TotalCommande gal PrixUnitaire


QuantiteCommandee.

Figure 1211
Un exemple de cration de champ calcul

Remarquez sur cette figure 12-11 que les noms de champs participant au
calcul du champ calcul apparaissent entre crochets [ ]. Par ailleurs, sur
la ligne Table, aucun nom de table napparat pour le champ calcul parce
que ce champ nappartient aucune table (il vient juste dtre calcul ici).
Avant daborder la cration dun champ calcul, terminons cette prsen-
tation en prcisant que les oprateurs arithmtiques utiliser seront ceux
que nous utilisons dj sous tableur, savoir +, , * et /.

Effectuer un calcul arithmtique


Une requte de calcul arithmtique permet par exemple de calculer le
montant d par un client ou le montant encore non rgl un fournisseur.
Nous allons illustrer la cration de ce type de requte en calculant dans
notre cas pratique ce que chaque stagiaire nous doit en fonction des acti-
vits auxquelles il est inscrit, de lventuelle ristourne laquelle il a droit
et des rglements quil a dj effectu.
Il va sagir dans cet exercice :
De crer une requte contenant tous les champs ncessaires, en la
nommant par exemple MauvaisPayeurs ou tout autre nom votre
convenance.
Dy insrer le champ calcul CotisationRistournee dterminant le
montant de linscription diminu de lventuelle ristourne. La for-
mule de calcul de ce champ CotisationRistournee sera Cotisation *
(1 Ristourne).
Dy intgrer le critre Non pour le champ CotisationOk pour ny faire
apparatre que les cotisations nayant pas encore t rgles.
La requte calcul doit contenir tous les champs ncessaires au calcul
effectuer, ainsi que tous les champs ncessaires lexploitation de cette
requte. Par exemple, quoi bon calculer ce quon nous doit sans faire
mention de qui nous le doit ? a ne servirait pas grand chose... Dans
notre cas pratique, nous allons crer donc une nouvelle requte Mauvais-
Payeurs avec les champs suivants :

292
12 Effectuer des calculs et des synthses avec une requte
Tableau 122 Liste des champs pour le calcul des cotisations ristournes restant dues

Dans la table... Il faut slectionner... Pour...


Stagiaires NumeroStagiaire, NomStagiaire et PrenomSta- Savoir qui nous doit de largent
giaire
Ristourne Calculer le champ CotisationRistournee
Inscriptions DateInscription Justifier au stagiaire de la somme exige
CotisationOk liminer les cotisations rgles
Activites NomActivite Justifier au stagiaire de la somme exige
Cotisation Justifier au stagiaire de la somme exige

Les syntaxes de formules de calcul avec Access et Base ressemblent en


partie celle de leurs homologues Excel et Calc. Le mode opratoire
gnral est le suivant :
1 Ouvrir la requte calcul en mode Cration/bauche.
2 Se placer en haut de premire colonne disponible.
3 Entrer le nom du nouveau champ suivi du caractre : et de la for-
mule de calcul.
Nous devons ici crer dans notre requte MauvaisPayeurs le champ cal-
cul CotisationRistournee selon la formule Cotisation * (1
Ristourne). Dans notre exemple, il va falloir :
1 Ouvrir la requte MauvaisPayeurs en mode Cration/bauche.
2 Se placer en haut de premire colonne disponible (ici, juste gauche
du champ Cotisation).
3 Entrer le nom du nouveau champ suivi du caractre : et de la for-
mule de calcul. Dans le cas prsent, il faut saisir trs prcisment, avec
exactement les mmes caractres et sans les espaces (figure 12-12) :
CotisationRistournee:Cotisation*(1-Ristourne).

Figure 1212
La saisie du champ calcul
Access : le nom du champ suivi
de : et de la formule
de calcul, le tout sans es