Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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.
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.
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.
VII
DExcel Access
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
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.
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
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...
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.
5
DExcel Access
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 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).
Les filtres offrent bien dautres possibilits, nous les tudierons en dtail
pages 71 et suivantes.
7
DExcel Access
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 !
9
DExcel Access
10
1 Premiers pas vers les bases de donnes
Figure 111
Une structure dorganisation traditionnelle
(une feuille par priode, un classeur par reprsentant)
Figure 112
La feuille de calcul (Zone en colonne et Produit en ligne)
correspondant lorganisation feuille-classeur de la figure 111
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 ?
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.
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.
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
13
DExcel Access
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
Dfinitions pralables
Les bases de donnes utilisent un vocabulaire simple mais spcifique. Il
est ncessaire de le matriser. Voyons-en ici les principaux termes.
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
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.
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
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.
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.
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.
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.
Figure 24
La bote de dialogue Validation des donnes.
25
DExcel Access
Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel) (suite)
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)
27
DExcel Access
Figure 27
Une formule comme
rgle de validation des donnes
ALLER PLUS LOIN Crer une rgle de validation dans une simple feuille de calcul
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.
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.
29
DExcel Access
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
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.
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
Figure 213
La mise en forme conditionnelle
version Excel 2007
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.
Figure 214
La bote de dialogue Format conditionnel gal
Figure 215
Les enregistrements dHlne
sont signals par un format spcifique.
33
DExcel Access
Figure 217
Le top ten des ventes.
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
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
37
DExcel Access
Figure 220
Le format conditionnel la mode Excel 2003
Figure 221
Deux conditions notre format conditionnel
Excel 2003
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.
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.).
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).
43
DExcel Access
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.
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 !
47
DExcel Access
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
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.
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.
51
DExcel Access
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.
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.
Figure 321
Les diffrentes options des Filtres textuels
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
Figure 322
Utilisation des caractres gnriques dans un filtre Contient
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.
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.
55
DExcel Access
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.
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 .
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
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).
61
DExcel Access
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.
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().
63
DExcel Access
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
Figure 411
Le dtail pour Pierre, le total pour les autres
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
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
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
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
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.
71
DExcel Access
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
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.
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.
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
Figure 426
Le TCD de la figure 422,
filtr uniquement pour les dames
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.
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.
77
DExcel Access
Figure 429
Dtail dun lment du TCD sur une nouvelle
feuille, ici les ventes de cordes pour le Sud.
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
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
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.
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).
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
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.
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.
85
DExcel Access
Figure 440
Le GCD illustrant le montant maximum
des ventes de Jean et de Pierre pour le Sud.
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
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
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.
Figure 51
Lajout de la colonne Adresse oblige resaisir
indfiniment ladresse de chaque reprsentant.
91
DExcel Access
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...
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.
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
BASE EXEMPLE ACCESS 2007 ET 2003 La base de donnes exemple Northwind/Les comptoirs
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.
97
DExcel Access
Figure 58
Le champ Reprsentant prsente un doublon :
Jean est rpt deux fois.
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.
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.
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 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.
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).
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
Figure 511
La structure modulaire dun SGBDR
et lenchanement des diffrents types
dobjets (tables, formulaires, requtes
et tats/rapports).
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.
Figure 512
Le chteau de cartes Access et Base
103
DExcel Access
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
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.
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.
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.
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
Sinscrivent Encadres
Figure 61 par
Les stagiaires sincrivent
des activits encadres par des guides
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.
111
DExcel Access
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
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.
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
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 !).
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.
Figure 65
Le schma thorique complt
des nombres cl
115
DExcel Access
Tableau 61 Significations des nombres cls dans le cas pratique dcole dalpinisme
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
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.
117
DExcel Access
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.
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.
119
DExcel Access
120
6 La modlisation dune base de donnes relationnelle
Figure 612
Schma gnral de la mthode
de travail pour btir un SGBDR.
121
DExcel Access
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.
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
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
126
7 Oprations essentielles sur une base de donnes
Figure 71 La cration dune base de donnes Access 2007 vierge
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.
127
DExcel Access
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.
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.
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).
Figure 77
La fentre qui permet dautoriser louverture
de tout fichier prsent dans le dossier
Mes documents sans avoir de message.
131
DExcel Access
Figure 78
Lcran daccueil
dune base de donnes vierge
sous Access 2007
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.
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.
133
DExcel Access
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
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.
135
DExcel Access
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
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 !
137
DExcel Access
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)
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.
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.
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) :
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))
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
Figure 728
La cl dans la marge indique que le champ NumeroStagiaire
est cl primaire de la table Stagiaires.
143
DExcel Access
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.
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.
145
DExcel Access
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.
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
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.
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)
148
7 Oprations essentielles sur une base de donnes
Figure 733
Le choix du masque de saisie ddi
un numro de tlphone
149
DExcel Access
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.
Figure 735
La feuille de calcul peut tre importe
statiquement (option choisie ici)
ou dynamiquement
151
DExcel Access
Figure 736
Les diffrentes feuilles et plages
o sont prsentes des donnes dans
le classeur source apparaissent ici
Figure 737
Bien vrifier quAccess comprend
que la premire ligne du classeur source
contient les noms de champ
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 )
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.
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.
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).
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).
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
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.
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
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
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
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.
Figure 747
Le bouton de fermeture de la fentre de lobjet
(Access 2003)
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)
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
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)
BureauxGuides
BureauGuides
Figure 83
La contrainte due au bureau des guides
impliquerait la cration dune table
supplmentaire
165
DExcel Access
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 (*)
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
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
Figure 85
La table Activites en mode Cration sous
Access 2003. Remarquez que le champ
NumeroGuide est de type Numrique.
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...
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
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.
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.
171
DExcel Access
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.
Figure 813
Ne rien modifier dans la dernire tape
de lassistant Liste de choix.
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
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.
175
DExcel Access
Figure 817
Louverture de lassistant Liste de choix
pour le champ NumeroGuide. Remarquez
le champ NomActivite, cl primaire
de cette table Activites.
Figure 818
Loption entre une liste droulante
par rapport une table (par dfaut)
ou par rapport une liste manuelle
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
Figure 821
La liste de choix sera trie
selon le Numro de guide.
Figure 822
Il est conseill de dcocher la case
Colonne cl cache (recommand).
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.
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.
181
DExcel Access
Figure 829
Le bouton Relations dAccess 2007
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.
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.
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
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.
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.
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.
Figure 841
Table sans cl primaire : danger !
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.
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
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.
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
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
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 !
197
DExcel Access
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
Figure 95
Lancer lassistant Formulaire Access 2003
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
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
Figure 99
Le choix de la prsentation du formulaire
Access (ici, Colonne simple)
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
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.
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.
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
Figure 915
Le formulaire Stagiaires
en mode Cration sous Access 2007
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.
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).
207
DExcel Access
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).
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.
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.
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.
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).
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.
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
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)
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.
215
DExcel Access
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 937
Des formulaires gigognes permettant
dagir sur plusieurs tables simultanment
217
DExcel Access
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
Figure 940
Le choix de lobjet ouvrir
sur un formulaire menu
219
DExcel Access
Figure 941
Le formulaire aura accs
tous les enregistrements de la table.
Figure 942
Bien penser modifier le nom du bouton
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.
Figure 944
Le formulaire Menu souvrira
automatiquement louverture de la base.
221
DExcel Access
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.
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).
225
DExcel Access
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.
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.
Figure 952
Le message avertissant quune suppression
denregistrement est dfinitive
Figure 953
Il est impossible de supprimer un enregistre-
ment dune table matre ayant des enregistre-
ments dpendants dans la table esclave.
227
DExcel Access
Figure 954
Vous tes invit saisir une valeur
pour ce champ Null Interdit.
Figure 955
Le format de lentre ne correspond pas
au format attendu pour ce champ.
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.
Figure 959 Le message Access 2003 spcifiant quune valeur est requise
pour le champ PrenomGuide de la table des Guides (remarquez le franglais).
229
DExcel Access
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.
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 !
235
DExcel Access
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.
Une requte simple se cre sous Access avec lassistant ddi (page 238)
et sous Base directement en mode bauche (page 241).
237
DExcel Access
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.
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 !
239
DExcel Access
Figure 104
Lalternative entre requte dtaille
ou de synthse
Figure 105
Ne jamais oublier de modifier
le nom de la requte
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
241
DExcel Access
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.
Figure 109
La slection dun champ dune requte
en mode bauche par liste de choix
243
DExcel Access
Figure 1010
Tous les champs de la requte
StagiairesparActivites en mode bauche
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.
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
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
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
247
DExcel Access
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.
Figure 1017
La requte SaisieInscriptions
en mode Cration.
249
DExcel Access
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
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
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
252
10 Exploiter les donnes avec une requte simple
Tableau 101 tapes de cration de requte en mode Cration/bauche
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.
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.
257
DExcel Access
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
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
Figure 115
La saisie dun paramtre dune requte
259
DExcel Access
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.
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.
Figure 119 Les critres de chaque champ sont rpts sur chaque 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)
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...
263
DExcel Access
Figure 1112
Louverture de lassistant Requte
de non-correspondance sous Access 2003
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
Figure 1116
Tous les champs de la table source
Guides sont slectionns.
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
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.
267
DExcel Access
Figure 1121
Le paramtrage de la requte de non-corres-
pondance en mode Cration
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))
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
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.
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...
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.
Figure 1124
Le stagiaire n1 est inscrit quatre activits,
les n2 et n3 deux activits
et le n4 une seule.
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
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...
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 .
275
DExcel Access
Figure 1131
La table des Stagiaires napparat pas
dans les tables disponibles pour la requte.
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
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.
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.
279
DExcel Access
Tableau 114 tapes pour la cration dune requte Rechercher les doublons (Access)
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
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).
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
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
287
DExcel Access
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
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.
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.
291
DExcel Access
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 /.
292
12 Effectuer des calculs et des synthses avec une requte
Tableau 122 Liste des champs pour le calcul des cotisations ristournes restant dues
Figure 1212
La saisie du champ calcul
Access : le nom du champ suivi
de : et de la formule
de calcul, le tout sans espaces
293
DExcel Access
Il suffit ensuite de cliquer sur une case vide de la requte, par exemple
juste en dessous. La formule est alors valide et modifie : des espaces
sont insrs et les noms de champs sont mis entre crochets, comme sur la
figure 12-13. Le code dorigine devient CotisationRistournee:
[Cotisation]*(1-[Ristourne]).
Figure 1213 Laspect dfinitif dun champ calcul Access, avec les noms de champs entre crochets
Figure 1214
Le champ CotisationRistournee
montre bien une cotisation
allge de 10 % pour
Josette Duchemin.
Depuis le dbut de notre tude des SGBDR, nous avons scrupuleusement respect la rgle
dor : des noms de champs sans espaces. Nous en voyons la justification lors de la saisie
des formules.
Dans notre exercice, la syntaxe relle dAccess exige des crochets [ ] autour des noms de
champs. Ce nest que parce que nous avons utilis des noms de champs sans espaces que
nous avons pu nous dispenser de saisir ces crochets et quAccess les a rajout lui-mme.
En dautres termes, si le champ Ristourne stait appel par exemple Taux de ristourne
(avec des espaces dans le nom de champ), il aurait fallu saisir la formule comme ceci, avec
les crochets :
CotisationRistournee:[Cotisation]*(1-[Taux de ristourne])
Crer des noms de champs sans espaces simplifie donc sensiblement la saisie des for-
mules de champs calculs !
294
12 Effectuer des calculs et des synthses avec une requte
BASE La cration dun champ calcul
Le principe de base est le mme que pour Access, avec simplement Le nom du champ calcul est saisi non pas sur la ligne Champ
des diffrences de forme. La figure 12-16 illustre le rsultat de la mais sur la ligne Alias.
saisie du champ calcul CotisationRistournee selon les normes Base : Notez galement quil nest pas besoin de saisir les " des formules pas
Les noms de champs sont encadrs par des guillemets doubles " plus que les espaces, Base les rajoute tout seul.
et non par des crochets [ ].
Figure 1215 La syntaxe dun champ calcul Base : les noms de champ entre , le nom du champ calcul sur la ligne Alias
Figure 1216
Les proprits dun champ calcul (ici, format sans dcimale)
295
DExcel Access
Figure 1217
Ce message qui apparat lorsque la requte est excute
signifie que le champ Ristourne est inconnu. Normal,
on a oubli le s de Ristourne dans la formule.
SMANTIQUE Champ Oui/Non Reste enfin, dans notre cas pratique, ne slectionner que les cotisations
sous Access et Base
impayes, car la requte actuelle liste toutes les cotisations, payes ou
Sous Access, le critre Oui slectionne les enregis- non. Il suffit de modifier la requte MauvaisPayeurs en spcifiant, pour
trements pour lesquels le champ Oui/Non corres-
pondant est Oui (case coche), et Non linverse.
le champ CotisationOk, le critre Non pour Access (figure 12-18) et 0
Sous Base, le critre 1 slectionne les enregistre- pour Base (figure 12-19). La figure 12-20 donne le rsultat de la requte
ments pour lesquels le champ Oui/Non correspon- modifie avec uniquement les cotisations dues ce jour. Nous navons
dant est Oui (case coche), et 0 linverse. plus qu prendre notre tlphone !
Figure 1218 Access : le critre Non filtre un champ Oui/Non la valeur Non (case non coche).
Figure 1219 Base : le critre 0 filtre un champ Oui/Non la valeur Non (case non coche).
Figure 1220 La requte des mauvais payeurs termine (sous Base) : seules les cotisations ristournes encore dues apparaissent.
296
12 Effectuer des calculs et des synthses avec une requte
Manipuler les chanes de caractres avec Access
Ces fonctions ne sont disponibles que sous Access.
Access dispose, un peu la manire dExcel, de fonctions de manipula-
tion de texte, par exemple comme nous allons lexprimenter pour juxta-
poser (concatner) des chanes de caractres ou encore extraire les X
caractres de gauche (ou de droite) dun champ.
La concatnation consiste juxtaposer des champs alphabtiques pour
en crer dautres, par exemple pour transformer les deux libells ind-
pendants Thierry et Capron en Thierry Capron . Cette mani-
pulation est particulirement utile pour simplifier la production de
listings et de mailings de grande qualit.
Pour raliser une concatnation de champs de type Texte, il suffit de
crer une requte contenant ces champs et dy crer un champ calcul.
Les oprateurs utiliser sont :
& : pour concatner deux champs ou deux chanes de caractres
manuelles;
"chane de caractres" : mettre entre guillemets une chane de
caractres manuelle.
Voici quelques exemples de formules de calcul de champ concatn
partir des champs Prenom et Nom (dans ces exemples, le caractre _
reprsente un espace) :
[Prenom]&[Nom] : cre partir de Thierry et de Capron la
chane ThierryCapron , sans espace. Pas trs lisible...
[Prenom]&"_"&[Nom] : lespace entre les deux " permet de dcoller
Prenom et Nom pour obtenir Thierry_Capron . Nickel !
"Prnom_:_"&[Prenom]&"_Nom_:_"&[nom] : permet dobtenir une pr-
sentation administrative du style
Prnom_:_Thierry_Nom_:_Capron
Dans la figure 12-21, reprsentant une requte en mode Cration, le
champ EtatCivil regroupe dans notre cas pratique noms et prnoms des
stagiaires selon la formule NomStagiaire]&",_"[PrenomStagiaire].
Figure 1221
La concatnation
de deux champs de type Texte
297
DExcel Access
Figure 1225
Louverture du gnrateur dexpression
Access 2003
298
12 Effectuer des calculs et des synthses avec une requte
Cette fonction sert renvoyer deux rsultats diffrents selon la valeur
dun test. Appliquons-la une socit dont les commerciaux sont com-
missionns au chiffre daffaire (CA). Le systme est le suivant : pour un
CA strictement infrieur 25 000 , la commission est de 1 % ; sinon,
partir de ce seuil, elle passe 5 % sur lensemble du CA. Pour rsoudre
ce type de problme avec une fonction VraiFaux() dans une requte en
mode Cration (figure 12-26), il faut crer un champ calcul avec le code
Commission:VraiFaux([CA]<25000;[CA]*0,01;[CA]*0,05), dans lequel :
Commission reprsente le nom du champ calcul.
SYNTAXE Les % sont entrs en dcimales
VraiFaux(...) est la formule de calcul.
Dans la formule de la figure 12-25, 1 % et 5 %
CA<25000 est le test du CA par rapport au seuil de 25 000 . sont respectivement saisis en valeur dcimale, res-
[CA]*0,01 calcule la commission 1 % puisque le CA est infrieur pectivement 0,01 et 0,05. Sinon, cela ne fonc-
25 000 (car nous sommes dans la ValeurSiVrai du test). tionne pas.
Figure 1226
Le dtail du code dun champ calcul avec la fonction VraiFaux()
Dans la formule de la figure 12-26, les seuils et les pourcentages sont entrs comme des
valeurs numriques. Le jour o les conditions de commissionnement changent, il faudra
changer la formule, sauf si, dans la formule, on fait directement appel une table avec les Figure 1227
champs spcifiques Seuil (gal 25 000 ), TauxSiInferieur (gal 1 %) et TauxSiSupe- La commission est bien calcule
rieur (gal 5 %) en entrant le code Commission:VraiFaux([CA]<[Seuil]; selon les rgles fixes
[CA]*[TauxSiInferieur];[CA]*[TauxSiSuperieur]). Il suffira alors de
changer la valeur des champs pour mettre jour automatiquement tous les calculs qui en
dpendent, ce qui est beaucoup plus logique et rapide.
Dans notre cas pratique, nous allons exprimenter cette fonction Vrai-
Faux() pour rsoudre dune autre manire un problme dont nous avons
dj trouv une solution. Vous vous rappelez certainement, dans le calcul
des cotisations, que certains stagiaires ( Josette Duchemin en loccur-
rence) bnficient de 10 % de rduction sur leur cotisation.
Nous avons rsolu cet exercice en crant un champ Ristourne dans la
table des Stagiaires et en crant un champ calcul gal Cotisation * (1
Ristourne). La fonction VraiFaux() offre une alternative cette faon
299
DExcel Access
Figure 1228
Une application de la fonction
VraiFaux() pour calculer une ristourne
Il suffit cet effet de crer une nouvelle requte en mode Cration (figure
12-28) avec les champs NumeroStagiaire, NomStagiaire, PrenomStagiaire,
DateInscription, NomActivite, Cotisation et dy ajouter le champ calcul
CotisRistournee selon le code spcifi. Remarquez le nom du champ utilis
pour viter toute confusion avec le champ CotisationRistournee dj calcul,
page 294. La figure 12-29 montre les rsultats de cette requte qui sont bien
videmment conformes celles de la page page 294.
Figure 1229
Seule Duchemin Josette
bnficie dune ristourne
300
12 Effectuer des calculs et des synthses avec une requte
Raliser des synthses avec une requte
Une requte de synthse permet, comme son nom lindique, deffectuer
ALLER PLUS LOIN AVEC ACCESS
des synthses sur des donnes numriques, pour calculer, par exemple, le Crer un tat de totalisation
montant total dune facture, le CA global dun client, les recettes gn-
Access (et non Base) propose galement de crer
res par la location dun DVD particulier, le nombre de participants un tat de totalisation (par facture, client, DVD ou
une sortie du comit dentreprise. Ou pourquoi pas encore le total des stagiaire) pour rsoudre ce type dexercice.
cotisations encore non payes dun stagiaire de notre cole dalpinisme : Reportez-vous page 319.
cest lexercice que nous allons rsoudre ensemble.
Nous avons dj cr la requte des MauvaisPayeurs qui liste le dtail des
cotisations non rgles. Nous allons lutiliser comme source de la requte
qui va en calculer le total par stagiaire. La requte de synthse par stagiaire
des cotisations non rgles va donc contenir les champs NumeroStagiaire,
NomStagiaire, PrenomStagiaire, Ristourne et CotisationRistournee.
Lutilisation de la requte MauvaisPayeurs comme source de cette nou-
velle requte appelle des remarques importantes :
On peut rutiliser une requte comme source dune autre requte, en
crant ainsi des chanes de requtes dpendant les unes des autres.
On peut utiliser un champ calcul dans une requte dans une autre
requte sans avoir besoin de rappeler les champs participants aux cal-
culs. Dans notre exemple, on peut utiliser CotisationRistournee de la
requte des MauvaisPayeurs sans avoir rappeler les champs source
Cotisation et Ristourne.
La requte dpendant de la requte source bnficie des critres para-
mtrs dans la requte source. Dans notre exemple, la requte source
MauvaisPayeurs slectionne dj les cotisations non payes (champ
CotisationOk gal Non). La requte en dpendant ne contiendra
galement que les cotisations non payes.
Selon un schma maintenant bien tabli, nous crerons cette requte
avec lassistant Access. Nous ltudierons ensuite en mode Cration/
bauche, notamment lattention des utilisateurs de Base qui ne dispose
pas dun assistant vritablement pratique.
301
DExcel Access
Figure 1230
Slectionner loption Synthse et cliquer
sur le bouton Options de synthse (sinon
les options de synthse ne seront pas dfinies
et aucune totalisation ne sera effectue)
OBSERVEZ
Les diffrentes options de synthse Le paramtrage des options de synthse est trs simple : il suffit de
Access propose de calculer Somme, Minimum, dterminer lopration effectuer ainsi que le champ auquel elle sera
Maximum ou Moyenne pour chaque champ num- applique. Cochons ici Somme dans la colonne du champ CotisationRis-
rique. Il est possible galement de compter le tournee, figure 12-31. Validons notre choix par Ok, la bote de dialogue
nombre denregistrements.
de la figure 12-30 saffiche nouveau.
Figure 1231
Le choix des options de synthse
302
12 Effectuer des calculs et des synthses avec une requte
La figure 12-32 illustre cette requte en mode Contenu : nous obtenons
clairement le total des cotisations dues par stagiaire, sans en afficher le dtail.
Figure 1232
La requte de synthse
des mauvais payeurs : le total
par stagiaire, sans le dtail.
Figure 1233 Loutil et la ligne Oprations dans une requte Synthse en mode Cration
303
DExcel Access
Il se trouve dans la barre doutils (figure 12-34), juste gauche de loutil Ajouter une table.
Nous nous apercevons ainsi que nous aurions trs bien pu crer cette
requte en mode Cration. Il aurait suffi dy insrer tous les champs
ncessaires de la requte source, de cliquer sur loutil (pour afficher la
ligne Opration) et de slectionner les paramtres de la figure 1233.
304
12 Effectuer des calculs et des synthses avec une requte
Cependant, nous ne pouvons pas conclure leur tude sans voquer quel-
ques points complmentaires leur sujet.
Figure 1236
En haut, la requte Ajout extrait les clients
anciens pour les archiver et la requte
Suppression limine ceux de Gorgie.
En bas, il ne reste que deux tables, les clients
rcents et les clients anciens ; les clients
gorgiens sont dfinitivement limins.
305
DExcel Access
Figure 1237
Des champs calculs un peu partout,
cest la pagaille
306
12 Effectuer des calculs et des synthses avec une requte
Figure 1238
Une seule requte centralisant les
champs calculs, cest beaucoup plus clair
307
chapitre 13
diter tables et requtes avec
des tats/rapports professionnels
SOMMAIRE
B Crer un tat/rapport
en trente secondes
Ce chapitre conclut notre tude des bases de donnes
relationnelles par les tats et les rapports, objets indispensables B Crer un tat de synthse
avec Access
pour visualiser, diter et imprimer de faon professionnelle
B Modifier un tat existant
tables et requtes. avec Access
MOTS-CLS
B Assistant cration dtat/rapport
B Niveaux de regroupement
B tat de synthse et options
de synthse
B Mode Cration dun tat
B Zones en-tte/pied dtat,
en-tte/pied de page,
en-tte/pied de groupe, dtail
B Contrle et tiquette de
contrle : cration, suppression,
modification, redimensionne-
ment, dplacement
B Proprit dun contrle
B Rapport statique et dynamique
DExcel Access
Les requtes que nous venons dapprendre crer sont puissantes et perfor-
mantes, certes. Mais elles prsentent un inconvnient majeur : leur lisibilit
est trs discutable. Prenons lexemple de notre requte StagiairesParActivi-
teParGuide de la figure 13-1 : il nest pas trs facile de la lire, surtout si on
limagine avec cinq cent enregistrements... Et cette abscence de lisibilit se
retrouve galement pour toute table en mode Cration.
Cest l quinterviennent les tats/rapports. Ils permettent de crer, partir
de tables ou de requtes, de superbes tats de prsentation laspect pro-
fessionnel et parfaitement lisibles, destins la visualisation sur cran ou
limpression. La figure 13-2 illustre un tat cr en trente secondes partir
de la requte de la figure 13-1. Apprciez la diffrence...
Nous apprendrons dans ce chapitre crer rapidement un tat avec
lassistant. Nous dcouvrirons les techniques pour agrmenter sa prsen-
tation. Enfin, nous utiliserons lassistant tat Access pour crer un tat
de synthse, avec des totalisations de donnes numriques.
Figure 131
Une requte nest pas trs lisible
Figure 132
Un tat/rapport est bien plus lisible
que sa requte source
310
13 diter tables et requtes avec des tats/rapports professionnels
Crer un tat/rapport en trente secondes
Access et Base proposent dexcellents assistants de cration dtats (de
rapports) qui fournissent trs rapidement des ditions de requtes ou de
tables. Nous allons illustrer leur fonctionnement au travers de la cration
de ltat bas sur la requte StagiairesParActiviteParGuide pour obtenir
un affichage comparable celui de la figure 13-2.
Pour lancer cet assistant cration dtat :
Sous Access 2007 Cliquez sur loutil Assistant tat dans longlet
Crer, groupe tat.
Sous Access 2003 Cliquez dans le volet de navigation sur la famille
tat, puis double-cliquez sur loutil Crer un tat laide de lassistant.
Sous Base Cliquez dans le volet de navigation sur la famille Rap-
port, puis sur loutil Utiliser lassistant cration de rapport.
Nous sommes maintenant sous le contrle de lassistant. Il fonctionne
selon le schma habituel dun assistant : une succession dtapes vont
nous guider dans la cration de ltat souhait. Il va nous suffire de
rpondre attentivement aux questions poses.
Les droulements des deux assistants Access et Base (page 316) diffrent
lgrement. Nous avons donc choisi de les prsenter sparment.
Figure 133
Tous les champs de la requte
StagiairesParActivitesParGuides
sont slectionns pour cet tat.
311
DExcel Access
Figure 134
Lassistant Cration dtat Access comprend
la structure de la requte source et propose
automatiquement des niveaux
de regroupement adapts.
Figure 135
Lassistant Access offre la possibilit dajouter
de nouveaux niveaux de regroupements.
312
13 diter tables et requtes avec des tats/rapports professionnels
Lcran suivant propose de dfinir un ordre de tri pour le listage des
enregistrements de notre tat qui vont apparatre dans la section dtail.
Choisir un tri par NumeroStagiaire, cl primaire de la table Stagiaires,
permettra de lister les stagiaires dune mme activit dans lordre de leur
numro dinscription. Cliquons sur Suivant.
Figure 136
Les stagiaires participant une activit
encadre par un guide seront tris
par numro croissant.
Quand un tat est paramtr avec des niveaux de regroupement, les valeurs des diffrents
niveaux de regroupement vont seffectuer en ordre croissant selon le champ utilis comme
niveau de regroupement. Par exemple, dans notre tat, les guides, objet du premier
niveau de regroupement, vont tre tris par ordre croissant de NumeroGuide, puisque ce
champ a t utilis comme champ de regroupement. Bien entendu, ce paramtrage par
dfaut est modifiable en ouvrant ltat en mode Cration.
Le paramtrage du tri en cours dassistant cration dtat (dont nous parlons ici) ne con-
cerne que les enregistrements qui figureront dans la section Dtail de ltat (ici, les don-
nes des Stagiaires, dernire table ayant t slectionne dans la requte source).
Concrtement, dans notre exemple dtat, selon le paramtrage de regroupement et de
tri que nous venons dappliquer :
Les Guides seront tris par ordre de NumeroGuide croissant.
Les activits dun guide seront classes par ordre alphabtique croissant sur NomActivite.
Enfin, les stagiaires participant une activit seront classs par ordre de NumeroStagiaire.
313
DExcel Access
Figure 137
Les choix idaux dans la prsentation
dun tat dans la plupart des cas
ACCESS 2003 Choix du style dtat Il sagit ensuite de choisir le style du futur tat. Difficile dapporter des
Access 2003 offre sensiblement moins de choix de conseils ce stade, chaque prsentation particulire tant plus ou moins
style dtat. Ce nest pas forcment rdhibitoire... adapte ses gots propres, au contexte de lentreprise (stricte ou dcon-
tract) ou encore au type de donnes prsenter. Testez les diffrentes
possibilits puis cliquez sur Suivant.
ACCESS 2007 Mode tat Le dernier cran de lassistant (figure 13-8) sert nommer ltat et
ou Aperu avant impression
choisir son mode douverture (pour le modifier ou pour le visualiser).
Access 2007 ouvre par dfaut un tat en mode Pour le premier point, lidal est de donner ltat le nom de la requte
tat, mode qui nest pas ncessairement le plus
dont il dpend : il sera ainsi beaucoup plus facile didentifier la requte
pratique. Il est plutt conseill de demander son
affichage en mode Aperu avant impression, qui source dun tat particulier quand il sagira dy apporter des modifica-
donne une vision beaucoup plus synthtique de tions. Enfin, puisque nous sommes curieux den voir tout de suite le
ltat. cet effet, par un clic droit sur un tat du rsultat, choisissons loption Aperu de ltat comme sur la figure 13-8.
volet de navigation, accdez loption Aperu Il suffit maintenant de cliquer sur Terminer, et cen est fini de la cration
avant impression.
de notre tat.
Figure 138
Il est trs important de renommer ltat
dun nom efficace, par exemple
du nom de la requte source
314
13 diter tables et requtes avec des tats/rapports professionnels
Les figures 13-9 (Access 2007) et 13-10 (Access 2003) montrent notre
tat en mode Aperu avant impression. Il suffit de cliquer sur ltat pour
zoomer/dzoomer. Lindicateur de pages en bas dcran permet de navi-
guer de page en page (dans cet exemple, ltat ne comporte quune page
et les boutons de changement de pages sont dsactivs).
Figure 139
Ltat directement issu de lassistant
cration dtat (Access 2007)
Figure 1310
Aperu avant impression
de ltat Access 2003
315
DExcel Access
Figure 1311
La modification des tiquettes
dun rapport avec lassistant Base
316
13 diter tables et requtes avec des tats/rapports professionnels
Figure 1312
Le paramtrage des niveaux de regroupement
nest pas automatique pour un rapport Base.
Figure 1313
Les paramtres classiques
de composition dun rapport Base
317
DExcel Access
que peu dintrt, Base ne prenant alors en compte que les donnes pr-
sentes au moment de la cration du rapport, sans prendre en compte les
modifications ultrieures : prfrer donc sans hsiter loption Rapport
dynamique. Enfin, nous avons le choix de visualiser le rapport immdia-
tement ou de louvrir en mode bauche. Comme nous sommes curieux
du rsultat, choisissons loption Crer un rapport maintenant.
Figure 1314
La cration finale du rapport
avec lassistant Base
318
13 diter tables et requtes avec des tats/rapports professionnels
Sentraner la cration dtats/rapports
Vous pouvez parfaitement vous familiariser la cration dtats et de
TRS PROCHES Les tats StagiairesParActivite
rapports avec toutes les tables et les requtes de notre cas pratique. Les et StagiairesParActiviteParGuide
figures 13-16 et 13-17 reprsentent par exemple et respectivement les
Ces deux tats sont trs semblables, chaque acti-
tats bass sur les requtes ActivitesParStagiaire et StagiairesParActivite. vit tant encadre par un guide. Le second
La seule remarque faire sur leur cration concerne lunique niveau de regroupe le premier en fonction des activits enca-
regroupement ncessaire pour chacun de ces tats (par Stagiaire pour le dres par le guide.
premier, par Activite pour le second).
319
DExcel Access
Figure 1318 La requte des mauvais payeurs ne fournit pas le montant d par chacun (elle nest dailleurs mme pas trie par stagiaire).
320
13 diter tables et requtes avec des tats/rapports professionnels
Dterminer le niveau de regroupement
Cette tape de fixation dun niveau de regroupement est bien videmment
essentielle, puisquelle va dterminer la structure des totaux et sous totaux
de notre tat. Il faut cette tape ajouter autant de niveaux de regroupe-
ment que de niveaux de sous-totaux demands. Puisque notre exercice ne
comporte quun niveau de sous-total par Stagiaire, demandons donc
cette tape un regroupement par NumeroStagiaire en cliquant sur le
champ correspondant puis sur le bouton >, figures 13-19 et 13-20.
Figure 1319
Aucun niveau de regroupement nest demand. Cliquer
sur la flche > rajoutera un regroupement selon le champ
slectionn gauche, ici NumeroStagiaire, figure 13-20.
Figure 1320
Nous venons de cliquer sur la flche > de la figure 13-19.
Le champ alors slectionn gauche est maintenant utilis
comme niveau de regroupement.
321
DExcel Access
322
13 diter tables et requtes avec des tats/rapports professionnels
Figure 1322
Le tri par NomActivite et le bouton Options de synthse
Concernant les calculs de synthse de notre cas pratique, nos totaux par
stagiaire, il faut faire appeler la bote de dialogue spcifique ; cliquons
cet effet sur le bouton Options de synthse... pour faire apparatre la bote
de dialogue de la figure 13-23. Elle nous propose de choisir, parmi les
oprations disponibles, celle que nous dsirons appliquer aux champs
numriques quelle a dtect dans la requte source. Remarquez gale-
ment la possibilit de nafficher que ce calcul ou encore celle dditer en
prime les % du total. Contentons-nous, en ce qui nous concerne, de
reproduire laffichage de la figure 13-23.
Figure 1323
Une totalisation par Somme est demande pour ldition du dtail
et de la synthse du champ CotisationRistourne.
323
DExcel Access
324
13 diter tables et requtes avec des tats/rapports professionnels
Figure 1325 Les principaux dfauts dun tat gnr automatiquement par lassistant :
titre peu lisible, parpillement des donnes, alignements discutables, lignes de totalisation formates trangement
325
DExcel Access
Figure 1326 La structure des diffrentes zones dun tat en mode Cration avec Access
326
13 diter tables et requtes avec des tats/rapports professionnels
Dans chacune de ces zones, sont placs des contrles, composs en
gnral dune tiquette gauche et du contrle proprement dit droite.
MINIMUM Au moins cinq zones dans un tat
Le principe gnral des modifications dun tat tat rside dans :
Tout tat comporte au moins cinq zones par dfaut
la modification du contenu des contrles ; (en tte dtat, en-tte de page, dtail, pied de
le dplacement des contrles ; page et pied dtat) et autant de couples en tte
la modification des proprits des contrles ; de groupe et pied de groupe que de niveaux de
regroupement demands.
la modification du style des contrles ;
la suppression des contrles.
RAPPEL Si vous faites des btises en
Manipuler les contrles modifiant un tat
Afin damliorer la prsentation dun tat, ses contrles peuvent tre Il nest pas facile darriver du premier coup modi-
fier un tat sans faire de mauvaise manipulation. Il
slectionns, modifis, dplacs, redimensionns et supprims. est ncessaire de se faire la main... Considrant la
rapidit avec laquelle un tat est gnr par
Slectionner un contrle lassistant, il sera souvent plus facile de supprimer
un tat mal modifi et de recommencer intgrale-
Toute les oprations que nous allons effectuer ncessitent de slectionner ment que dessayer de rectifier ltat existant.
des contrles concerns. Ces manipulations sont les mmes que celles
que nous avons dj vues pour la modification des formulaires, page 207.
Lessentiel savoir ce sujet est rsum ci-dessous :
Pour slectionner le contrle dans sa totalit (contrle et tiquette), SYNTAXE Attention la modification
du contenu dun contrle
cliquez sur le contrle.
Pour ne slectionner que le contrle (sans son tiquette), slectionnez Un tiquette nest quune zone de texte libre, on
peut donc modifier son contenu volont.
le contrle avec son tiquette comme ci-dessus, et cliquez ensuite sur Le contrle en lui-mme doit par contre corres-
le contrle. pondre trs exactement au nom dun champ ou
Pour ne slectionner que son tiquette, cliquez sur ltiquette. une fonction Access. Il ne faut donc pas le
modifier, sauf dans des cas trs particuliers. Par
Il est possible de slectionner plusieurs contrles la fois en utilisant la exemple vous venez de terminer la cration dun
touche Shift ou en traant un cadre de slection autour des contrles. tat particulirement complexe et vous vous
apercevez que par erreur vous y avez insr le
Modifier une tiquette ou un contrle champ PrenomStagiaire et non NomStagiaire.
Plutt que de tout recommencer zro, vous
On peut modifier le contenu ou lapparence de ltiquette ou du contrle. aurez intrt modifier le contrle en lui mme
en saisissant NomStagiaire en lieu et place de
Pour modifier le contenu dune tiquette, il faut la slectionner et cliquer PrenomStagiaire. Mais cest un cas excep-
une deuxime fois sur ltiquette pour entrer dans son contenu. Il est tionnel, rptons-le.
alors possible de modifier le texte de ltiquette ; il suffit ensuite de cliquer
nimporte o en dehors de ltiquette pour valider la modification. Cest ce
que nous avons fait pour modifier le titre de ltat de notre exemple.
FAUX AMI Attention aux alignements
Pour modifier lapparence dun contrle, par exemple la police utilise ou
lalignement, il suffit de cliquer simplement sur le contrle sans Le champ Ristourne semble correctement align
gauche sur la figure 1327 en mode Cration.
entrer dans son contenu. Les principaux formats disponibles se trou- Lobservation de la figure 1325 en mode Aperu
vent directement dans les barres doutils, dautres formats sont prsents montre quil nen est rien.
dans longlet Format des Proprits du contrle (par un clic droit, appeler
loption Proprits).
327
DExcel Access
Dplacer un contrle
Il y a deux types de dplacement : la vole (cest dire en le glissant
exactement o lon souhaite, comme un post-it sur un tableau) ou en ali-
gnement par rapport dautres contrles.
Pour dplacer un contrle la vole, il faut slectionner contrle et ti-
quette et les dplacer en utilisant les flches de dplacement. Pour les
changer de zone, par exemple pour passer NomStagiaire et PrenomSta-
giaire de la zone Dtail la zone En-tte de groupe NumeroStagiaire, il
faut procder par un couper- coller, en commenant par slectionner le
contrle dplacer et en le coupant, puis en cliquant dans len-tte de
zone cible pour finalement le coller.
Pour aligner un contrle avec un autre, par exemple pour aligner les
totaux par stagiaire et le total gnral avec le dtail des cotisation dues,
slectionnez (en maintenant la touche Shift enfonce) les champs ali-
gner des zones Pied de groupe NumeroStagiaire et Pied dtat (ici, Cotisa-
tionRistournee de la zone Dtail et les deux contrles
Somme([CotisationRistournee]) comme sur la figure 13-29, puis effec-
tuez un clic droit (le curseur restant au-dessus dun des champs slec-
tionns) et cliquez sur Aligner puis Gauche.
Le rsultat de la manipulation (figure 13-30) est que les bords gauches
des champs de droite salignent sur le bord gauche du champ le plus
gauche (ici, le champ CotisationRistournee de la zone Dtail).
Bien entendu, les autres options dAligner permettent daligner :
droite (par rapport au bord droit du contrle le plus droite) ;
En haut (par rapport au bord suprieur du contrle le plus en haut) ;
En bas (par rapport au bord infrieur du contrle le plus en bas).
328
13 diter tables et requtes avec des tats/rapports professionnels
Figure 1327 Figure 1328 Les deux contrles de droite de la figure 13-29
Trois contrles sont slectionns. se sont aligns sur le contrle de gauche grce la fonction Aligner gauche.
329
DExcel Access
330
13 diter tables et requtes avec des tats/rapports professionnels
Synthse : les tats et les rapports
Les tats, ou rapports sous Base, permettent des prsentations impecca-
bles et professionnelles des tables et requtes dune base de donnes rela-
tionnelle. Ils se crent facilement avec les assistants ddis. De plus,
lassistant Access permet de gnrer des tats avec un gestion automa-
tique de totaux et sous-totaux, un peu la manire des sous-totaux de la
liste de donnes du chapitre 4.
Leur modification manuelle en mode Cration est par contre assez fasti-
dieuse et dlicate pour arriver un rsultat impeccable. Heureusement,
elle nest que trs rarement indispensable. Les deux tableaux ci-dessous
rsument lessentiel savoir leur propos.
Tableau 131 Crer un tat/rapport avec lassistant
331
DExcel Access
Tableau 132 Crer un tat avec regroupement et calcul sur donnes numriques avec Access
332
Complments
sur la modlisation A
Dans cette annexe, nous allons approfondir certaines notions abordes au
cours de la modlisation, au travers dun exercice plus complet et plus riche.
Nous vous proposons ci-dessous, figure A1, un nouveau schma tho-
rique, complt de ses nombres cls, un peu plus complexe que ceux vo-
qus au chapitre 6. Il concerne cette fois-ci une cole de parapente et
nous permettra de pousser un peu plus loin notre rflexion en la matire.
Les outils que nous vous avons propos en matire de modlisation sont inspirs de la
mthode Merise, mthode globale dapproche des systmes dorganisation. Cette
mthode a eu son heure de gloire dans les annes soixante. Elle na pas eu de vritable
successeur, du moins dans notre environnement franco-franais, au point que, malgr une
certaine dsaffection, elle sert encore de rfrence dans le milieu enseignant pour ses
qualits pdagogiques videntes. Vous pourrez utilement vous rfrer quelques sites
dinformations sur cette mthode :
http://www.commentcamarche.net/merise/concintro.php3
http://sqlpro.developpez.com/cours/modelisation/merise/
http://fr.wikipedia.org/wiki/Merise_(informatique)
DExcel Access
Figure A1
Le schma thorique de lcole de parapente
334
A Complments sur la modlisation
Ces rectangles sont relis entre eux par un rseau de relations utilisant
des cercles :
Utilise relie Pilote et Parapente et permet ainsi un pilote dutiliser
un parapente du club ;
Est de type relie Parapente et Modle de parapente, chaque para-
pente du club devant imprativement tre homologu ;
Vol relie, et cest un cas de figure nouveau pour nous, la fois Pilote,
Site datterrissage, Site de dcollage et Modle de parapente. Cette
toile daraigne signifie que pour exister, un vol requiert un pilote, des
sites de dcollage et datterrissage et le modle du parapente utilis
par le pilote.
Chaque rectangle (qui deviendra une table dans le schma rel) com-
porte des champs, dont le premier, soulign, constitue sa cl primaire.
Ce schma comporte, de plus, non pas un mais deux nombres cls entre
chaque cercle et chaque rectangle. Le seul nombre cl dont nous avons
parl jusqu prsent correspond au second nombre. Pour comprendre
quoi correspondent ces nouveaux couples, commenons par expliquer
celui entre Pilote et Vol : 1,N.
335
DExcel Access
* Cette double relation est dun type particulier, un et un seul : chaque para-
pente du club correspond un et un seul modle de la fdration.
336
A Complments sur la modlisation
Question 1 : Le premier nombre cl (cardinalit minimale) entre Pilote
et Utilise passe de 0 1 :
1 Chaque parapente du club ne peut tre utilis quune fois.
2 Chaque pilote doit au moins avoir vol une fois avec un parapente du
club.
3 Il existe des pilotes qui ont leur propre parapente.
Question 2 : Les deux nombres cls entre Site datterrissage et Vol sont
(1,1) et non (0,N) :
1 Chaque site est utilis une et une seule fois.
2 Il existe des pilotes qui nont jamais vol.
3 Il existe des pilotes qui nont jamais utilis un site.
Question 3 : Le premier nombre cl (cardinalit minimale) entre
Modle de parapente et Est de type est 1 et non 0 :
1 Certains pilotes sont gs.
2 Le club possde au moins un parapente de chaque modle de la fd-
ration.
3 Aucun modle de parapente du club nest homologu.
Voici les rponses de lexercice :
Question 1 :
1 Non : cette proposition concerne le deuxime nombre cl.
2 Oui.
3 Non : cette cardinalit concerne la relation entre les pilotes et les
parapentes du club et non les parapentes des pilotes.
Question 2 :
1 Oui.
2 Non : cette proposition concerne la relation de Pilote Vol et non de
Site Vol.
3 Non : cette proposition caractrise le premier nombre cl.
Question 3 :
1 Non.
2 Oui.
3 Non : cette proposition concerne la relation Parapente Est de type.
337
DExcel Access
Figure A2
Une organisation diffrente de lcole
supprime la boucle du schma thorique.
338
A Complments sur la modlisation
Le schma rel de lcole de parapente
Ltablissement du schma rel de lcole de parapente ne pose pas de pro-
blme particulier (figure A3). Notons la prsence attendue de la boucle
entre Pilote, Parapente, Modle de parapente et Pilote de nouveau.
Figure A3
Le schma rel de lcole de parapente
comporte exceptionnellement une boucle.
339
Droits et obligations en
matire de base de donnes B
Nous allons, dans cette annexe, rflchir aux problmes poss par le
fichage informatique des donnes personnelles, aux obligations lgales
dun gestionnaire de base de donnes et aux droits de chaque citoyen
face lutilisation de ses donnes personnelles.
La loi intervient, et cest heureux, pour encadrer le traitement des bases
de donnes et en viter une utilisation abusive ou attentatoire aux
liberts individuelles ou lordre public. Chacun a en mmoire ces
affaires troubles de fichage de candidats des offres demploi selon des
critres de race ou de nationalit. Parler des bases de donnes informati-
ques ne pouvait se faire en omettant dvoquer les obligations et les
droits de chacun en la matire.
La CNIL est lautorit de contrle franaise en matire de protection des donnes person-
nelles. Son site, trs bien fait, regorge dune multitude dinformations tout fait pratiques
pour tout citoyen responsable. http://www.cnil.fr.
DExcel Access
342
B Droits et obligations en matire de base de donnes
Vous tes :
une glise ;
un parti politique ;
un syndicat ;
un organisme ou une association caractre religieux, politique,
philosophique ou syndical ;
vous ne dclarez pas votre fichier de membres, dadhrents ou de
personnes qui sont en contact rgulier avec vous.
Vous exercez une activit professionnelle dans le domaine artistique (cri-
vain, cinaste, diteur). Vous ne dclarez pas les traitements de donnes
personnelles utiliss dans le cadre de cette activit (livres, films, TV).
Vous tes responsable dun traitement et :
vous tes domicili dans un autre tat membre de la Communaut
europenne ;
vous habitez en dehors de la Communaut europenne et les don-
nes personnelles que vous grez ne font que transiter par la France.
Vous mettez en oeuvre un traitement de comptabilit gnrale. (Source CNIL)
B http://www.cnil.fr/index.php?id=271
Dans tous les autres cas, vous devez dclarer votre fichier la CNIL. On
ne peut tre plus clair.
343
DExcel Access
le droit dopposition ;
le droit daccs ;
le droit de rectification.
Le non-respect de ces droits est sanctionn pnalement.
(Source CNIL) En cas de difficult dans lexercice de vos droits, vous pouvez saisir la
B http://www.cnil.fr/index.php?id=21 CNIL.
Le droit linformation
Toute personne a le droit de savoir si elle est fiche et dans quels fichiers
elle est recense.
Maintenant, face ce droit, la ralit pose de nombreuses limites. Comment
un individu peut-il savoir qui stocke des donnes le concernant, surtout si
cela se fait son insu ? Ds quon va la pharmacie, ds quon utilise sa carte
bleue, ds quon paye ses impts, la limite mme ds quon nat, on est
fich quelque part dans un fichier contenant des donnes personnelles.
Ce droit reste donc, il faut bien lavouer, un droit thorique et conceptuel.
Le droit dopposition
Ce droit dopposition est beaucoup plus puissant. Il stipule que :
Chacun peut sopposer, pour des motifs lgitimes, figurer dans un
fichier (sauf dans un fichier lgal comme les fichiers dtat civil, fis-
caux, militaires, lectoraux, judiciaires, etc).
Chacun peut sopposer, sans avoir se justifier, figurer dans un
fichier de prospection commerciale.
Concrtement, cela veut dire que si vous tes importun par des dmar-
chages commerciaux non sollicits, vous tes en droit dexiger de lmet-
teur quil cesse.
Le droit daccs
Toute personne justifiant de son identit a le droit dinterroger le res-
ponsable dun fichier ou dun traitement pour savoir sil dtient des
informations sur celle-ci et, le cas chant, den obtenir communication.
Ce droit, consquence immdiate du droit dinformation, est l encore
bien thorique. Qui interroger quand on ne sait pas qui dtient des
informations personnelles sur soi ? Qui plus est, la loi stipule que ce
droit ne sexerce pas si la demande est manifestement abusive ou si les
donnes sont conserves sous une forme ne prsentant aucun risque
datteinte la vie prive ou pendant une dure nexcdant pas celle
ncessaire ltablissement de statistiques.
344
B Droits et obligations en matire de base de donnes
Pour contredire la remarque prcdente, et titre dexception la rgle,
notez que, depuis 2002, chacun a libre accs son dossier mdical.
345
DExcel Access
Figure B1
Le modle de courrier officiel de la CNIL
SPAMS Conduite tenir face aux spams Ne jamais ouvrir un spam. Pour ce faire, Outlook et Thunderbird
proposent une option trs utile consistant ne tlcharger que les
Les spams sont ces courriels non sollicits qui inondent votre bote aux
en-ttes des messages. Il suffit alors de les consulter pour sup-
lettres lectronique. Ils sont en gnral facile reconnatre : ds quon
primer trs rapidement les spams. Vous ne tlchargez ensuite
vous promet fortune, gloire, beaut ou satisfaction sexuelle ahuris-
que le contenu des messages qui vous intressent.
sante, ou que lon vous propose des Rolex ou des Cartier au prix dune
Paramtrer votre logiciel de messagerie pour ne recevoir que les
Swatch, ou encore quon vous demande de fournir numro et code de
messages provenant de contacts rpertoris dans votre carnet
carte bleue parce que votre banque les a perdus, mfiance mfiance !
dadresse (dans ce cas, attention : si un inconnu vous adressait
Inutile dans ce cas de vous adresser la CNIL pour faire cesser ces e-
une message important, vous nen seriez pas averti...).
mails, pour la simple raison que ces spams vous parviennent parce que
Utiliser plusieurs adresses, par exemple une pour votre travail,
votre adresse lectronique a t vole ou mme simule. Interdiction de
une pour vos amis et une autre pour laisser vos coordonnes sur
rpondre en demandant leur arrt, cela confirmerait lexpditeur que
Internet dans les sites dachat en ligne ou autres.
votre adresse est valide, ce qui multiplierait encore les spams.
Ne jamais laisser son adresse sur un site douteux, ne la confier
Ce qui motive les spammeurs ? Ce qui fait tourner le monde depuis lori-
qu des sites ayant pignon sur rue.
gine, lappt dun gain facile et le simple plaisir dennuyer son prochain.
Ne jamais laisser son adresse son son site perso ou son blog, ou
On peut regretter la mollesse avec laquelle les fournisseurs daccs
alors en la modifiant par un trucage du style
Internet luttent contre cette plaie. Le problme nest certainement
robert.marcelENLEVER_CES_CARACTERES@toto.fr. Votre interlo-
techniquement pas simple, tant les spammeurs rivalisent dingnio-
cuteur comprendra quil ne doit utiliser que robert.marcel@toto.fr,
sit pour maquiller leurs envois (par exemple en remplaant pnis
un robot de recherche malententionn et un peu primaire, non.
pas pn!s ). Continuer pourtant recevoir des messages dont
Utiliser une adresse maquille. Si vous avez un nom trs rpandu,
lobjet est Sales 75% OFF Pfizer ou Patek Philippe Watches
John Smith ou Jean Martin, sachez quil existe des gnrateurs
jette un doute sur la volont des FAI lutter contre ces spams.
dadresses qui essayent ce type dadresses par combinaison auto-
Que faire face cette huitime plaie de linformatique :
matique de caractres et de noms. Rusez donc en transformant
Utiliser un filtre antispam ou utiliser Mozilla Thunderbird la
votre adresse par john_smmith@titi.de ou jeean.maartin75@toto.fr.
place dOutlook.
Mais il nexiste pas de recette miracle ! Le jour o votre bote aux let-
Ne jamais rpondre un spam.
tres sera submerge de spams, ce qui est quasiment invitable, il ne
vous restera qu arrter de la consulter et en changer.
346
Index
A modification 284 contrle 327
aperu avant impression dun tat 314 calcul arithmtique (champ) 292 mode Cration 326
arrt tabulation 250 caractres gnriques 54 proprits dun contrle 327
assistant de cration case cocher 286, 296 synthse 317, 319
tat 311 chane de caractres tri 313
etat de synthse 319 concatner 297 tiquette de contrle 209
formulaire simple 198 chane vide autorise 144
liste de choix manuelle 171 champ calcul 291 F
liste de choix par rapport une champs 18 fentre des relations
table 175 cl primaire 97 Access 182
rapport 316 dfinir 142 Base 185
requte inattendue 190 filtre 4
de synthse 301 CNIL (commission nationale informatique dates 6
et libert) 341 dsactiver 51
non correspondance 263
code SQL 269, 278 volu 53, 55
paramtre 258
colonne cl cache (Access) 178 liste de donnes 49
slection 257
Comme 262 spcial 57
simple 238
concatner 297 standard 57
sous-formulaire 221
contrle dtat 327 sur plusieurs champs 51
assistant requte Access 238
contrle de formulaire 205 sur un champ unique 50
B cration de table 138 textuel (Excel 2007) 53
base de donnes crer une base de donnes 126 fonction
champs 18 critre de slection cart type 69
dfinition 10, 18 Comme 262 liste de donnes 42
doublon 36 Est Null 262 moyenne 69
enregistrements 19 NbCar 262 nombre 68
base de donnes relationnelle Pas comme 262 sous-total (Excel 2007) 70
cl trangre 98 variance 69
cl primaire 97 D formulaire
crer 126 donnes arrt tabulation 250
cran daccueil 133 modification 227 assistant cration 198
identifiant 97 saisie 222 bas sur une requte 248
mthode dlaboration 100 bouton daction 219
modle de base de donnes Access 96 E contrle 207
modlisation 108 cran daccueil 133 tiquette 207
ouvrir 128 effacer en cascade 185 viter la tabulation sur un champ 210
relations 94 En() 262 liste de choix (Base) 210
scurit 130 enregistrements 19 menu daccueil 218
table 93 esclave (table) 97 mode contenu 203
table matre et table esclave 97 Est Null 262 modifier 205
virus 129 ET/OU 51, 56 ouverture automatique 221
volet daffichage 133 tapes de programmation dun requte source 248
volet de navigation 133 SGBDR 120 saisie des donnes 225
tat simple 198
C aperu avant impression 314 sous-formulaire 215
cahier des charges 109 assistant cration 311 formulaire et sous formulaire 215
347
DExcel Access
G (Excel 2007) 36 O
gnrateur dexpression 298 Voir filtre 4, 49, 50, 51, 53, 55, 57 objets 101
graphique crois dynamique 80, 84 Voir fonction 42, 68, 70 ouvrir une base de donnes 128
Voir graphique crois dynamique 80,
I 84 P
importer Voir rgle 19, 24, 25, 26, 28, 29 PartDate() 262
carnet dadresses 155 Voir sous-total 60, 61, 64, 66 Pas comme 262
donnes 150 Voir tableau crois dynamique 71, 72, phrase cl 110
Index 181 74, 75, 77, 79, 80 proprit
integer 141 Voir tri 43, 44, 47 case cocher 286
intgrit rfrentielle pourcentage 286
Access 183, 185 M proprit de champ
Base 188 Maintenant() 169 chane vide autorise 144
matre (table) 97 cl primaire, dfinir 142
L masque de saisie 137 date 145
Les comptoirs (base exemple) 96 mmo 145 limiter liste 174
limiter liste 174 menu daccueil 218 masque de saisie 137, 145
liste de choix Merise 333 mmo 145
avec un formulaire Base 210 mettre jour en cascade... 185 null interdit 137
limiter (Access) 173 mise en forme conditionnelle de liste de numrotation automatique 136, 141
manuelle (Access) 171 donnes 32 tlphone 148
par rapport une table (Access) 175 mode texte 144
valeur par dfaut 174 types 142
assistant 256
liste de donnes proprits dun contrle dtat 327
Contenu 156
acclrer sa saisie 46
Cration 156
cas pratique 8 R
cration 256
dfinition 18 rapport
bauche 256
effacer la mise en forme conditionnelle assistant cration 316
page 208
(Excel 2007) 36 dynamique 317
filtrer 50 SQL 256 niveaux de regroupement 316
filtres volus 52 modlisation statique 317
format conditionnel (Calc) 38 nombre cl 115 recherche de doublons 271
identifier les valeurs extrmes (Excel phrase cl 110 rgle
2007) 34 relation 118 annulation 29
insrer un saut de page (Calc) 68 schma rel 114 applicable un nombre 26
isoler un lment (Excel 2007) 33 schma thorique 109 de construction 19
limiter les entres aux valeurs dune modifier de validation 24
liste 27 donnes 227 personnalise 28
limites 90 formulaire 205 relation 94, 118
message derreur 30 requte 234
messages daide la saisie 29 N ajout 237
mise en forme conditionnelle 32, 37 NbCar 262 assistant Access 238
mode de saisie assiste 22 niveaux de regroupement calcul 291
numroter les lignes 21 tat 312 calcul arithmtique 292
surlignage automatique (Excel rapport 316 case cocher 296
2007) 23 nom de champ 135 champ calcul 291
totalisation par slection de cellules 61 nombre cl 115 combinaison de critres 260
trier 44 non-correspondance 262 critres de slection 262
selon un ordre personnalis 44 Northwind (base exemple) 96 filtre 245
sur plusieurs champs 47 null interdit 137 mode Contenu 244
visualiser un lment dans une srie numrotation automatique 136, 141 mode Cration/bauche 241
348
Index
non-correspondance 262 insrer un niveau unique de 61 tableur
opration 304 liste de donnes 60 formules absolues ($) 35
paramtre 258 supprimer 66 solution feuille classeur 10
recherche de doublons 271 SQL 256, 269, 270, 278 tabStop 250
slection 257 test conditionnel 298
slection paramtre 258 T traitement de texte
simple 238 table tri de tableau 3
suppression 237 cl primaire 97 tri
synthse 301 cration 138 liste de donnes 43
test conditionnel 298 dfinition 93 selon un ordre personnalis 44
trier 260 esclave 97 successif 47
VraiFaux() 298 importation de donnes 150 sur un seul champ 44
matre 97 tri dun tat 313
S nom de champ 135 trier une requte 260
saisie des donnes 222 saisie des donnes 226 types de champ 142
schma rel 114 tableau crois dynamique 71
schma thorique 109 actualiser 79 V
scurit 130 crer 72, 74, 75 validation dune liste de donnes 24
somme par slection de cellules 61 exploiter 75 virus 129
sous-total modifier 77 volet daffichage 133
exploiter 64 organiser 80 volet de navigation 133
insrer plusieurs niveaux de 66 pilote de donnes (Calc) 72 VraiFaux() 298
349