Thierry Capron
sans taboo
Croiser, extraire et analyser ses donnes
Access
DExcel
Pour que
sans taboo
Pour un traitement plus performant de vos donnes !
> Construisez une base de donnes minimale grce aux listes de donnes sous Excel et Calc > Triez et filtrez des enregistrements dans vos listes de donnes > Exploitez vos listes de donnes laide de la fonction Sous-total et des tableaux croiss dynamiques > Modlisez une base de donnes relationnelle prenne et volutive sous Access et Base > Concevez les tables et leurs diffrents champs > Crez une table par importation de fichiers Excel et Calc > tablissez les relations entre les tables matres et esclaves > Btissez vos formulaires et alimentez votre base > Apprenez crer et modifier des requtes de slection > Identifiez les doublons et les enregistrements sans correspondance > Effectuez des calculs, tests conditionnels et manipulations de chanes de caractres > ditez et modifiez vos tats
Quand il faut consigner chiffres et donnes, le premier rflexe est de recourir au classique tableur Excel (ou Calc). Cependant, par crainte de sattaquer aux concepts redouts des bases de donnes, ou par mconnaissance, lutilisateur se prpare des lendemains difficiles. En effet, le tableur est vite dbord mesure que les besoins augmentent. Dans bien des cas, il suffit de faire jouer les fonctionnalits de base de donnes dExcel ou mme de passer Access (ou Base) pour crer et grer ses donnes dans une vritable base.
Thierry Capron est diplm de lESCP Il a . exerc diverses responsabilits oprationnelles en entreprise durant 15 ans (CBS, Arcelor Mittal, Point P). Depuis 10 ans, il consacre tout son temps la formation en comptabilit et bureautique auprs de publics varis (EDF GDF, Eurocopter, Ceram Sophia Antipolis).
Tlchargez les fichiers des cas pratiques sur www.editions-eyrolles.com
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Access
Croiser, extraire et analyser ses donnes
DExcel
OpenOffice.org 2 Calc. s. GauTier, avec la contribution de J.-m. THomas. N11667, 2006, 220 pages. OpenOffice.org Calc 2 Initiation. P. moreau. N12035, 2006, 210 pages. OpenOffice.org Calc 2 avanc. P. moreau. N12036, 2006, 186 pages.
Mmento Calc OpenOffice.org 2. s. GauTier eT m. berGame. N11729, 2005, 14 pages. OpenOffice.org 2.2 efficace Writer, Calc, Impress, Draw, Base. s. GauTier, C. Hardy, F. Labb eT miCHeL PiNquier. N12166, 2007, 394 pages.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Thierry Capron
Access
DExcel
sans taboo
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 . Quiconque sest frott ce type de logiciel sans prparation, sans connaissance et sans mthode particulire, apprciera la pertinence de la remarque. Ces futurs managers ntaient pas particulirement ports sur linformatique 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 premire 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.
DExcel Access
Que ce soit pour des besoins professionnels ou personnels, vous trouverez dans cet ouvrage plusieurs applications de la mme notion de base de donnes. Ce livre est un condens de lexprience accumule en formation sur ce thme pour des publics trs varis (tudiants, cadres, mais galement employs en rorientation professionnelle...). Nul besoin dtre un virtuose du clavier ou un champion des macros pour sapproprier cette mthode. tre laise avec son ordinateur, matriser lessentiel de Windows et des fonctions de base dun tableur suffiront amplement.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
VI
Puisquil fallait bien choisir un angle de vue privilgi pour les explications 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
Avant-propos
DExcel Access
Le chapitre 2 traite des rgles de construction dune liste de donnes performante et fiable, celle qui vous fera gagner du temps. Il aborde galement les tonnantes analyses visuelles quautorise Excel 2007, notamment. lissue du chapitre 3, vous saurez tout des possibilits de tri et de slection denregistrements dans une liste de donnes. Enfin, dans le chapitre 4, la dcouverte et la mise en uvre des fonctions de sous-total et de tableau crois dynamique vont vous permettre de raliser toutes les analyses statistiques de votre liste de donnes, mettant ainsi dfinitivement au placard les bonnes vieilles fonctions Somme () et autres .
Access et Base sont des logiciels dlicats dutilisation quil est impossible daborder comme un traitement de texte ou un tableur. Priorit est donc donne lapproche mthodologique, aussi bien pour la prparation du travail (la modlisation) que pour la programmation proprement dite. Le concept cl de relation est particulirement dvelopp. Le chapitre 5 est ax sur la dcouverte du vocabulaire et des principes fondamentaux qui prsident au fonctionnement des bases de donnes relationnelles. Les mthodes danalyse et de modlisation du modle traiter sont dtailles au chapitre 6. Cest une particularit importante de cette mthode que de traiter, en termes clairs et simples, tous les concepts fondamentaux qui vous permettront coup sr de dfinir prcisment le dessein et lorganisation de votre base de donnes relationnelle. Le chapitre 7 permet de se familiariser avec linterface logicielle et les oprations essentielles (crer et ouvrir une base, grer les problmes de scurit, crer une table et ses champs...). Ltablissement des relations entre les tables, fondement du modle relationnel dune base de donnes, fait lobjet du chapitre 8. Essentielle entre toutes, cette tape valide dfinitivement le travail de modlisation et de programmation ralis en amont. Le chapitre 9 traite des mthodes dentre des donnes dans une base, par saisie directe (dans la table ou via un formulaire) ou par importation partir de fichiers existants. Une base de donnes relationnelle ne trouve de justification quau travers des analyses quon peut raliser sur ses donnes. Les requtes servent de support ces analyses. Vous saurez btir, manipuler et modifier une requte danalyse des donnes simple aprs ltude du chapitre 10.
VIII
Les chapitres 11 et 12 poussent les requtes dans leurs derniers retranchements, 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 relationnelles 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Remerciements
En comparant les preuves finales avec le tout premier jet de ma rdaction, je ne peux que mesurer lnorme travail de conseil, daccompagnement 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 contribution 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 formation. 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
Avant-propos
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Rgle 5 : pas de formule 23 Les rgles de validation dune liste de donnes 24 Le paramtrage des rgles de validation proprement dites 25 Limiter les entres un nombre entier ou dcimal 26 Limiter les entres aux donnes dune liste 27 Crer une rgle de validation personnalise 28 Lannulation des rgles de validation 29 Laide la saisie et les messages derreur 29 Le dtail des rgles de validation conseilles pour notre cas pratique 31 Les mises en forme conditionnelle de liste de donnes 32 Les mises en forme conditionnelles spcifiques Excel 2007 32 Isoler un lment dans une srie 33 Identifier les dix premiers lments dune srie 34 Visualiser la place de chaque lment au sein de la srie 36 Les mises en forme conditionnelles dExcel 2003 et de Calc 37 Synthse : btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme 39 3. TRIER ET SLECTIONNER DES ENREGISTREMENTS DANS LES LISTES DE DONNES .......................................41 Comment accder aux fonctions de liste de donnes 42 Les tris de liste de donnes 43 Trier sur un seul champ 44 Trier selon un ordre personnalis 44 Crer une liste personnalise 45 Trier selon une liste personnalise 46 Effectuer plusieurs tris successifs 47 Les filtres ou la slection denregistrements 49 Les filtres simples 50 Appliquer un filtre sur un champ unique 50 Appliquer un filtre sur plusieurs champs 51 Dsactiver un filtre 51 Les filtres volus 52
XI
DExcel Access
Les filtres volus spcifiques Excel 2007 53 Les autres filtres volus dExcel 2007 et 2003 et de Calc 55 Synthse : les tris et les slections denregistrements par filtre 57 4. EXPLOITER LES LISTES DE DONNES : LES SOUS-TOTAUX ET LES TABLEAUX CROISS DYNAMIQUES .................................. 59 Totaux et sous-totaux dans une liste de donnes 60 Insrer un niveau unique de sous-total 61 Exploiter les sous-totaux de listes de donnes 64 Afficher la liste intgrale des enregistrements, des sous-totaux et du total gnral 64 Affiner lanalyse : dvelopper ou rduire chaque sous-total 64 Supprimer les sous-totaux 66 Imbriquer plusieurs niveaux de sous-totaux 66 Moyenne, nombre, variance et autres carts types 68 Des tats danalyse entirement paramtrables : les tableaux (graphiques) croiss dynamiques 71 Crer un tableau crois dynamique avec lassistant Crer un TCD 72 Exploiter un TCD 75 Faire varier la dimension filtre 76 Modifier la structure du TCD 77 Actualiser un TCD 79 Organiser ses TCD 80 Le graphique crois dynamique 80 Les GCD sous Excel 2007 80 Les GCD version Excel 2003 84 Synthse : les fonctions de sous-total et de tableau (graphique) crois dynamique sont les instruments indispensables danalyse dune liste de donnes 87 5. INTRODUCTION AUX BASES DE DONNES RELATIONNELLES 89 Les limites des listes de donnes 90 Une liste de donnes est un cas particulier dune base de donnes 90 Une liste de donnes est une base de donnes aux performances limites 91 Les concepts fondamentaux des bases de donnes relationnelles 93 Les tables : regroupement des donnes dun mme domaine 93 Les relations entre les tables 94 Tables matres et tables esclaves 97 La cl primaire : identifiant unique dun lment de table 97
La mthode dlaboration dune base de donnes relationnelle 100 La phase de modlisation 100 La mise en uvre pratique dune base de donnes relationnelle 100 La structure dun SGBDR et ses diffrents objets 101 Les phases de la programmation dune base de donnes relationnelle 103 Synthse : base de donnes relationnelle et mthode de travail avec un SGBDR 105 6. LA MODLISATION DUNE BASE DE DONNES RELATIONNELLE .........................................................107 Prsentation de notre cas pratique de base de donnes relationnelle 108 Btir le schma thorique de la base de donnes relationnelle 109 Dterminer les lments du schma thorique avec la phrase cl 110 Individualiser les lments de la phrase cl 111 Caractriser les lments de la phrase cl 111 viter les principaux piges du schma thorique 112 Ne pas crer dlment inutile 112 Ne pas crer un schma thorique en boucle 114 Dduire le schma rel du schma thorique 114 Dterminer dfinitivement les tables du schma rel 115 Dterminer les champs et la cl primaire de chaque table 117 tablir les relations entre les tables 118 Les principales tapes de la programmation dAccess et de Base 120 tape 1 : programmer les tables 120 tape 2 : tablir les relations 121 tape 3 : saisir les donnes 121 tape 4 : programmer formulaires, requtes et tats/rapports 122 Synthse : modlisation et mthode de programmation dun SGBDR 122 7. OPRATIONS ESSENTIELLES
SUR UNE BASE DE DONNES ........................................125
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Crer une nouvelle base de donnes relationnelle 126 Ouvrir une base de donnes relationnelle existante 128 Autoriser louverture de la base pour une session seulement sous Access 2007 130 Autoriser dfinitivement louverture de toutes les bases dun dossier sous Access 2007 131 Utiliser lcran daccueil dune base de donnes relationnelle 133
Groupe Eyrolles, 2007
XII
Crer une table 134 Les caractristiques des champs dune table 135 Utiliser des noms de champs pertinents 135 Dfinir une cl primaire efficace 136 Faciliter la saisie avec un masque de saisie 137 Interdire labsence de saisie 137 Crer une nouvelle table 138 Crer les champs dune table 139 Mthode gnrale de cration dun champ 140 Crer le champ cl primaire numrotation automatique 141 Crer un champ numrotation automatique 141 Dclarer un champ cl primaire 142 Crer un champ ordinaire 143 Crer un champ de type Texte 144 Crer un champ de type Date 145 Crer un masque de saisie sous Access 145 Crer un champ de type tlphone 148 Crer une table par importation de donnes 150 Caractristiques des donnes importer 150 Importer des donnes externes dans une table Access 150 Importer dautres objets Access 153 Importer des donnes et des programmes sous Base 155 Modifier la table rsultante aprs importation 156 Manipuler les objets dune base de donnes 156 Comprendre lutilit des deux modes daffichage dun objet 156 Ouvrir un objet directement dans le mode adquat 158 Basculer dun mode daffichage lautre 158 Fermer, supprimer et copier un objet 159 Synthse : oprations essentielles sur une base de donnes 160 8. TABLIR LES RELATIONS ENTRE LES TABLES .................. 163 Crer toutes les tables de notre cas pratique 164 Crer la table des Guides 167 Crer la table des Activites 168 Crer la table des Inscriptions 168 Crer la table des BureauxGuides avec Base 169 tablir les relations par liste de choix avec Access 170 Paramtrer une liste de choix manuelle avec Access 171 Utiliser lassistant Liste de choix manuelle 171 Vrifier et scuriser la liste de choix avec Access 173 Assigner une valeur par dfaut dans une liste de choix 174
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Paramtrer une liste de choix par rapport une table avec Access 175 Utiliser lassistant Liste de choix par rapport une table 176 Paramtrer la fentre des relations avec Access 182 Anatomie de la fentre des relations avec Access 183 Paramtrer lintgrit rfrentielle des relations avec Access 183 tablir les relations avec Base 185 Fonctionnement de la fentre des relations avec Base 185 Paramtrer une relation dans la fentre des relations avec Base 187 Rsoudre les difficults lies au paramtrage des relations 189 Des donnes ont t saisies avant le paramtrage des relations 189 Il manque une cl primaire pour une table 190 Une table contient une cl primaire inattendue 190 Il nexiste pas de liste de choix entre la table esclave et sa table matre (Access) 191 Synthse : le verdict des relations 192 9. CRER UN FORMULAIRE ET SAISIR LES DONNES ............195 quoi sert un formulaire ? 196 Crer un formulaire de saisie simple 198 Crer un formulaire avec lassistant 198 Dterminer la table et les champs du formulaire 200 Choisir laspect du formulaire 202 Le formulaire en mode Contenu 203 Modifier un formulaire 205 Modifier ltiquette dun contrle de formulaire 209 Dplacer et redimensionner un contrle dun formulaire 209 Crer un formulaire avec liste de choix sous Base 210 Insrer la liste de choix 211 Insrer ltiquette de la liste de choix 214 Aller plus loin avec les formulaires 215 Crer un formulaire pour agir sur deux tables la fois 215 Crer un menu douverture pour nophyte avec Access 218 Crer le formulaire de menu 218 Automatiser louverture dun formulaire 221 Saisir et modifier les donnes 222 Les spcificits de la saisie des donnes dans une base de donnes relationnelle 222 Les contraintes dintgrit rfrentielle 222 Les donnes sont enregistres immdiatement 223 Saisir, modifier et supprimer des donnes 225
XIII
DExcel Access
Saisir un formulaire ou directement dans la table 225 Saisir des donnes avec un formulaire 225 Saisir des donnes directement dans une table 226 Modifier et supprimer des donnes 227 viter les difficults lies la saisie de donnes 228 Il faut respecter les proprits du champ 228 Il faut respecter le principe dintgrit rfrentielle 229 Synthse : les formulaires et la saisie des donnes 230 10. EXPLOITER LES DONNES AVEC UNE REQUTE SIMPLE .. 233 Quest-ce quune requte ? 234 Plusieurs types de requtes 235 Rflexions pralables la cration dune requte 236 Choisir les champs participant une requte 236 Choisir le mode de cration de la requte 237 Crer une requte simple 237 Crer une requte avec lassistant Access 238 Slectionner les champs de la requte (tape 1 de lassistant) 238 Choisir le type de requte (tape 2 de lassistant) 239 Enregistrer la requte (tape 3 de lassistant) 240 Crer une requte en mode Cration/bauche 241 Crer une nouvelle requte en mode Cration/bauche 242 Insrer les tables participant la requte 242 Insrer les champs participant la requte 243 Comprendre les rsultats dune requte en mode Contenu 244 Sexercer crer des requtes 246 Faciliter la saisie des donnes avec une requte sous Access 248 Crer la requte source 248 Crer le formulaire bas sur la requte 249 Synthse : exploiter les donnes avec une requte simple 252 11. ISOLER DES ENREGISTREMENTS PARTICULIERS DANS UNE BASE DE DONNES .............................................. 255 Modes cration/bauche, assistant et SQL : sorienter 256 Raliser des slections denregistrements 257 Crer une requte slection 257 Crer une requte slection paramtre 258 Combiner les critres de slection 260 Utiliser les critres de slection volus 262 Identifier des enregistrements sans correspondance 262 Crer la requte de non-correspondance avec lassistant Access 263
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Visualiser la requte de non-correspondance 267 Le mode Cration de la requte de non-correspondance 268 Le mode SQL de la requte de non-correspondance 268 Crer la requte de non-correspondance en mode SQL avec Base 270 Crer le code SQL de requte de non-correspondance 270 Crer la requte de non-correspondance en mode SQL 271 Identifier les doublons dans une table 271 Crer une requte de recherche de doublons avec lassistant Access 273 Modifier une requte existante 275 Crer une requte de recherche de doublons en mode SQL 278 Synthse : rechercher des enregistrements particuliers dans une base de donnes 279 12. EFFECTUER DES CALCULS ET DES SYNTHSES AVEC UNE REQUTE ....................................................283 Prendre en compte une modification du cahier des charges 284 Identifier les modifications de la base suite au nouveau cahier des charges 285 Modifier la base de notre cas pratique 287 Crer des champs calculs 291 Connatre la syntaxe dun champ calcul dans une requte 291 Effectuer un calcul arithmtique 292 Manipuler les chanes de caractres avec Access 297 Effectuer un test conditionnel avec Access 298 Raliser des synthses avec une requte 301 Crer une requte de synthse avec lassistant Access 301 Crer une requte de synthse en mode Cration/bauche 303 Organiser son travail avec les requtes 304 Grer lajout et la suppression de donnes 305 Crer une unique requte avec tous les calculs 306 Synthse : effectuer des calculs et des synthses avec les requtes 307 13. DITER TABLES ET REQUTES AVEC DES TATS/RAPPORTS PROFESSIONNELS ....................................................... 309 Crer un tat/rapport en trente secondes 311 Crer un tat simple avec lassistant Access 311 Crer un rapport simple avec lassistant Base 316 Sentraner la cration dtats/rapports 319 Crer un tat de synthse avec Access 319 Dterminer les champs participant ltat 320
Groupe Eyrolles, 2007
XIV
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Dterminer le niveau de regroupement 321 Paramtrer le tri et les synthses effectuer et terminer lassistant 322 Lanalyse critique de ltat obtenu 324 Modifier un tat existant avec Access 325 Anatomie dun tat en mode Cration 326 Manipuler les contrles 327 Slectionner un contrle 327 Modifier une tiquette ou un contrle 327 Dplacer un contrle 328 Modifier la taille dun contrle 329 Supprimer un contrle inutile 329 Arer la prsentation de ltat 330 Synthse : les tats et les rapports 331 A. COMPLMENTS SUR LA MODLISATION ....................... 333 Le schma thorique de lcole de parapente 334 Exercice sur les couples de nombres cls 336 Prcisions concernant la boucle dans le schma thorique de lcole de parapente 338
B. DROITS ET OBLIGATIONS EN MATIRE DE BASE DE DONNES341 Vos obligations en tant que gestionnaire de base de donnes 341 La notion de donnes caractre personnel 342 Dans quel cas faut-il dclarer un fichier de donnes personnelles auprs de la CNIL ? 342 Vos droits en tant que citoyen face lutilisation de vos donnes personnelles 343 Le droit linformation 344 Le droit dopposition 344 Le droit daccs 344 Le droit de rectification 345 Exercez vos droits 345 INDEX ......................................................................347
XV
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
B Le traitement de texte :
Grer une base de donnes nimpose pas ncessairement dutiliser un logiciel complexe comme Access ou Base. partir dun exemple trs simple, nous allons dcouvrir ici les avantages dcisifs des bases de donnes simplifies que sont les listes de donnes sous tableur.
B Liste de donnes sous tableur B Filtre de liste de donnes B Base de donnes B Cahier des charges simplifi
DExcel Access
Grer une base de donnes noblige pas ncessairement dutiliser un logiciel spcifique et complexe tel quAccess ou Base. Les tableurs Excel et Calc possdent en effet le mode Liste de donnes permettant, avec un minimum dinvestissement en temps, de crer et dexploiter une base de donnes simple. Lobjet de ce chapitre est de prsenter globalement ce mode, largement mconnu et donc sous-employ par la majorit des utilisateurs. Il sarticule autour de deux comparaisons, la premire entre traitement de texte et liste de donnes, la seconde entre utilisation classique du tableur et liste de donnes.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Un traitement de texte ne sait pas grer une base de donnes, mme trs simple
Dans la palette des outils les plus utiliss en bureautique figure en tte de liste le traitement de texte. Nous allons voir ici pourquoi, mme pour un problme trs simple, il ne peut apporter de solution efficace, et comment la liste de donnes sous tableur fait bien mieux en termes de facilit et de performances. Rien ne vaut un exemple concret : dans une cole de commerce, nous devons organiser la prsence des tudiants au cours de bases de donnes, car on sy bouscule. Huit dates sont programmes, chacune voyant chacun des quatre groupes dtudiants suivre une sance d1h30 dans la seule salle suffisamment spacieuse pour les accueillir tous. Nous devons ainsi grer trois informations pour convoquer les bons tudiants le bon jour, sachant que le cours aura toujours lieu au mme endroit : le groupe dtudiants concern (qui ?) ; le jour (quand ?) ; et enfin le crneau horaire (prcision sur le quand ?). Ce planning peut parfaitement se prsenter sous forme de tableau de traitement de texte. Le premier rflexe (et pas le meilleur, nous verrons pourquoi) peut donc tre de prendre Word ou Writer et de construire un tableau texte comme celui de la figure 11. Sa structure est on ne peut plus simple : Dabord trois colonnes correspondant aux informations fournir aux tudiants : le Groupe, la Date, le Crneau horaire, chacun de ces titres tant saisi en en-tte de chaque colonne. Ensuite, les uns au dessous des autres, les diffrentes combinaisons groupes/jour/crneau. En considrant quil y a quatre groupes et huit
Groupe Eyrolles, 2008
Figure 11
Un planning sous traitement de texte, trs simple mais aux possibilits bien limites
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 pourrions 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 temporairement certaines lignes, on ne pourra queffectuer des copier coller au sens premier du terme, cest--dire avec des ciseaux et de la colle... Pas trs performant, non ? Ce problme se posera de la mme faon quand lintervenant du 17 novembre nous demandera son planning (et uniquement le sien). Bref, notre tableau sous traitement de texte ne nous rendra gure de services.
JAI UNE QUESTION Et les fonctions de mailing de Word ?
Vous affirmez que Word est disqualifi pour grer les bases de donnes. Pourtant je gre personnellement les mailings de mon entreprise entirement sous Word et je men porte trs bien. Alors ? Si cette faon de procder vous convient, continuez sans arrire pense ; vous trouverez mme dexcellents ouvrages qui vous y aideront. Ceci dit : Le module de mailing de Word a t dvelopp pour ceux qui ne souhaitent pas sinitier 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 ergonomie 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 suprieures la moyenne des ventes, les employs de tel ge, etc.).
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 12
Maintenant, en quoi ce tableau sous tableur est-il plus performant que son petit frre sous traitement de texte ? Nous allons lexprimenter en quelques clics !
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 13
Le haut de la bote de dialogue de la figure 13 permet deffectuer des tris, mais le plus intressant ici se situe plus bas, au-dessous de la zone Filtres textuels, o nous retrouvons la liste de nos quatre groupes. Ils sont tous cochs, ce qui signifie quils sont tous actuellement affichs. Si nous dcochons les groupes 1, 3 et 4 pour ne conserver coch que le 2 et que nous validons, nous obtenons laffichage du groupe 2 uniquement (figure 14).
Figure 14
Observons laffichage de la figure 14 : La flche ct de len-tte Groupes sest orne dune sorte d entonnoir. Il signifie quun filtre est appliqu sur cette colonne. Excel naffiche que le groupe 2 parce quil a masqu les lignes des autres groupes. Cest vident si on observe les intituls de numros de ligne lextrme gauche de chaque ligne : les lignes 2 9 ont temporairement disparu. De plus, Excel affiche ces numros de ligne en bleu pour bien nous rappeler quun filtre est actuellement en cours.
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 15
Figure 16
Figure 17
Remarquez sur la figure 17 que seules les lignes 5, 13, 21 et 29, correspondant la date du 17 octobre, sont affiches, et que les autres sont temporairement masques. Cest le principe mme du filtre qui se contente 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. Remarquez galement sur cette figure 18 que licne de filtre (lentonnoir) apparat la fois sur les colonnes Groupes et Dates, preuve que des filtres sont appliqus sur ces deux colonnes.
EXCEL 2003 ET CALC Appliquer un filtre sur des dates
Excel 2003 et Calc noffrent pas la possibilit, comme Excel 2007, de slectionner un mois particulier. Il sagit alors simplement de slectionner dans la liste de choix du filtre correspondant la date souhaite (figures 19 et 110).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
simultanment se cumulent.
Les filtres offrent bien dautres possibilits, nous les tudierons en dtail pages 71 et suivantes.
DExcel Access
Les listes de donnes sous tableur : un pas vers les bases de donnes
RAPPEL Feuilles de calcul et classeurs
Un classeur Excel ou Calc permet, comme un classeur rel, de regrouper des feuilles de calcul traitant du mme sujet pour un classement plus clair et un accs plus rapide linformation. On peut par exemple regrouper dans un mme classeur les informations relatives un client, un produit, ou un thme particulier. Il est possible deffectuer, dans une feuille de calcul, des calculs par rapport des cellules dautres feuilles du mme classeur ou mme dautres classeurs. Ces manipulations par ailleurs trs pratiques et performantes, un peu trop longues pour tre dveloppes ici, sont dtailles dans nombres douvrages sur les tableurs, dont PC trucs, du mme auteur, aux ditions Leduc.S ou les ouvrages consacrs Excel et Calc dans la collection TSoft aux ditions Eyrolles.
Le mode Liste de donnes des tableurs est celui que nous venons dutiliser dans lexercice prcdent, un peu comme monsieur Jourdain faisait de la prose, sans le savoir. Il soppose dans sa construction et dans son utilisation au mode dutilisation traditionnel de ces logiciels, avec des feuilles de calculs (composes de lignes, de colonnes et de formules dans tous les sens) regroupes en classeurs que vous pratiquez coup sr. Par exprience, trs peu daficionados du tableur connaissent et utilisent les tableurs en mode liste de donnes. Leur principe de base est, au lieu dclater linformation dans diffrents feuilles et classeurs, de tout regrouper sur une seule feuille en un seul tableau. Voyons les avantages de ces listes de donnes par rapport lutilisation classique du tableur. Il nest pas ncessaire dexprimenter les manipulations prsentes dans cette section, elles ne vous sont proposes qu titre dillustration. Leur tude dtaille au travers dun cas pratique fera lobjet des chapitres 2 4.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
sentant pour chaque zone et pour chaque gamme de produits, priode par priode. Pour le reste, il ne veut rien entendre de nos contraintes informatiques. nous de nous dbrouiller. Nous avons ici traiter une information selon quatre axes danalyse (quatre dimensions) : le reprsentant : la zone ; la gamme de produits (que nous appellerons plus simplement produit) ; et enfin la priode. De plus, linformation fournie devra bien videmment tre : fiable, cest bien le moins que lon puisse demander ; disponible rapidement : des statistiques mensuelles exactes mais avec trois mois de retard ne servent pas grand chose ; volutive et conomique : il nest pas question de passer tout notre temps grer ces statistiques, Eddy a dautres projets nous confier par la suite.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 111
Une structure dorganisation traditionnelle (une feuille par priode, un classeur par reprsentant)
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous pouvons par exemple choisir une organisation de nos donnes selon le schma de la figure 111 : un classeur par reprsentant ; autant de feuilles que de priodes ; les zones en colonnes et les produits en ligne de chaque feuille (figure 112).
Figure 112
La feuille de calcul (Zone en colonne et Produit en ligne) correspondant lorganisation feuille-classeur de la figure 111
Cette solution tableur feuille-classeur oblige disperser linformation dans de multiples feuilles de calcul qui, mme si elles sont toutes bases sur le mme schma, sont toutes indpendantes les unes des autres. Ceci prsente au moins les deux dfauts rdhibitoires suivants : Elle oblige un choix dorganisation des donnes qui ne pourra tre modifi. Elle ne pourra pas suivre lvolution de la structure et des besoins de notre entreprise. Pourquoi ?
11
DExcel Access
Par contre, si nous prfrons visualiser les ventes par produit et priode pour un reprsentant et une zone donns, il vaudra mieux opter pour la figure 113. Nous en sommes donc rduits un choix dans lequel, objectivement, aucune solution ne simpose par rapport une autre, dautant que nous ne serons jamais certains davoir bien compris ce quEddy avait demand, ni mme quil ne changera pas davis...
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
12
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Figure 116 Le mme tat que la figure 115, mais pour la zone Sud
13
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Avec une organisation du type de la figure 111 ou 113 (un classeur par reprsentant), il suffirait alors de rajouter un autre classeur pour ce reprsentant. On se serait alors relativement bien sorti daffaire. Encore que... Imaginons que dans ce cas nous ayons cr un classeur de consolidation des ventes, tous reprsentants confondus. Lajout dun nouveau classeur correspondant ce nouveau reprsentant nous aurait oblig modifier toutes les formules de consolidation en y intgrant le nouveau reprsentant Si, par contre, nous avions choisi dintgrer la dimension Reprsentant en ligne ou en colonne de nos feuilles de calcul, la seule solution aurait alors t de prendre notre courage deux mains et dinsrer dans tous les classeurs et dans toutes leurs feuilles soit une ligne, soit une colonne pour le nouveau reprsentant... Bien videmment, il aurait galement fallu reprendre toutes les formules... Ces deux solutions ne sont pas satisfaisantes : elles sont toutes deux trs lourdes et difficilement adaptatives. Par contre, en mode liste de donnes, il suffit de saisir le nom du nouveau reprsentant pour quautomatiquement il soit pris en compte dans les tats avec bien videmment toutes les formules mises jour. La figure 117 en fournit la preuve.
Figure 117
14
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
15
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
SOMMAIRE
B Dfinitions pralables
Nous allons ici apprendre construire une liste de donnes scurise sous tableur et comment une mise en forme spcifique permet une analyse efficace.
B Bien structurer
une liste de donnes
B Liste de donnes
et base de donnes
B Rgles de validation,
message daide la saisie et message derreur B Mise en forme conditionnelle : isoler un lment, visualiser les 10 premiers lments, barre de donnes B Doublons
DExcel Access
Ce chapitre dbute vritablement ltude des bases de donnes simplifies que sont les listes de donnes sous tableur. Elle se poursuivra au cours des chapitres 3 et 4. Aprs quelques prcisions terminologiques, nous dcouvrirons dans ce chapitre les cinq rgles rgissant la structure de ces listes de donnes. Nous verrons ensuite comment le paramtrage de rgles de validation permet dassurer la conformit des donnes, simplifie le travail des oprateurs et acclre les traitements. Enfin, nous apprendrons isoler par quelques astuces visuelles et graphiques certains enregistrements parmi dautres.
Dfinitions pralables
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les bases de donnes utilisent un vocabulaire simple mais spcifique. Il est ncessaire de le matriser. Voyons-en ici les principaux termes.
on reprsente la base de donnes sous la forme dun tableau, les champs sont en gnral lists en premire ligne, en en-tte de colonne. Par exemple, notre cas pratique de planning dcole de commerce contenait trois champs : le groupe, la date et le crneau. Une base de donnes comprend autant de champs que lon souhaite, on peut en ajouter ou en supprimer volont. Toutefois, une fois que les champs ncessaires ont t crs, en dautres termes une fois que la structure de la base est arrte, le nombre et le nom des champs nont plus tre modifis. Dans notre planning dcole de commerce, les trois champs Groupe, Date et Crneau sont ncessaires et suffisants, inutile den ajouter mais interdiction den enlever.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
19
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
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 galement 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 parlera de la vente n 8. Cest plus simple, plus prcis et plus rapide.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
21
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Si, par mgarde, notre liste de donnes contient soit une ligne soit une colonne intgralement vierge, le tableur risque de ne travailler que sur une partie de la liste de donnes et doublier en quelque sorte tout ce qui aura t saisi de lautre ct de cette dangereuse ligne ou colonne vierge. Prenons lexemple ( ne pas suivre) de la figure 22. Cette liste de donnes comprend une ligne vide, la 18. Quand nous utiliserons les fonctions de liste de donnes, Excel ou Calc risquent de ne travailler que sur une partie de la liste, soit de A1 F17, soit de A19 F28, en omettant donc une partie de la liste.
Figure 22
22
ceci il existe un remde imparable : crer une liste de donnes compacte, 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 formule de totalisation.
Groupe Eyrolles, 2008
23
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
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.
Par exemple, dans notre exercice, nous savons quil nexiste que quatre reprsentants, Hlne, Sophie, Jean et Pierre. Faire une faute dorthographe la saisie sur un nom, par exemple Sofie ou mme Helene , sans accent, aura pour effet de crer un reprsentant supplmentaire quExcel et Calc traiteront comme un reprsentant part entire, diffrent, sans faire le lien avec Sophie ou Hlne. Ce sera encore pire si on saisit dans le champ Reprsentant le nom dun produit, ou encore si on saisit la date de la vente dans la colonne Montant. Dans tous les cas, le rsultat sera inexploitable. Lide gnrale des rgles de validation est de rendre impossible ces erreurs de saisie et donc de garantir la conformit des donnes avec ce qui est attendu afin dassurer le bon fonctionnement de la liste de donnes, de mnager les nerfs des oprateurs de saisie (qui savent ds lors que toute erreur grossire de saisie est impossible) et donc au bout du compte de simplifier le travail. Attention : les rgles de validation ninterdisent bien videmment que les erreurs de conformit de donnes par rapport des rgles. Elles vont interdire par exemple de saisir un nombre la place dun texte, de saisir le nom dun reprsentant qui nexiste pas, etc. mais certainement pas les erreurs de saisie non logiques comme par exemple daffecter Pierre une vente de Jean. Do la ncessit, malgr la prsence de toutes les rgles de validation possibles et imaginables, de procder une contrle minutieux de lexactitude de la saisie (et non plus de leur simple cohrence) ! Grce aux rgles de validation, vous allez pouvoir dfinir, pour chaque champ dont vous voulez contrler lentre : Les rgles de validation proprement dites, cest--dire les critres qui rendront la saisie valide ou non. Les messages daide la saisie pour aider les oprateurs dans leur saisie. Les messages et les actions effectuer en cas de non conformit avec les rgles de validation. 24
Groupe Eyrolles, 2008
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 correspond en gnral la colonne entire du champ considr, lexclusion de son en-tte qui contient non une entre denregistrement mais le nom du champ. 2 Appelez la bote de dialogue Validation des donnes par : 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 24
Le tableau ci dessous reprend lessentiel des options proposes par Excel 2007 :
Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel) Nom de loption de la bote de dialogue Validation des donnes Effet
Aucun contrle nest effectu. Option par dfaut. Limite la saisie un nombre entier (avec possibilit de dfinir des bornes). Limite la saisie un nombre dcimal (avec possibilit de dfinir des bornes), sans toutefois pouvoir dfinir le nombre de dcimales autorises. Limite la saisie aux valeurs dune liste.
25
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel) (suite) Nom de loption de la bote de dialogue Validation des donnes Effet
Limite la saisie aux entres sous forme de date (JJ/MM/AA ou autre) avec la possibilit de fixer des bornes. Limite la saisie aux entres sous forme dheure (MM:SS ou autre) avec la possibilit de fixer des bornes. Permet de limiter la longueur dun champ texte pour viter les listes de donnes trop volumineuses (limiter un champ Prnom 10 caractres interdira de saisir Jean-Christophe). Pour limiter les entres la valeur dune formule comme expos ci dessus. Si coch, permet de ne pas appliquer la rgle de validation quand la cellule est vide. Comme les rgles de validation sappliquent la colonne entire, il faut bien videmment cocher cette case systmatiquement (sinon toutes les cellules vides en attente de saisie seront rejetes).
Figure 25
26
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 26 Le paramtrage dune liste de validation (de H1 H4) pour le champ Reprsentant
Il est maintenant impossible loprateur de saisir une valeur absente de la liste paramtre ci-dessus.
27
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Voici comment faire dans notre liste de donnes (figure 27) : 1 Slectionnez la colonne du champ concern, ici le champ Date de notre liste, sauf la cellule E1 contenant le nom du champ. 2 Appelez la bote de dialogue Validation des donnes et choisissez loption Personnalis. 3 Saisissez dans la zone Formule la formule <=Maintenant(). 4 Validez.
Figure 27
ALLER PLUS LOIN Crer une rgle de validation dans une simple feuille de calcul
Les rgles de validation ne sont pas rserves aux seules listes de donnes, elles peuvent rendre galement de grands services dans une simple feuille de calcul. Par exemple, vous souhaitez contrler que la somme de deux cellules ne dpasse pas un certaine valeur. Il suffit alors de paramtrer sur ces deux cellules une rgle de validation paramtre. La figure 28 illustre cette possibilit. La rgle de validation est applique aux deux cellules B1 et B2 et contrle que la somme de ces deux cellules ne dpasse pas 10 000 .
Figure 28
Avec les cellules B1 et B2 slectionnes, cette rgle de validation contrle que la somme des deux cellules nexcde pas 10 000.
28
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
29
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
quil ne la saisisse, pour viter ainsi au gendarme de verbaliser et de bloquer le trafic. La donne sera alors saisie de manire conforme et donc directement valide. Le gain de temps et dnervement sera apprciable : un homme averti en vaut deux ! Prenons un exemple. Les oprateurs ne savent jamais trop comment saisir un champ Date : 01/09, 1er septembre, 1er sept. ou encore langlo-saxonne 09/01. La figure 210 dtaille le paramtrage de la bote de dialogue permettant laffichage du message daide la saisie de la figure 211 : 1 Slectionnez la colonne souhaite (sauf la premire cellule comme nous lavons vu). 2 Ouvrez longlet Message de saisie de la bote de dialogue Validation
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
des donnes.
Le message daide la saisie apparat ds lors que la cellule concerne est slectionne.
Figure 210
Le paramtrage dun message de saisie pour inviter saisir la date sous la forme JJ/MM/AA
Figure 211
Si, malgr le message daide la saisie, loprateur se trompe, la rgle de validation rejette lentre et affiche par dfaut un message pas forcment trs clair, figure 212.
Figure 212
Le message par dfaut de non conformit avec les rgles de validation nest pas toujours trs clair pour les non initis...
30
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Utilisez donc la possibilit qui vous est donn de paramtrer un message derreur personnalis, en cliquant dans longlet Alerte derreur de la bote de dialogue Validation des donnes. Cette bote de dialogue fonctionne exactement comme celle de message daide la saisie.
Entier Suprieur 0 Liste (Hlne, Sophie, Jean, Pierre) Liste (Nord, Sud, RP)
Entrez un nombre entier de 1 N Entrez le nom dun reprsentant existant Entrez une zone existante Entrez un produit existant Entrez une date de format "12-janv-08" Entrez le montant de la vente avec les centimes
Liste (Cordes, Sangles, Mousquetons) Nom du produit Date De format 12-janv-08 Dcimal 12-janv-08 par exemple Montant de la vente avec les centimes
* Le champ Numro ne sera pas bien gr par ces rgles de validation. En particulier, 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
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 213
Il est trs facile dy accder. partir dune liste de donnes, il suffit de slectionner le bouton Mise en forme conditionnelle du groupe Style dans longlet Accueil. Vous avez ds lors le choix dutiliser diffrentes options de mise en forme conditionnelle. Toutes sont intressantes, mais nous avons choisi de dvelopper particulirement les points suivants : Isoler un lment dans une srie. 32
Groupe Eyrolles, 2008
Identifier les 10 premiers (ou derniers) nombres dune srie. valuer la place de chaque lment dune srie par rapport lensemble de cette srie.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 214
Figure 215
33
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
Figure 216
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 217
Remarquez aussi sur la figure 216 la possibilit de paramtrer le nombre de valeurs isoler (par dfaut, 10). Remarquez encore que longlet Accueil, groupe Style, bouton Mise en forme conditionnelle, option Rgles des valeurs plus/moins leves permet galement, la place de 10 valeurs les plus leves, de rechercher : les 10 % les plus leves ; les 10 valeurs les moins leves ; les 10% les moins leves ; Les valeurs suprieures ou infrieures la moyenne.
34
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). 2 Slectionnez dans longlet Accueil, groupe Style, le bouton Mise en forme conditionnelle, puis Rgles des valeurs plus/moins leves et enfin
Autres rgles.
Attention : Excel va proposer par dfaut la formule =$F$2>=9000, il faut la modifier manuellement en enlevant les symboles de rfrence absolue que sont les $. 5 Cliquez sur le bouton Format et choisissez le format souhait (ici, un double soulignement), validez. 6 La bote de dialogue de la figure 218 apparat, il ne reste plus qu 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
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
DFINITION Doublons
La notion de doublon intervient souvent en matire de base de donnes et ncessite quelques claircissements. Un doublon, stricto sensu, consiste en la rptition de la mme donne dans la mme liste de donnes. Il existe deux types de doublons : les doublons sur un champ et les doublons vritables sur lensemble dun enregistrement. Il y a doublon vritable (ou doublon tout court) quand le mme enregistrement est intgralement rpt une ou plusieurs fois dans la mme base. Cest bien videmment le plus souvent une erreur qui peut entraner des consquences graves. Par exemple, si vous tes prsent deux fois dans la base des lecteurs de votre commune, vous pourrez voter deux fois. Sauf exception, une base de donnes ne doit pas avoir de doublon vritable . Un doublon sur un champ particulier signifie que la mme valeur est rpte au moins deux fois pour le mme champ, sans pour autant que les enregistrements correspondants soient entirement gaux. Par exemple, si deux frres sinscrivent la mme cole, il y aura dans la liste des lves un doublon sur le champ Nom, puisque le mme nom de famille apparatra deux fois ; il ne sagira pas dans ce cas dun doublon vritable , puisquils auront certainement des prnoms diffrents. Dans toute liste de donnes, il est trs vivement conseill, pour ne pas dire obligatoire, davoir toujours au moins un champ qui naccepte pas de doublon. Dans notre cas pratique, il sagit du champ Numero. Ce champ servira identifier clairement et sans ambigut un enregistrement parmi les autres : il ny aura ainsi quun enregistrement portant le numro 1, un seul avec le 2, etc.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Il existe des variantes aux barres de donnes : jeux de couleur et jeux dicnes (par exemple les feux tricolores). Les graphes barres sont alors remplacs par des nuances de couleur ou des icnes significatifs, par exemple des feux tricolores rouges pour les valeurs extrmes et verts pour les valeurs mdianes. Le but est toujours le mme, visualiser la place de chaque lment dans la srie, seule laccroche visuelle change. Les gots et les couleurs ne se discutant pas, vous de trouver loption qui vous convient le mieux. Ceci dit, faites quand mme attention aux superbes effets de couleur imprims ou photocopis en noir et blanc : faites des tests !
Groupe Eyrolles, 2008
36
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 219
Des barres de couleur pour visualiser la place de chaque donne dans une srie
37
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
DExcel Access
(police verte souligne) et validez. Nous obtenons maintenant exactement limage de la figure 220 ; la zone Aperu du format utiliser... est en vert soulign ainsi que nous lavions demand.
Figure 220
Pour appeler laffichage de la seconde condition (en rouge barr si infrieure 2 500 ), il faut cliquer sur le bouton Ajouter >> et recommencer la procdure prcdente avec les nouveaux paramtres, figure 221.
Figure 221
38
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Synthse : btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Les listes de donnes sont des bases de donnes simplifies ralises sous un tableur. Elles rpondent, comme les bases de donnes relationnelles, des impratifs de structure et de contrle. En retour, elles proposent des outils simples danalyse des donnes. En matire de structure, nous avons dcrit les cinq rgles qui prsident llaboration dune liste de donnes efficace : les noms de champ en premire ligne ; les enregistrements les uns au-dessous des autres ; ni ligne ni colonne vide ; pas de mise en forme inutile ; pas de formule. Il est essentiel de contrler la validit des donnes entres dans la liste de donnes afin den assurer la cohrence et de simplifier son exploitation. On peut, par exemple, imposer le format de saisie des dates ou interdire la saisie de chanes de caractres trop longues. Excel et Calc proposent cet effet une large palette de rgles de validation, de messages daide la saisie et de messages derreur indispensables utiliser ds la cration de la liste de donnes. Enfin Excel 2007, et dans une moindre mesure Excel 2003 et Calc, possdent des outils de mise en forme conditionnelle permettant de reprer visuellement les caractristiques de certains enregistrements et leur place par rapport lensemble de la liste, par exemple en figurant les donnes positives en vert et les ngatives en rouge. Nous pouvons donc maintenant tudier, dans le chapitre suivant, les outils de tri et de slection denregistrement de listes de donnes.
39
2 Btir une liste de donnes efficace sous tableur : structure, rgles de validation et mise en forme
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
Maintenant que nous savons construire une liste de donnes sous tableur, nous allons apprendre la trier dans tous les sens et y rechercher certains enregistrements en fonction de critres personnaliss.
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.).
Dans le chapitre 2, nous avons appris btir une liste de donnes, en contrler la saisie et en effectuer des analyses visuelles sommaires. Nous abordons prsent les fonctions spcifiques aux liste de donnes qui vont nous permettre de trier et de slectionner des enregistrements Nous poursuivrons leur tude au chapitre suivant avec les sous totaux et les analyses statistiques dtailles. Ces fonctions sont la fois trs simples dutilisation et trs performantes condition de savoir bien les utiliser. Bien entendu, la liste de donnes doit rpondre aux cinq rgles exposes dans le chapitre prcdent, et toutes les rgles de validation de donnes doivent avoir t paramtres. Mais il faut encore prendre une prcaution : avant daccder aux fonctions de liste de donnes, il est indispensable de slectionner une et une seule cellule de la liste de donnes. Si vous respectez ces rgles, Excel et Calc vont comprendre que vous souhaitez en fait agir sur lensemble de la liste, do limportance de la rgle qui veut quil ny ait ni ligne ni colonne vierge dans la liste de donnes (voir figure 31 gauche).
Figure 31 Vous devez cliquer sur une et une seule cellule de la liste pour accder aux fonctions de liste de donnes.
42
Si, par mgarde, vous slectionnez une partie seulement de la liste de donnes, Excel ou Calc risquent (selon les versions et la configuration de la liste) de nagir que sur cette zone spcifiquement dsigne, ce qui serait problmatique (voir figure 31 droite). Et si, cas extrme, vous ne cliquez dans aucune cellule de la liste, ni Excel ni Calc ne trouveront de donnes tudier et ils afficheront donc un message derreur. Rcapitulons ces rgles essentielles pour utiliser sereinement des fonctions de liste de donnes : Btir une liste de donnes conforme aux cinq rgles. Paramtrer les rgles de validation ncessaires. Slectionner une et une seule cellule de la liste de donnes. Accder aux fonctions de liste de donnes.
43
DExcel Access
Figure 34
Lordre croissant (alphabtique) ou dcroissant peut ne pas convenir. Imaginez par exemple une liste de donnes contenant un champ Jour. Trier selon ce champ par ordre croissant nest gure satisfaisant car vous obtiendrez le rsultat suivant : dimanche, jeudi, lundi, mardi, mercredi, samedi, vendredi. Quand au tri par ordre dcroissant, il ne vaudra gure mieux ! Excel et Calc proposent, pour contourner cette difficult, de crer des listes personnalises sur lesquelles nous pourrons effectuer tout tri notre guise. Illustrons le mode opratoire par un exemple. Nous souhaitons trier notre liste de donnes selon le champ Reprsentant, non plus simplement par ordre alphabtique croissant mais en mettant les dames en premier, cest--dire dans lordre suivant : Hlne, Sophie, Jean et Pierre. Pour ce faire, il va nous falloir crer la liste personnalise selon laquelle le tri sera effectu puis raliser le tri proprement dit. Mais avant de commencer ces oprations, attardons-nous un peu sur la scurit de nos donnes. En effet, nous avons pass beaucoup de temps btir notre liste de donnes et y saisir les informations, il serait trs dommage quune fausse manipulation la dtruise ou mme simplement laltre. En consquence, et mme si toutes les manipulations de liste de donnes sont normalement sres, il faut considrer lventualit dune fausse manipulation qui peut obliger, dans le pire des cas, recommencer le travail depuis le dbut. Nous ne saurions donc trop vous conseiller, avant dexprimenter de nouvelles fonctions ou deffectuer des oprations pour lesquelles un chec serait grave (par exemple un tri sur la liste de donnes des clients de notre entreprise), de raliser une copie de la liste de donnes. Une fois le travail termin, vrifiez-en les rsultats : en cas derreur, vous disposerez de la copie de sauvegarde pour rcuprer les donnes initiales. Ouf !
44
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
Remarquez que vous pouvez aussi utiliser des zones dune feuille dj existante pour crer votre liste (en bas de la bote de dialogue des figures 35 et 36).
PRODUCTIVIT Utilisez les listes personnalises pour acclrer vos saisies
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 au-dessous ou ct pour quExcel ou Calc complte automatiquement par les entres de votre liste. La figure 37 montre comment (ici sous Calc) la recopie laide de la poigne de recopie du premier lment de 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.
Maintenant que la liste personnalise est cre, nous pouvons paramtrer notre tri sur le champ Reprsentant selon lordre de cette liste. Avec Excel 2007 : 1 Appelez la bote de dialogue Trier (allez dans longlet Donnes puis, dans le groupe Trier et filtrer, cliquez sur le bouton Trier). 3 Reproduisez le paramtrage de la figure 38 et slectionnez la liste que vous souhaitez, par exemple notre nouvelle liste.
4 Validez, la figure 39 apparat. 5 Validez une deuxime fois pour obtenir le rsultat dfinitif de notre
46
Figure 39
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 310
47
DExcel Access
Cette demande ncessite quatre tris successifs. En voici le mode opratoire avec Excel 2007 : 1 Appelez la bote de dialogue Trier (allez dans longlet Donnes, puis dans le groupe Trier et filtrer et cliquez sur le bouton Trier). 2 Entrez le premier tri effectuer conformment la figure 38. 3 Cliquez sur le bouton Ajouter un niveau, une nouvelle ligne de tri apparat au-dessous de la premire ligne. Il suffit de la paramtrer son tour comme nous venons de le voir. 4 Continuez cette opration jusqu obtenir laffichage de la figure 311, puis validez.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 311
Quatre tris successifs, le premier selon une liste personnalise et le dernier en sens chronologique 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
49
DExcel Access
Pour afficher les fonctions de filtre assurez vous dabord, comme dhabitude, de navoir slectionn quune et une seule cellule de la liste de donnes. 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.
Dans cette section, nous allons apprendre comment appliquer un filtre sur un ou plusieurs champs et dsactiver un filtre actif. Vous matriserez ainsi les bases de la manipulation des filtres.
Dans notre cas pratique, filtrer sur un seul champ permet de nafficher par exemple que les ventes ralises par un reprsentant. Il suffit de slectionner la valeur souhaite dans la liste droulante du filtre (figure 315) et de valider. Il est possible de slectionner plusieurs valeurs pour le mme champ. Par exemple, le paramtrage de la figure 316 permet dafficher toutes les ventes effectues en province, Nord et Sud runis. Sur la figure 317, la case Slectionner tout permet de demander laffichage de tous les enregistrements.
correspondent aux diffrentes valeurs que peut prendre le champ (ici le champ Reprsentant).
Figure 317 La case Slectionner tout ractive toutes les entres dun champ.
50
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Dsactiver un filtre
Le danger dans lutilisation des filtres est den appliquer un sur un champ en oubliant quun autre filtre est actif sur un autre champ. Si cest le cas, comme nous venons de le voir, leurs effets se combinent.
Lactivation dun filtre nefface bien videmment aucun enregistrement de la liste. Il ne fait que les masquer temporairement et les raffiche ds quil est dsactiv.
51
DExcel Access
Pour dsactiver un filtre, cliquez sur la flche de liste droulante de filtre, puis slectionnez : Slectionner tout sous Excel 2007 ; Tous sous Excel 2003 (figure 320) ; Tout avec Calc. Il est aussi possible de dsactiver les fonctions de filtre : Sous Excel 2007 : dans longlet Donnes, allez dans le groupe Trier et filtrer, dcochez le bouton Filtrer. Avec Excel 2003 : dans le menu Donnes, choisissez loption Filtrer puis dcochez Filtre automatique. Avec Calc : allez dans le menu Donnes, puis choisissez loption Filtre et dcochez Autofiltre.
Figure 320
52
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 321
Prend en compte la ou les premires lettres du mot (P slectionnera Pierre, S Sophie, etc.) Prend en compte la ou les dernires lettres du mot (E slectionnera Pierre, Hlne et Sophie, mais non Jean) Prend en compte la prsence dun ou de plusieurs lettres dans le mot (X ne slectionnera rien, aucun nom de reprsentant ne contenant la lettre X) Prend en compte labsence dune ou de plusieurs lettres dans le mot (X slectionnera tous les enregistrements)
53
DExcel Access
On accde aux filtres numriques en choisissant loption Filtres numriques de la liste droulante des filtres. Il est possible de choisir parmi plusieurs options danalyse en fonction du problme rsoudre : suprieur , infrieur , 10 premiers, au-dessus ou en dessous de la moyenne, etc. (figure 323). Dans la figure 324, nous avons choisi de fournir Eddy la liste des ventes suprieures la moyenne.
Figure 323
Figure 324
Les filtres volus dExcel 2007 appliqus des dates Ds quune colonne de liste de donnes contient des dates, Excel 2007 le reconnat et propose loption Filtres chronologiques. Ces filtres proposent deffectuer des slections selon des critres varis : hier, demain, aujourdhui, la semaine prochaine, lanne prochaine, etc. Leur utilisation ne pose pas de problme particulier, il suffit de choisir loption souhaite. 54
Groupe Eyrolles, 2008
Partons dun exemple simple. Nous voulons prsenter Eddy ltat des ventes pour un reprsentant et une zone donns : les ventes de Jean pour le Sud. Paramtrer la zone de critres La premire opration va consister crer une plage indpendante de cellules dans laquelle Excel ou Calc vont lire les conditions du filtre. Le principe est simple : crer une mini-liste de donnes, ct de notre liste principale, contenant les noms des champs filtrer en premire ligne et les valeurs souhaites pour chaque champ au-dessous, en prenant bien la prcaution de sparer ces deux listes de donnes par une colonne vide afin dviter quelles ne se mlangent (figure 325).
Figure 325
La zone de critres dun filtre labor, ici pour deux champs et une valeur pour chaque champ. Remarquez que cette zone est spare de la liste de donnes par une colonne vide.
Paramtrer et utiliser le filtre volu Une fois le filtre cr, il ne reste plus qu lutiliser. Voici la mthodologie suivre pour notre exercice, en supposant que la liste de donnes soit saisie dans la plage (groupe de cellules) A1 F31 et la zone de critres dans la plage H1 I2, comme dans la figure 325. 1 Slectionnez une et une seule cellule de la liste. 2 Appelez la bote de dialogue Filtre avanc en vous rendant dans longlet Donnes, puis dans le groupe Trier et filtrer et en cliquant sur le bouton Avanc pour Excel 2007 (dans le menu Donnes, options Filtrer puis Filtre labor sous Excel 2003 ou encore dans le menu Donnes, options Filtre puis Filtre Spcial sous Calc). Normalement, la bote de dialogue doit montrer, dans la zone Plages, la zone contenant la liste de donnes, dans notre exemple de A1 F31 (modifiez si ncessaire).
Groupe Eyrolles, 2008
55
DExcel Access
H1 I2 qui contient nos fameux critres. Il ne vous reste plus alors qu valider (figure 326). Tout lintrt de ce type de filtre est de combiner rapidement autant de filtres que souhaits en saisissant dans la zone de critres tous les champs cte--cte et toutes les valeurs acceptables les unes au-dessous des autres. Vous gagnez ainsi un temps apprciable par rapport aux filtres traditionnels. La seule condition est que la plage de critres ainsi dfinie soit compacte, sans ligne ou colonne vide et bien spare de la liste de donnes. Lexemple de la figure 327 permet de filtrer toutes les ventes de cordes de Jean ou dHlne suprieures 5 000 .
ALLER PLUS LOIN Les combinaisons ET/OU dans les filtres volus
Lutilisation des combinaisons de critres ET/OU recle quelques piges. Dans la figure 327, la zone de critres comprend deux lignes : une pour Hlne et lautre pour Jean ; les deux autres conditions (cordes et >5000) sont rappeles sur chacune de ces lignes. La signification 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). Reportez-vous page 51 pour des prcisions complmentaires sur ET et OU.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
labor permettant dobtenir les ventes de cordes dHlne ou de Jean suprieures 5 000 . Remarquez la rptition des critres Cordes et >5000 sur les deux lignes.
Filtrer les donnes vers un nouvel emplacement Les filtres que nous avons utiliss jusqu prsent procdaient par masquage 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. Lavantage de cette mthode est que la liste de donnes reste intacte, le filtre procdant par copie de lignes et non par masquage. Annuler un filtre volu Le plus simple pour annuler un filtre volu est deffacer totalement la zone de critres dans la bote de dialogue de la figure 328 ou daller dans le menu Donnes, options Filtrer puis Afficher tout.
les ventes de cordes dHlne suprieures 5 000 et toutes les ventes de Jean.
56
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 330 Lquivalent sous Calc du filtre Excel de la figure 326 Figure 329 Les filtres standards de Calc
57
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
SOMMAIRE
B Totaux et sous-totaux
Dans ce chapitre, nous allons apprendre utiliser les fonctions les plus tonnantes des listes de donnes sous tableur, qui vont nous permettre deffectuer toute les analyses statistiques de nos donnes sans avoir entrer une seule formule !
B Tableau crois dynamique TCD B Pilote de donnes PDD B Graphique crois dynamique
DExcel Access
Tout notre travail jusqu prsent en matire de liste de donnes tait de lextraction dinformation : nous navons encore rien cr au sens premier du terme. Nous avons en particulier consciencieusement list nos enregistrements les uns au-dessous des autres en notant chaque fois le montant de la vente mais nous nen connaissons mme pas le montant total et encore moins le total par reprsentant. Ce qui est pour le moins dommage. Cest l quinterviennent les dernires fonctions spcifiques aux listes de donnes que nous allons tudier : les sous-totaux et les tableaux croiss dynamiques. Autant dire tout de suite que nous avons gard le meilleur pour la fin et que vous ne serez pas du, tant les caractristiques de ces fonctions sont tonnantes : trs facilement et trs rapidement, sans modifier la liste de donnes et sans aucun risque derreur, vous serez capable de produire des synthses multidimensionnelles de vos donnes (sous-totaux par reprsentant, synthse des ventes par reprsentant et par zone, graphique des ventes par produit et par zone, etc.). Les fonctions prsentent lnorme avantage de vous faire gagner du temps et de vous librer du stress inhrent la ralisation de tableaux abscons, remplis de formules compliques, afin de pouvoir prendre du recul, analyser les donnes et rflchir.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
60
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 41 Informations fournies par Excel 2007 sur les cellules slectionnes (F25 F31).
61
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
indiqu dans la figure 42. Aprs validation, vous obtenez laffichage de la figure 43 qui intgre maintenant nos fameux sous-totaux. Remarquez dans la bote de dialogue de la figure 42, la case cocher Synthse sous les donnes. Elle permet de gnrer le total gnral de bas de liste.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 42 Linsertion dun sous-total : chaque changement de Reprsentant, utilisons la fonction Somme pour le champ Montant et ajoutons une Synthse sous les donnes. Lcran est ici un cran Excel 2007/2003, la version Calc est trs semblable.
BOGUE ? Abandonnez la Mise en forme sous forme de tableau sous Excel 2007 pour les sous-totaux
La version dOffice 2007 qui a servi cet ouvrage comporte la bizzarerie suivante : il est impossible daccder aux fonctions de sous-total exposes ici quand la mise en forme automatique Mise en forme sous forme de tableau est applique la liste de donnes. Est-ce fait exprs (on ne voit pas bien pourquoi dailleurs), ou est-ce un bogue qui sera rectifi ? En tout cas, si vous ne pouvez accder ces fonctions de sous-total, enlevez cette mise en forme automatique et tout devrait rentrer dans lordre. Figure 43 Les sous-totaux sont affichs. Remarquez les affichages spcifiques de sous-total en marge gauche.
62
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 44 La liste de donnes est trie par Numro. Un sous-total a donc t insr
63
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous allons ainsi pouvoir fournir : un rcapitulatif des ventes par reprsentant Eddy (en cliquant sur le 2) et le dtail de chacun (en cliquant sur le bouton 3) ; le dtail des ventes de chaque reprsentant au reprsentant concern, avec en prime le total des ventes des autres.
64
Figure 46
Les outils spcifiques pour dvelopper ou rduire la demande chaque niveau de sous-total
Figure 47
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 48
Figure 49
Figure 410
65
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Exercez-vous : pouvez-vous dcomposer les oprations ncessaires pour obtenir laffichage de la figure 411 ?
Figure 411
Solution : aprs avoir insr les sous-totaux, il suffit de cliquer sur le bouton 2 pour nobtenir plus que les sous-totaux par reprsentant, puis sur le bouton + de Pierre pour dvelopper son dtail.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
66
Reprsentant puis par Zone, il faut pralablement trier par Reprsentant puis par Zone. 3 Effectuez la procdure dinsertion de sous-totaux imbriqus. Les deux premires tapes de cette procdure (suppression de soustotaux 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 fonction du nombre de niveaux de sous-totaux insrer. Le pige dans cette procdure dinsertion de sous totaux imbriqus est de cocher la case Remplacer les sous-totaux existants de la figure 412. Dans cet exemple, a aurait leffet de remplacer la totalisation dj effectue (par Reprsentant) par la nouvelle (par Zone). Vous nobtiendriez alors quun seul niveau de sous-totalisation (par Zone) et non deux comme souhait.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 412
Linsertion sous Excel dun niveau de sous-totalisation par Zone. Remarquez que la case Remplacer les sous-totaux existants nest pas coche.
Figure 413
67
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
La figure 413 dtaille ce que nous obtenons aprs avoir inser les soustotaux par reprsentant puis par zone. Lorganisation des icnes spcifiques de sous-total reste globalement identique, mais sest singulirement complique. Remarquez par exemple lapparition dun nouveau bouton, le 4, ct des 1, 2 et 3 dj connus. Cest normal, puisque nous avons ajout un niveau supplmentaire de dveloppement/rduction : le 1 sert nafficher que le total gnral ; le 2 affiche en plus les sous-totaux par reprsentant ; 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 niveaux de sous totaux, mme si elle est exacte, nest pas trs lisible. Gageons que nous ne lutiliserons que pour fournir chaque reprsentant son dtail personnel avec le rappel du total de ses confrres (et nanmoins concurrents) comme sur la figure 414.
Figure 414
Le dtail par zone pour un reprsentant (Jean) et le rappel du total des autres reprsentants
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 415
Une partie des fonctions disponibles pour les sous-totaux avec Excel
Si vous souhaitez obtenir la statistique de la figure 416 qui ne manquera pas dintresser Eddy (la moyenne du montant de chaque vente par produit, tout reprsentant, zone et date confondus), il vous suffit dinsrer un sous-total par Reprsentant en utilisant la fonction Moyenne sur le champ Vente comme lindique la figure 417.
Figure 416
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
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Le tableau ci dessous rsume les principales options disponibles pour les sous-totaux.
Tableau 41 Les fonctions de sous-total disponibles sous Excel 2007 Fonction Commentaire
Compte le nombre denregistrements Renvoie la moyenne des valeurs Renvoie la valeur maximum Renvoie la valeur minimum Renvoie le rsultat de la multiplication des valeurs Compte le nombre denregistrements numriques Renvoie lcart type dune population entire Renvoie lcart type en se basant sur un chantillon dune population Renvoie la variance dune population entire 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 rfrencements dans les en-ttes et pieds de page.
70
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 soustotaux 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 419
Trois niveaux dimbrication de sous-totaux ne sont gure lisibles, mme si ici seul le dtail de Sophie est affich.
Les tableaux croiss dynamiques (Excel) ou les pilotes de donnes (Calc) que nous allons tudier dans cette section contournent efficacement cette difficult et vont nous permettre de crer des tableaux de prsentation de nos donnes plusieurs entres avec une grande simplicit. Un tableau crois dynamique se prsente en fait comme un tableau de feuille de calcul, avec des lignes des colonnes et des donnes. Par exemple, il sera possible dy faire figurer les ventes ralises par Zone (en colonne) et par Produit (en ligne). Ou linverse. Ou encore le montant de la vente la plus importante par Reprsentant et par Produit.
71
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
En pratique, la fonction Sous-total est idale pour insrer un (voire deux) niveau de sous-total, par exemple par Reprsentant puis par Zone. Mais, ds quil faudra insrer un troisime (voire un deuxime) niveau de soustotal, nous vous conseillons plutt dutiliser le tableau crois dynamique. Prcisons, avant de dmarrer cette tude, que lexpression tableau crois dynamique est une terminologie Excel ; Calc utilise le terme pilote de donnes. Par souci de clart du discours, labrviation PDD (pour pilote de donnes) ne sera utilise que pour les utilisateurs de Calc. Lorsque nous nous adresserons la fois aux utilisateurs dExcel et de Calc, nous parlerons de TCD (pour tableau crois dynamique).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
TCD : la partie gauche est rserve au futur TCD ; la partie droite contient la zone rserve son paramtrage (celle qui nous intresse pour le moment). 4 partir de la zone Choisissez les champs inclure dans ce rapport, faites glisser les champs (figure 421) : Reprsentant dans la zone Filtre du rapport, afin de disposer dun TCD par reprsentant ;
Groupe Eyrolles, 2008
72
Zone dans la zone tiquettes de colonne, afin de lister les diffrentes 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 Somme de Montant quand nous lavons gliss dans la zone Valeurs. Cest en effet une totalisation que nous souhaitons le plus souvent effectuer. Comme pour la fonction de sous-total, dautres fonctions sont notre disposition, comme la moyenne, le nombre de valeurs, lcart-type, etc. 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 supprime sans risque, la liste de donnes en est indpendante.
TECHNIQUE
Afficher ou masquer lassistant TCD
Pour afficher ou masquer lassistant TCD : cliquez sur une cellule extrieure ce TCD pour masquer lassistant de la figure 421 ; cliquez dans le TCD pour le fait rapparaitre.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Figure 422
Le TCD termin : pour tous les reprsentants, la somme des ventes par zone et produit
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 donnes 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 contrler 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 apparence diffre lgrement de son homologue Excel 2007 de la figure 421 mais sa philosophie 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
Exploiter un TCD
Trs faciles paramtrer, les TCD sont en plus trs souples et aisment modifiables. Les champs affichs ne conviennent plus ? Il faut intervertir 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
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Nous allons par exemple tudier comment affiner ou modifier le TCD/ PDD de la figure 422 en : faisant varier la dimension filtre, celle prsente dans la zone Filtre du rapport de la figure 422, dans laquelle nous avons affich le champ reprsentant afin, par exemple, de nafficher les ventes que dun reprsentant particulier ; intervertissant lignes et colonnes ; insrant (ou modifiant) des champs ; visualisant le dtail dun lment ; utilisant dautres fonctions que lhabituelle Somme ; modifiant le format daffichage des nombres.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 425
Remarquons que le titre du tableau de la figure 426 nest pas trs significatif. Excel spcifie en haut du TCD : Reprsentant : Plusieurs lments. Cest exact, car la fois Hlne et Sophie y sont reprsentes. Mais cela manque de clart, il vaudra mieux le spcifier la main, par exemple en cellules C1:E1 (figure 427).
Figure 427
76
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 428
Ajouter un champ modifie immdiatement la structure du TCD. Remarquez lapparition dicnes de dveloppement ou de fermeture de niveaux de totalisation pour les reprsentants.
Visualiser le dtail dun lment Il est trs facile dobtenir le dtail des enregistrements qui composent un lment de synthse du TCD par un double clic sur llment choisi (remarquez qualors Excel en affiche le dtail sur une autre feuille). La figure 429 donne le dtail des ventes de cordes pour le Sud, obtenu par un double clic sur la cellule D5 du TCD de la figure 422.
CALC Pas de visualisation
du dtail dun lment
Cette fonction de dveloppement du dtail dun lment du PDD nest pas pas disponible sur Calc.
77
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Figure 429
Dtail dun lment du TCD sur une nouvelle feuille, ici les ventes de cordes pour le Sud.
CALC
Changer la formule utilise dans le PDD
Pour changer dans Calc la fonction utilise dans un PDD, faites un clic droit sur une cellule du PDD et slectionnez loption Activer. Lassistant Pilote de donnes de la figure 424 saffiche. Cliquez alors sur le bouton prsent dans la zone Champs de donnes (ici, Somme Montant) pour accder aux diffrentes fonctions disponibles.
Utiliser dautres fonctions que la Somme Exactement comme nous lavons vu avec les sous-totaux, les TCD permettent de raliser dautres synthses que de simples totalisations de valeurs numriques. Il suffit pour cela de slectionner une cellule du TCD l o sont effectus les calculs et, par un clic droit, de slectionner loption Paramtres des champs de valeur puis de slectionner, dans longlet Synthse par, la fonction souhaite. Nous retrouvons les fonctions des soustotaux, comme Moyenne, Max, Min, Nombre (pour compter le nombre dlments dune srie), cart type ou Variance (figure 431).
EXCEL 2003 Changer la formule utilise dans le TCD
Pour changer dans Excel 2003 la fonction utilise dans un TCD, il faut : 1. Double cliquer sur la cellule modifier (par exemple, la cellule A3 de la figure 431, celle qui porte lintitul Somme de montant). 2. Accder la bote de dialogue Champ PivotTable. 3. Changer la formule utilise.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 431
La bote de dialogue Paramtres des champs de valeur permettant de modifier les formules utilises dans un TCD et les formats de nombre
Figure 430 Double cliquer sur la cellule A3 permet de changer la formule utilise dans le TCD.
Modifier le format daffichage des nombres Par dfaut, le format daffichage des nombres nest pas trs attrayant. Il est facile dy remdier par le bouton Format de nombre de la bote de dialogue du paragraphe prcdent (figure 431). Le TCD est ainsi beaucoup plus prsentable, notamment si vous choisissez un format montaire.
78
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 chronologiques, 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 dutilisation, 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 ?
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 considrablement 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).
Groupe Eyrolles, 2008
79
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous disposons maintenant de trois feuilles spares : une pour la liste de donnes source du TCD ; une pour le TCD source du GCD ; une pour le GCD lui-mme. Remarquez encore une fois que la liste de donnes nest pas modifie par lajout du TCD et de son GCD. Il sera donc toujours possible de supprimer les feuilles du TCD et du GCD sans modifier en aucune manire la liste de donnes.
81
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure 434
Le GCD est limage fidle du TCD correspondant (ici, celui de la figure 422, tous reprsentants confondus).
Maintenant, lextrme facilit de cration dun TCD ne doit pas faire oublier ses quelques dfauts (comme son apparence, un peu minimaliste) ou encore les possibilits complmentaires danalyse quil procure (comme de visualiser le dtail dun lment particulier). Modifier lapparence du GCD Commenons par corriger le principal (et unique) dfaut du GCD, son apparence, afin den amliorer la lisibilit et damliorer sa pertinence. Il suffit de slectionner le graphique. Vous pouvez ds lors quasiment tout modifier : type de graphique, titres et lgendes, type, taille et couleur de police, apparence 3D, formats des axes, bordures, zone de traage... Sans entrer dans le dtail de toutes ces possibilits, voici deux manipulations que nous pouvons apporter notre GCD de la figure 434 : Modifier le type du graphique : dans longlet Cration, groupe Type, cliquez sur Modifier le type du graphique et slectionnez par exemple Histogramme 3D probablement plus adapt ce type de donnes. Profitez-en pour tester les autres types disponibles (courbes, secteurs, histogrammes, barres, nuage de points, bulles, anneaux, surfaces, stocks), le moins quon puisse dire est quil y a le choix (et lembarras qui va avec). Insrer un titre et une lgende : dans longlet Disposition, groupe tiquettes, slectionnez police, taille et couleur notre convenance. La figure 435 montre notre nouveau GCD !
82
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 435
Modifier le GCD en modifiant le TCD Toutes les modifications apportes au TCD sont automatiquement rpercutes dans le GCD. Par exemple, le GCD de la figure 436 est directement issu de celui de la figure 4-35, mais uniquement pour Jean (il a suffit de slectionner Jean dans le filtre du TCD). Remarquez dans cette figure 436 que le titre du GCD na pas t mis jour automatiquement, il a fallu ajouter directement la main dans le titre le texte de Jean .
Figure 436
83
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
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 Afficher/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 directement 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 graphique et de slectionner le champ Reprsentant dans la bote de dialogue Afficher les dtails (figure 438).
Figure 437
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 438
cellules contenant la liste de donnes qui servira de source au GCD. Si vous avez construit une liste de donnes conforme aux cinq rgles 84
Groupe Eyrolles, 2008
(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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 439
Un GCD Excel 2003. Remarquez le bouton Somme de montant et les trois listes droulantes ct de zone, produit et reprsentant.
Nous constatons ainsi trs rapidement limportance des ventes de sangles et lapport de Sophie dans celles de mousquetons. Comme avec Excel 2007, nous allons maintenant pouvoir peaufiner le look de notre GCD, zoomer sur telle ou telle donne (par exemple, afficher les ventes de la zone Sud et non plus de toutes les zones) et afficher le dtail dun champ (par exemple, toujours afficher les ventes de Jean selon la date de la vente).
85
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
DExcel Access
Modifier lapparence du GCD Comme nous lavons fait avec Excel 2007, nous allons corriger le principal (et unique) dfaut du GCD : son apparence ; cela afin damliorer sa lisibilit et sa pertinence. Il suffit de slectionner le graphique et, par un clic droit, dappeler les options Type de graphique (pour choisir un autre type de graphique), Options du graphique (pour les titres, lgendes, polices, couleurs, encadrements...) ou encore Vue 3D. Affiner lanalyse de certaines donnes Comme avec Excel 2007, les GCD peuvent afficher certains dtails ou dvelopper certaines informations dans le but daffiner lanalyse.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Par exemple, en partant du GCD de la figure 439, nous avons obtenu celui de la figure 440 en isolant les ventes de la zone Sud et des reprsentants Jean et Pierre grce aux options des listes droulantes correspondantes sur le GCD ; puis en changeant la fonction utilise dans le GCD pour afficher cette fois-ci le montant de la plus grande vente effectue ; il a suffit cet effet de double cliquer sur Somme de montant et de choisir Max de montant. Avez-vous remarqu quExcel 2003 indique directement les valeurs slectionnes dans les filtres, ainsi que la fonction utilise... Il nest donc pas ncessaire de modifier les titres du GCD comme nous avions t contraints le faire sous Excel 2007.
Figure 440
Le GCD illustrant le montant maximum des ventes de Jean et de Pierre pour le Sud.
Il est galement possible dafficher un nouvel axe danalyse. Par exemple, pour dtailler les ventes de Jean par date, comme dans la figure 441, 86
Groupe Eyrolles, 2008
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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 441
Synthse : les fonctions de sous-total et de tableau (graphique) crois dynamique sont les instruments indispensables danalyse dune liste de donnes
Avec les sous-totaux, les TCD et les GCD, nous venons de faire un pas dcisif dans lexploitation de nos listes de donnes, avec une facilit dconcertante et un niveau de performance et de fiabilit qui justifient eux seuls dorganiser ses donnes en liste de donnes. Il suffit daccder aux fonctions de sous-total, de TCD ou de GCD aprs avoir slectionn une et une seule cellule de la liste. Toutes les possibilits tonnantes de ces outils vous sont alors accessibles. Le choix de loutil utiliser (sous-total ou TCD) dpend en fait essentiellement du nombre daxes danalyse que vous souhaitez dvelopper : sil y en a deux ou moins, la fonction de sous-total donnera pleinement satisfaction ; au del, seul le TCD sera vritablement exploitable. Ce chapitre clt ltude des listes de donnes sous tableur. Le suivant dbute celle des bases de donnes relationnelles.
Groupe Eyrolles, 2008
87
4 Exploiter les listes de donnes : les sous-totaux et les tableaux croiss dynamiques
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
B Les limites
Les listes de donnes sous tableur ne peuvent pas tout rsoudre. Abordons ici les principales caractristiques dune base de donnes relationnelle et les raisons dadopter une mthode de travail rigoureuse.
B La mthode dlaboration
dune base de donnes relationnelle MOTS-CLS
B Tables B Champs B Enregistrements B Relations entre les tables B Tables matres et tables esclaves B Cl primaire et cl trangre B Modlisation B Objets dune base de donnes
relationnelle : table, formulaire, requte et tat/rapport
DExcel Access
Les listes de donnes sous tableur, aussi simples et performantes soientelles, ne peuvent rpondre correctement toutes les problmatiques de bases de donnes. Ce chapitre commence par exposer ces raisons et poursuit en prsentant les avantages dterminants apports par les bases de donnes relationnelles. Il sachve par une sensibilisation la ncessit de suivre une mthode de travail rigoureuse qui, seule, garantit la russite de votre projet de base de donnes relationnelle.
Les listes de donnes sont des bases de donnes, mais leurs possibilits sont limites.
90
Cette liste de donnes a t btie pour raliser un suivi dynamique des performances compares de nos reprsentants selon la zone, le produit ou la date de leurs ventes, grce : des tris et des filtres ; des sous-totaux ; des tableaux et graphiques croiss dynamiques. En ce sens, notre liste de donnes est donc une base de donnes part entire.
Une liste de donnes est une base de donnes aux performances limites
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Malgr lexcellent rapport performance/travail quelle possde, notre liste de donnes trouve rapidement ses limites pour peu que nos besoins voluent. Par exemple, pourquoi ne pas lui demander de raliser le mailing mensuel du relev des ventes adresser chaque reprsentant ? Toutes les informations relatives aux ventes sont disponibles ; il suffirait de rajouter dans la liste de donnes ladresse des reprsentants pour pouvoir effectuer un publipostage. Comment ajouter ces adresses ? Il ny a gure dautre solution que dinsrer dans la liste de donnes une colonne vierge, par exemple entre les champs Reprsentant et Zone, de lintituler Adresse et de saisir pour chaque enregistrement ladresse de son reprsentant. Cette simple opration permet dentrevoir la limite de cette solution : pour chaque rptition dun nom particulier de reprsentant, il va falloir resaisir ladresse complte du reprsentant (figure 51).
Figure 51
Lajout de la colonne Adresse oblige resaisir indfiniment ladresse de chaque reprsentant. Groupe Eyrolles, 2008
91
DExcel Access
Cette rptition linfini (pour toutes les occurrences du mme reprsentant) prsente au moins deux inconvnients rdhibitoires. Dabord, cela augmente inconsidrment et inutilement les volumes saisir et traiter. Ensuite, cela dgrade la qualit de nos donnes, rien nempchant les erreurs de saisie ; regardez par exemple lenregistrement numro 5 de la figure 51, pour lequel loprateur sest tromp dans le code postal (05260 au lieu de 05620). Toutes ces difficults proviennent du fait que, dans notre liste de donnes, nous tentons dintgrer des donnes relatives aux reprsentants avec des donnes relatives aux ventes. Et ces difficults seront encore aggraves si nous voulons complter encore les donnes relatives aux reprsentants en ajoutant dautres champs comme le nom de famille, le numro de portable, la date de naissance, le sexe, le-mail, le RIB... Lautre solution, prenant en compte cette contrainte, va consister crer deux fichiers : un pour les ventes, lautre pour les reprsentants. Ces fichiers seront relis lun lautre, crant ainsi une base de donnes relationnelle (figure 52). Ce lien va permettre au logiciel de traitement de base de donnes relationnelle dassocier le nom du reprsentant dans le fichier des ventes avec les donnes relatives ce reprsentant dans le fichier des reprsentants. Les donnes des reprsentants (adresse, tlphone, etc) ne seront alors plus saisies quune seule fois, rduisant ainsi considrablement les erreurs de saisie et le volume de donnes.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 52
Lclatement des donnes en deux fichiers relis rduit les volumes de donnes.
92
Cette notion dclatement des donnes en plusieurs fichiers indpendants relis est le concept mme des bases de donnes relationnelles. Nous allons maintenant en tudier le fonctionnement.
93
DExcel Access
Figure 53
La table des Ventes sous Access ressemble beaucoup une liste de donnes sous Excel ou Calc.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 54
Cette table ne comporte que les quatre enregistrements correspondant nos quatre reprsentants.
Il est facile dimaginer dautres tables dans dautres contextes : dans une association, la table des Adhrents collectera les informations relatives ses membres et la table Cotisations lhistorique des collectes dargent ; dans une banque, la table des Clients coexistera avec celles des Comptes et des Mouvements effectus par ces clients dans leurs comptes ; dans une entreprise, de nombreuses tables sont identifiables : Clients, Fournisseurs, Produits, Commandes, Livraisons, Stocks, Personnel, Paye... Limportant ce niveau est de bien comprendre que chaque table correspond en fait une entit logique du systme dinformation grer. Un client nest pas un fournisseur, une commande nest pas une livraison, une vente nest pas un reprsentant, un adhrent nest pas une cotisation : chaque entit a sa propre cohrence. Une table comportera toujours des champs et des enregistrements. Maintenant, comment ces tables vont-elles communiquer ? Comment, dans notre exemple, le SGBDR va-t-il faire le lien entre une vente dans la table des Ventes et les donnes de la table des Reprsentants relatives au reprsentant qui la effectue ?
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 relation 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 importante. Vous avez certainement remarqu les symboles 1 et sur la relation 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 enregistrement 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 commandes 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
BASE EXEMPLE ACCESS 2007 ET 2003 La base de donnes exemple Northwind/Les comptoirs
Access propose une base de donnes complte, prsentant une illustration pratique des principaux problmes poss par les bases de donnes relationnelles et des solutions concrtes y apporter. Il ne sagit pas bien sr dun mode demploi dAccess, et encore moins dune aide la programmation, mais bien dun modle dans lequel le programmeur attentif pourra trouver des solutions. Vous y trouverez donc une illustration relle des principaux points que nous allons dvelopper ensemble au cours de cette mthode. Pour ouvrir cette base : Sous Access 2003, allez dans le menu ?>Exemples de bases de donnes>Exemple de base de donnes
Les comptoirs
Pour Access 2007, dans lcran daccueil obtenu juste aprs le lancement dAccess, figure 57, slectionnez les options Mes modles puis Northwind et enfin validez.
Figure 57 Comment ouvrir la base exemple sous Access 2007
96
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
97
DExcel Access
comme sur la figure 58, en utilisant un nom dj existant. Il y aura alors doublon dans le champ Reprsentant de la table des Reprsentants, puisque le mme contenu, Jean , sera prsent deux fois pour deux reprsentants/enregistrements diffrents.
Figure 58
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Notre relation va-t-elle toujours fonctionner ? Hlas, non ! Quand nous saisirons un enregistrement dans la table des Ventes, comment allonsnous prciser de quel Jean il sagit ? Et quand bien mme nous saisirions Jean, avec lequel des deux Jean de la table des Reprsentants le SGBDR fera-t-il le lien ? Tant que cette ambigut ne sera pas leve, la relation ne pourra pas fonctionner. Pour quelle fonctionne, il faudrait que chaque enregistrement de la table esclave (ici Ventes) soit en liaison avec un et un seul enregistrement de la table matre (ici Reprsentant). Nous sommes donc amens formuler les rgles suivantes, indispensables un fonctionnement correct des relations de matre esclave : La table matre doit obligatoirement contenir un champ permettant didentifier un enregistrement sans ambigut. Ce champ discriminant a comme caractristique de ne pas admettre de doublon. On lappelle de faon gnrique champ identifiant dans un SGBDR et cl primaire sous Access et Base. Ce champ identifiant doit tre rappel dans la table esclave, permettant ainsi au SGBDR de faire le lien entre les enregistrements de la table esclave et ceux de la table matre. Cet quivalent, dans la table esclave, de la cl primaire de la table matre, sappelle cl trangre (parce quelle fait rfrence la cl primaire dune autre table). Dans une relation de un plusieurs (1 ) entre un matre et son esclave, le 1 sera toujours situ du ct de la cl primaire de la table matre et l du ct de la cl trangre de son esclave. La cl primaire dune table est gnralement un numro ou un code spcifique. Pour notre table des Reprsentants, la seule solution sera de crer un champ NumeroRepresentant, sans doublon, qui sera rappel dans la table des Ventes comme cl trangre selon le schma de la figure 59.
98
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Ltude de la fentre des relations de la base exemple dAccess, figure 56, donne dautres exemples de ces rgles. Par exemple, pour la relation unissant Produits Fournisseurs, la cl primaire de la table matre Fournisseurs (le champ N fournisseur) est rappele sous forme de cl trangre dans la table esclave des Produits ; pour cette relation, le 1 est toujours du ct de la cl primaire et l de celui de la cl trangre. Prcisons que chaque table doit avoir une cl primaire. Certes, la logique que nous venons de dtailler nimpose une cl primaire dans une table que si celle-ci est matre dune autre table dans une relation de un plusieurs. Nanmoins, tout SGBDR va conseiller trs vivement, lors de la cration dune table, de dfinir une cl primaire, mme si cette table nest pas matre dune autre. Une cl primaire peut en effet aussi servir dindex de recherche pour acclrer le fonctionnement dune base de donnes volumineuse. Retenons donc que toutes les tables que nous allons crer sous Access ou Base devront comporter une cl primaire !
AUTRE DIFFRENCE AVEC UNE LISTE DE DONNES Une base de donnes relationnelle est intgre
Ce que nous venons de voir au travers de la fentre des relations permet de formuler une autre diffrence fondamentale entre une base de donnes relationnelle et une simple liste de donnes. La base de donnes exemple de la figure 56 est autosuffisante : elle comporte en elle-mme toutes les ressources ncessaires son fonctionnement et, une fois que les donnes ncessaires ont t saisies, tous les traitements pourront seffectuer. linverse, une liste de donnes sous tableur est en gnral un fichier isol dans la chane de traitement de linformation. Par exemple, notre liste de donnes de matriel dalpinisme est en fait une resaisie des informations fournies par le systme de facturation de lentreprise (qui est, lui, une base de donnes relationnelle).
99
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 primaire de la table matre et la cl secondaire de la table esclave). Ce nest quune fois cette tche acheve quon pourra sattaquer la programmation proprement dite. Ltude de cette phase de modlisation fait lobjet du chapitre 6.
100
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Groupe Eyrolles, 2008
101
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
incapables de les manipuler. Telles quelles, donc, elles nont dutilit que latente, en fonction de ce quon en fera avec les requtes. Les requtes sont les instructions qui vont permettre de manipuler linformation stocke dans les tables et deffectuer les traitements et les analyses. Par une requte, nous allons par exemple pouvoir calculer le montant d par chaque client en fonction de ses achats, identifier le reprsentant le plus g, lister les adhrents telle activit dune association, dterminer si les clients sont jour ou non de leurs rglements... Ce sont donc les requtes qui crent la valeur ajoute de la base de donnes relationnelle ; elles en constituent le cur. Nous verrons quelles sont plutt simples programmer ds lors que les tables dans lesquelles elles puisent les donnes sont bties correctement. Les formulaires sont des aides la saisie, visualisation et modification des donnes des tables. Ils ne sont nullement obligatoires, en ce sens que les donnes peuvent tre saisies directement dans les tables, un peu de la mme faon que dans une feuille de calcul de tableur, comme nous le verrons. Les tats (Base utilise le vocable rapports), bass sur les requtes, assureront la prsentation dtats impeccables et professionnels. En effet, une requte sera souvent difficile exploiter directement sans mise en forme. Nous verrons galement que lutilisation dtats sera indispensable pour effectuer certains calculs, comme par exemple le total des ventes par reprsentant.
Figure 511
La structure modulaire dun SGBDR et lenchanement des diffrents types dobjets (tables, formulaires, requtes et tats/rapports).
On peut donc schmatiser le fonctionnement dun SGBDR comme suit (voir la figure 511) : Les tables collectent les donnes de la base. Elles sont en relation les unes avec les autres. 102
Groupe Eyrolles, 2008
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
On pourrait galement la comparer au creusement dun tunnel. Imaginez deux quipes de tunneliers qui creusent de chaque ct dune montagne. Sils progressent avec mthode et en balisant rgulirement leur avance, ils se retrouveront au milieu pour sabler le champagne et se fliciter de leur succs. Si, par contre, ils creusent au petit bonheur la chance, parions quils vont se croiser sans mme se voir ou sentendre... La facilit dutilisation des logiciels traditionnels de bureautique nous a fait prendre des rflexes quil nous faudra oublier sous un SGBDR. Avec un traitement de texte, il est si facile de dplacer du texte, corriger lorthographe, modifier les styles ou la mise en pages, quon cre le document au fur et mesure des ides qui nous viennent. De mme avec un tableur : si on a oubli une ligne, une colonne, une feuille ou une mme un formule, il est trs simple de rectifier. En dautres termes, avec ces logiciels on prend lhabitude de travailler (et ce nest pas une critique) de manire assez spontane, voire exprimentale : on essaie et on modifie. Avec Access et Base, comme avec nimporte quel SGBDR, cette faon de procder est voue lchec. Pour simplifier, la construction dune base de donnes relationnelle ncessite de rflchir dabord avant de pro Groupe Eyrolles, 2008
103
DExcel Access
grammer en suivant un schma rigoureux et en plantant rgulirement des jalons de validation du travail effectu. La mthode davancement que nous vous proposons (figure 513) sera dtaille au cours des chapitres suivants. Prenons quand mme quelques instants pour la survoler.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
avons dj insist sur ce point. Voir chapitre 6. 2 La programmation des tables : cette phase comprend la cration des tables, de leurs champs et de leur cl primaire, ainsi que ltablissement des relations qui les unissent. Correctement mene, elle assure la solidit de lassise sur laquelle les tapes suivantes viendront se greffer. Des bonnes tables assurent 100 % la russite des tapes suivantes. Voir chapitres 7 et 8. 3 La programmation des formulaires : cette tape est conseille, car les formulaires simplifient la saisie et la visualisation des donnes ; dautant quils sont simples crer. Mais il est trs possible, par exemple pour des petites bases simples, de ne pas crer de formulaires. Voir chapitre 9. 4 La saisie des donnes : on ne peut saisir des donnes dans une table qu partir du moment o toutes les tables du projet ont t construites. Avec lhabitude, vous constaterez mme quil est possible de programmer intgralement une base de donnes relationnelle, avec toutes ses requtes et ses tats, sans avoir saisi aucune donne. Voir chapitre 9. 104
Groupe Eyrolles, 2008
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 informatiques. Voir chapitre 13.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
105
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
La phase de modlisation conditionne la russite dun projet de base de donnes relationnelle, la ngliger entrane avec certitude son chec. Elle consiste schmatiser, de faon claire et directement programmable, les tables de la base (avec leurs champs et leurs cls primaires) et les relations qui les unissent.
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 relations 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Cette base devra pouvoir lister les stagiaires dune activit, les stagiaires dun guide, les activits dun stagiaire, ainsi que dautres lments statistiques, comme tous les stagiaires inscrits plusieurs activits. Bien videmment, lorganisation de lcole est dterminante dans la structure des futures tables de notre base. Nous runissons ainsi les lments suivants au cours des rencontres avec les diffrents responsables de lcole : Les stagiaires peuvent sinscrire des activits encadres par des guides. Chaque activit a un et un seul guide attitr. Il existe des guides sans affectation auxquels lcole fait appel en cas de dfaillance du titulaire (guide de secours).
Groupe Eyrolles, 2008
108
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 extrieur. En effet, si nous omettons ou ngligeons un lment quelconque lors de cette phase, la solution laquelle nous arriverons pourrait ne pas fonctionner. 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 plusieurs guides ; si nous choisissons la mauvaise hypothse, il ne sera pas possible de revenir en arrire, et nous aurons travaill pour rien.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 quelques points importants. Un cahier des charges comprend dabord un descriptif dtaill de ce quon appelle lexistant, cest--dire lorganisation. Il comprend ensuite un expos exhaustif de ce que la base de donnes relationnelle 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.
109
DExcel Access
Stagiaires
Activits
Guides
Figure 61
Sinscrivent
Encadres par
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Vous remarquez que ce schma thorique comporte des rectangles et des cercles. Pourquoi cette distinction ? Parce que comme nous le verrons dans ltude du schma rel, tous les rectangles deviendront des tables, alors que ce ne sera le cas que pour certains cercles. Ltablissement de ce schma thorique prsente quelques difficults que nous allons lever.
possdent des comptes dans lesquels ils ralisent des oprations financires . Ces deux formulations aboutiraient deux schmas thoriques 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.
Lindividualisation des lments de la phrase cl, qui va permettre de dduire les lments du schma thorique, consiste au dcoupage de cette phrase. Ce dcoupage est en gnral facile. Il suffit de mettre en valeur larticulation syntaxique de la phase cl en groupant les mots comme nous venons de le faire : les stagiaires sinscrivent des activits encadres par des guides . Pour les deux premiers exemples complmentaires, le dcoupage devient respectivement : Les clients empruntent des DVD appartenant diffrentes catgories (humour, action, adulte...) ; Les clients possdent des comptes dans lesquels ils ralisent des oprations . Le dcoupage de la phrase cl du thtre est, lui, un peu plus compliqu. La solution est les spectateurs rservent des places pour une reprsentation dun spectacle . Un mauvais dcoupage serait par exemple les spectateurs rservent des places pour une reprsentation dun spectacle , en groupant reprsentation et spectacle , ce qui aurait pour consquence de nautoriser dune seule reprsentation de tout spectacle.
PIGE La phrase cl sera diffrente selon le sens de lecture du schma
La lecture dun schma thorique recle un pige linguistique. Habituellement, on le lit de gauche droite. Si on fait le contraire, les noms contenus dans les rectangles vont rester inchangs tandis que les libells des cercles vont tre modifis, le plus souvent en passant de la voix active la voix passive, et inversement. Par exemple, Les stagiaires sinscrivent des activits encadres par des guides obtenu en lisant le schma thorique de la figure 61 de gauche droite va devenir Les guides encadrent des activits auxquelles se sont inscrits des stagiaires si on lit le mme schma de droite gauche.
111
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 62 Les schmas thoriques dun vido club, dune banque et dun thtre
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 incohrences. 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 encadres par , ce qui manque pour le moins de prcision (figure 63) !
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 63
Ce schma thorique est erron, un guide de secours nest quun guide sans affectation.
Cette solution obligerait passer constamment les guides dune table lautre. Ds quun guide de secours trouverait une affectation, il faudrait le supprimer de la table Guides de secours pour le saisir dans les Guides et inversement. Il serait alors techniquement trs difficile dobtenir une liste complte de tous les guides de lassociation.
ALLER PLUS LOIN Dautres exemples dlments inutiles dans un schma thorique
Le risque de crer des lments inutiles dans un schma thorique de modlisation de base de donnes relationnelle se rencontre frquemment. Prenons lexemple dune banque dans laquelle les clients possdent des comptes. Supposons que ces comptes soient de deux types : les comptes rmunrs et ceux qui ne le sont pas. Il est tentant ici aussi de crer deux lments distincts dans notre schma thorique, Comptes rmunrs et Comptes non rmunrs, sous prtexte que les caractristiques des uns ne sont pas celles des autres. Mais bien y rflchir, ce nest pas exact. Ces deux types de comptes ont tous deux un titulaire, un numro, une adresse fiscale, etc. De plus, on peut trs bien considrer que les comptes non rmunrs sont en fait rmunrs 0%. Cette solution permet de mlanger dans le mme lment Comptes les deux types de comptes ; le champ Pourcentage de rmunration permettant alors de les distinguer. Inversement, crer deux lments distincts dans le schma thorique gnrera de multiples difficults de programmation, comme lister tous les comptes rmunrs ou non dun mme client.
113
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 64
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 !).
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 65
115
DExcel Access
Tableau 61 Significations des nombres cls dans le cas pratique dcole dalpinisme Entre llment rectangle... Et llment cercle... Le nombre cl est... Parce que...
N N 1 N
Chaque stagiaire peut sinscrire plusieurs (N) activits Chaque activit peut avoir plusieurs (N) stagiaires Chaque activit nest encadre que par un seul (1) guide Chaque guide peut encadrer plusieurs (N) activits
THORIE Les deux nombres cls dun cercle du schma thorique peuvent-ils tre tous deux gaux 1 ?
Pour chaque cercle, nous venons denvisager le cas o les deux nombres cls sont gaux N, puis celui o un seul est gal 1. Nous navons pas voqu le cas o les deux nombres cls seraient gaux 1, tout simplement parce que ce cas ne peut normalement pas se produire (pour des raisons thoriques qui nous emmneraient un peu loin et que nous nallons pas dvelopper ici).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Une fois ces nombres cls dtermins, tout va aller trs vite pour dterminer la structure dfinitive des tables de notre schma final. Tous les lments concrets ou abstraits reprsents par des rectangles (ici Stagiaires, Activits et Guides) vont devenir des tables du schma final. Par contre, pour les cercles du schma thorique (Sinscrivent et Est encadre par), il faut considrer les deux nombres cls qui leur ont t affects : Si les deux nombres cls dun cercle sont N, le cercle considr devient une table dans le schma dfinitif. Cest le cas pour Sinscrivent , figure 66 ; 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.
116
Nous obtenons ainsi le dessin dfinitif de nos quatre tables, figure 68.
Figure 68
Il nous reste le complter par les diffrents champs de chaque table (dont un sera cl primaire) et fixer dfinitivement les relations entre les tables. Nous obtiendrons ainsi le schma rel dfinitif de notre base quil ne restera plus qu programmer.
AUTRE CAS Et si un guide pouvait
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
encadrer plusieurs activits ? Lhypothse quune activit ne pouvait tre encadre que par un guide a abouti au schma de la figure 68. Ce schma serait compltement diffrent si une activit pouvait tre encadre par plusieurs guides. Le nombre cl entre Activits et Encadres par serait alors N, les deux nombres 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
contenus ; nous vous proposons dopter pour les diffrents champs de la figure 610, en sachant quil est toujours possible denrichir nos donnes dautres informations, comme par exemple le niveau du stagiaire, son sexe ou encore le RIB du guide pour effectuer les virements de salaire.
Figure 610
Les champs des quatre tables du cas pratique. Le symbole spcifie la cl primaire. Remarquez que les champs ncessaires ltablissement des relations ne sont pas encore prsents.
Certains champs appellent des remarques particulires : Les tables Stagiaires et Guides possdent chacune une cl primaire de type numro. La table Activites ne comporte pour linstant quun champ, le nom de lactivit, qui servira par la mme occasion de cl primaire pour cette table, chaque activit ayant bien entendu son nom spcifique. La table Inscriptions ne comporte pour linstant quun champ, la Date et lheure du moment de linscription. Ce champ sera aliment par une valeur par dfaut, celle fournie par lordinateur au moment prcis de la saisie de linscription. Personne ne pouvant tre inscrit exactement au mme moment, ce champ fera une excellente cl primaire. Bien entendu, si deux inscriptions pouvaient tre exactement simultanes (comme en cas de saisie multi-poste ou de dversement automatique de listes de stagiaires), ce choix ne sera pas pertinent, et il faudra utiliser un simple champ numrotation automatique. Ajoutons, pour terminer, que le champ Bureau des guides de la table Guides est dict par lobligation lgale pour chaque guide dexercer son activit professionnelle dans le cadre dun bureau.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
118
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 NumStagiaire (cl primaire de la table Stagiaires) la table Inscriptions. La table Inscriptions devient alors esclave de la table Stagiaires, ce qui correspond 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 Inscriptions. Inscriptions devient alors esclave dActivites, ce qui correspond la ralit logique : on ne peut inscrire un stagiaire une activit que si cette dernire existe dans la table Activites. Pour lier Activites et Guides, il suffit dajouter le champ NumGuide (cl primaire de la table Guides) la table Activites. Activites devient alors esclave de Guides, ce qui correspond la ralit logique : on ne peut affecter une activit quun guide existant dans la table Guides. Nous arrivons ainsi au schma rel dfinitif de la figure 611.
Figure 611
Le schma rel dfinitif de notre cas pratique comporte les quatre tables (avec leurs champs dont un est cl primaire) et les relations qui les unissent.
La plupart du temps, comme dans notre exemple, il est ais de dterminer quel champ intgrer une table pour la relier une autre. La simple logique suffit. Il existe cependant deux rgles simples pour sy retrouver coup sr dans des cas plus complexes : Toutes les tables issues dun cercle (avec des nombres cls valant N) deviennent esclaves des tables issues des rectangles auxquels elles
Groupe Eyrolles, 2008
119
DExcel Access
Notre mthode de modlisation fonctionne pour nimporte quelle problmatique de base de donnes relationnelle, quelque soit le SGBDR qui servira de support la programmation : Access, Base, ou autre.
taient relies. Les relations stablissent alors en intgrant dans ces tables les champs cl primaire de leurs matres. Dans notre cas pratique, la table Inscriptions, issue dun cercle, devient esclave de Stagiaires et dActivites et la relation stablit en insrant dans cette table les champs cl primaire des deux tables matres. Dans le cas dun cercle (un des nombres cls vaut 1), la relation stablit directement entre les deux tables issues des rectangles auxquels il est reli. Cest le cas pour le cercle Encadres par : la relation stablit entre Activites et Guides. Cest alors la table issue du rectangle du ct duquel le nombre cl est 1 qui devient esclave de lautre table ; et cest le champ cl primaire de cette autre table qui est insr dans la table esclave pour crer la relation. Dans lexemple, cest le champ cl primaire de la table Guides qui est insr dans la table esclave Activites, issue du rectangle du ct duquel le nombre cl tait 1. Llaboration du schma rel clt la phase de modlisation. Nous sommes maintenant arms pour aborder sereinement la phase de dveloppement de notre projet sous Access ou Base.
120
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 612
121
DExcel Access
saisir directement les donnes de cette table pour voir si a marche . Cest une mauvaise pratique. Imaginez si, lors de la construction dune maison, le peintre venait peindre un pan de mur alors que les maons nont pas encore termin de monter les autres murs ? Ltablissement des relations valide la cration des tables et constitue en quelque sorte, pour rester dans notre mtaphore, la mise hors deau de notre maison. Il est donc trs vivement conseill de ne commencer la saisie des donnes dune base que lorsque lensemble des tables et relations ont t valides. Cela dit, vous trouverez peut-tre des personnes qui vous diront quelles nen ont rien fait et que tout sest trs bien pass.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
122
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 sinscrivent 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 programmation proprement dite. Pour cette dernire, on peut distinguer les tapes suivantes : 1 programmation de toutes les tables (avec leurs champs et leur cl primaire), tablissement de toutes les relations de matres esclaves et tablissement de lintgrit rfrentielle ; 2 programmation des formulaires et saisie des donnes ; 3 programmation des requtes et tats/rapports. Le tableau suivant fournit, sous une autre forme, lessentiel mmoriser sur ce sujet :
Tableau 62 Check-list de construction dune base de donnes relationnelle Phase tape Contenu
Modlisation Programmation
Schma thorique Schma rel Tables Relations Programmation des formulaires et saisie des donnes Programmation des requtes et tats/rapports
Phrase cl, cercles et rectangles Nombres cls, tables, champs, cl primaire, relation de matre esclave Tables, champs, cl primaire Relations de matre esclave et intgrit rfrentielle Validation de la structure de la base de donnes
123
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
Aprs avoir vu comment prparer le dploiement dune base de donnes, nous allons maintenant passer lacte ! Depuis la cration de la base jusqu lajout des tables et champs, vous disposerez, aprs la lecture de ce chapitre, de tous les outils pour bien aborder cette tape fondamentale.
relationnelle existante
B Crer une nouvelle table B Crer les champs dune table B Crer une table par importation
de donnes
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 Importation de donnes
Groupe Eyrolles, 2008
DExcel Access
Nous allons dcouvrir quelques manipulations fondamentales dAccess et de Base : crer et ouvrir une base, dcouvrir linterface, grer les problmes de scurit. Nous allons galement apprendre crer notre premire table, avec ses champs et leurs proprits ainsi quune cl primaire. Enfin, nous nous familiariserons avec les principales opration concernant le contenu dune base de donnes relationnelle.
Avec un tableur ou un traitement de texte, il est possible de commencer travailler sur un nouveau classeur ou document avant de lenregistrer sur le disque dur. Bien sr, ce nest pas trs orthodoxe (car vous risquez alors par mgarde de perdre votre travail si vous oubliez de raliser cet enregistrement) ; mais cest techniquement possible. Il est impossible de travailler ainsi avec Access ou Base. Ds la cration dune base de donnes vierge, il faut commencer par lenregistrer sur son disque avant mme que de pouvoir y travailler. Nous entrevoyons ainsi ds notre premier contact avec les SGBDR quils ne fonctionnent dcidemment pas comme les bons vieux tableurs et traitements de texte auxquels nous nous tions habitus. Au cours des chapitres qui suivent, nous allons programmer la base de notre cas pratique dcole dalpinisme. Si vous voulez suivre les exercices de ce livre, crez un dossier dans lequel vous stockerez la base dcole dalpinisme. Access 2007 propose, ds son lancement, plusieurs modles, certainement tous plus patants les uns que les autres. Access tant plutt un logiciel dans lequel le sur-mesure est la rgle, nous allons choisir de crer une base de donnes vierge. Pour cela, dans lcran daccueil obtenu juste aprs le lancement du logiciel (figure 71), choisissez licne Base de donnes vide, spcifiez bien (partie droite) le nom de votre base (ici EcoleAlpinisme) et le dossier dans lequel vous souhaitez la classer (si vous omettez de prciser ce dossier, votre base sera cre dans Mes documents). Validez, la base est cre.
126
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
127
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 73 Le deuxime cran de lAssistant base de donnes de Base pour crer une base vierge
128
partir de ce moment, la gestion des problmes lis la scurit des donnes va modifier la procdure douverture dune base selon le SGBDR utilis.
SCURIT Les virus
Les virus sont des programmes qui entrent dans votre ordinateur votre insu et y crent divers dsagrments, allant du simple message humoristique la destruction totale des donnes. Autant dire quil ne faut pas les prendre la lgre et adopter leur gard une attitude rsolue. Un virus informatique sattrape, comme un virus humain, par contagion. Si vous vivez seul sur une le dserte, vous ne craignez rien. Un virus peut pntrer dans votre ordinateur quand vous allez sur Internet ou quand vous ouvrez un fichier contamin qui en contient (dans le cas des documents bureautiques, le virus se loge gnralement dans une macro, un miniprogramme permettant dautomatiser des tches rptitives). Les parades pour se prmunir des virus sont de bon sens et se rsument en fait au conseil que vous donnait votre maman : ne jamais ouvrir la porte un inconnu ! Voici quelques conseils simples ce sujet : Installez un antivirus et maintenez les dfinitions de virus jour ; Paramtrez le niveau de protection de Windows selon votre utilisation ; Installez un pare-feu efficace pour viter les intrusions malveillantes ; vitez (vraiment) les sites Internet douteux ; ne tlchargez jamais (et surtout ninstallez 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 voques ci-dessus vous garantit une vie tranquille 99,9%.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Avec Base, issu du monde du logiciel libre, vous naurez pas davertissement lors de louverture dune base de donnes. Soyez donc vigilant et nouvrez que celles dont vous tes sur de linnocuit. Par contre, Access ragit diffremment. Dtaillons les procdures sous Access 2007 (les utilisateurs de la version 2003 se reporteront lapart spcifique). louverture dune base existante, Access 2007 noffre quun bel cran presque vide, car il considre par dfaut que toute base de donnes contient potentiellement un virus. Deux possibilits soffrent alors nous, autoriser ponctuellement ou dfinitivement louverture dune base de donnes.
129
DExcel Access
Figure 74
Pour des problmes de scurit, aucune base de donnes nest ouverte par dfaut.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Autoriser louverture de la base pour une session seulement sous Access 2007
Si vous souhaitez ne lever linterdiction que pour la session de travail en cours, cest--dire si vous souhaitez ne travailler que ponctuellement sur la base : 1 Cliquez sur le bouton Options du bandeau Avertissement de scurit (juste au-dessous du ruban) ; 2 Dans la bote de dialogue de la figure 75, choisissez loption Activer
ce contenu ;
Figure 75
La bote de dialogue qui met en garde contre tous les risques inhrents louverture dune base.
130
Autoriser dfinitivement louverture de toutes les bases dun dossier sous Access 2007
La mthode prcdente risque rapidement de nous nerver, non ? Le souci de scurit a du bon, mais cette faon de procder risque rapidement daller lencontre de son but : nous risquons de nous habituer toujours choisir loption Activer ce contenu, en rflchissant de moins en 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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).
apparat.
Figure 77
La fentre qui permet dautoriser louverture de tout fichier prsent dans le dossier Mes documents sans avoir de message.
autoris.
4 Validez plusieurs fois pour fermer toutes les fentres en cours.
Groupe Eyrolles, 2008
131
DExcel Access
Remarquez que la bote de dialogue de la figure 76 permet de grer des dossiers privilgis (par ajout ou suppression dautorisation). Une fois lopration effectue, nous pouvons ouvrir notre base directement en obtenant laffichage de la figure 78. Mme si ce nest pas vident (car la base est vide), la base est maintenant ouverte : voyez dans la barre de titre, tout en haut, la mention portant le nom de votre base et lintitul du logiciel (ici, Eddy : base de donnes... ).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 78
132
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 711
Le Volet Access 2007 affich. Le bouton Ouvrir/fermer la barre de redimensionnement masquera ce volet.
Figure 710
Il est conseill de maximiser laffichage de la fentre de base de donnes Access 2003, ouverte par dfaut en rduction.
Remarquez les icnes de dveloppement/rduction et les termes tables, requtes, formulaires et tats.
Figure 713 Une base de donnes Base vierge. Remarquez les termes tables, requtes, formulaires et rapports.
Le volet de navigation liste les diffrentes familles dobjets disponibles dans la base de donnes relationnelle. Nous connaissons les quatre types dobjets essentiels, les tables, les formulaires, les requtes et les tats / rapports. Nous les retrouvons bien dans notre volet de navigation. Puisque notre base de donnes dcole dalpinisme est vide, aucun objet napparat dans le volet de navigation.
Groupe Eyrolles, 2008
133
DExcel Access
Access 2007 propose enfin des options de personnalisation de laffichage qui, si elles offrent plus de confort quand on les matrise bien, ont plutt tendance compliquer les choses au premier abord : En utilisant le bouton Ouvrir/fermer la barre de redimensionnement (figures 711 et 714), on affiche ou on masque le volet. En faisant glisser le bord droit de ce volet comme pour nimporte quelle fentre Windows, on peut le redimensionner.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 715 Le paramtrage de laffichage des objets Access 2007 dans le volet de navigation
En cliquant sur la flche pointant vers le bas juste ct du bouton Ouvrir/fermer la barre de redimensionnement, on peut paramtrer les lments affichs par le volet de navigation. Loption de la figure 715 permet, sous Access 2007, de faire des groupes par types dobjets (tables, formulaires, requtes et tats).
134
Notre schma rel a dfini quatre tables pour notre cas pratique dcole dalpinisme : Stagiaires, Inscriptions, Activites et Guides. Avant mme de crer notre premire table, une question simpose : dans quel ordre crer ces tables ? Par exemple, si nous tentons de crer Inscriptions en premier, comment pourrons-nous y saisir le champ NumeroStagiaire, cl primaire de la table des Stagiaires qui nexiste pas encore ? En ralit, on ne peut crer une table esclave avant sa table matre. Dans notre cas pratique, il faudra donc crer les tables dans lordre suivant : Stagiaires, puis Guides (ou linverse), ensuite Activites (esclave 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Entier 20 caractres maximum 15 caractres maximum Masque de saisie (JJ/MM/AAAA) Masque de saisie (XX XX XX XX XX)
Cl primaire de la table Null interdit (saisie obligatoire) Null interdit Null interdit Null pas interdit (saisie facultative)
Ce tableau ncessite quelques commentaires sur les noms des champs ainsi que sur certains types, formats et autres caractristiques.
135
DExcel Access
ALTERNATIVE Utiliser le tiret bas (_) pour sparer les mots dun nom de champ
Au lieu des majuscules, on peut aussi utiliser le tiret bas pour sparer les mots dun nom de champ : NomStagiaire devient nom_stagiaire. Cest affaire de got.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Vous avez certainement remarqu la graphie inhabituelle des noms de champs. Pourquoi nommer un champ NumeroStagiaire et non Numro du stagiaire, sans espace ni caractre accentu : Un nom de champ comportant des espaces ncessitera dtre saisi entre crochets ([]) dans la programmation des requtes. Un nom de champ sans espace pourra tre saisi directement sans ces crochets, do un gain de temps apprciable. Pour que ces noms restent malgr tout lisibles, on jouera avec lalternance des majuscules et des minuscules. Par exemple, Tlphone du Stagiaire devient TelStagiaire . AvecLHabitudeCEstTresLisible. Ne pas utiliser les caractres accentus , ou (ni dailleurs dautres types de caractres exotiques comme , , ...) vitera certains problmes dincompatibilit avec des versions prcdentes dAccess ou de Base. Ne nommez vos champs quen utilisant les caractres alphabtiques de A Z et les chiffres de 0 9. Enfin, les mmes noms de champ vont tre utiliss tout au long de la vie de la base. Comme il est trs vivement dconseill de renommer des champs, il faut choisir demble des noms courts et sans fautes dorthographe. Prfrez NomStagiaire NonStagiare, NoMstagaire ou encore NomDuOuDeLaStagiaire.
Figure 716
Dans notre cas pratique, les champs DateNaissanceStagiaire et TelStagiaire comporteront un masque de saisie.
Nous sommes maintenant prts crer notre premire table, en prenant comme exemple la table des Stagiaires.
Groupe Eyrolles, 2008
137
DExcel Access
Figure 717
Figure 718
Figure 719
Cette manipulation ouvre une nouvelle table en mode Cration. Notez que ce mode Cration est une appellation Access, Base utilisant le terme bauche, et nous rserverons ce dernier aux explications spcifiques Base ( chaque fois que le lecteur Base trouvera le terme Cration dans les explications gnrales, il le traduira par bauche). La table ainsi cre est une table vide. Il est recommande de lenregistrer tout de suite, soit en fermant la table, soit en lenregistrant. Dans notre cas pratique, nous allons lappeler Stagiaires. Il reste maintenant crer les champs de la table.
138
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 720
sous Access 2003 : slectionnez la table puis cliquez sur le bouton Modifier (figure 721) ; sous Base : slectionnez la table, puis cliquez sur le bouton diter (figure 722).
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 diffrents 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 723
La zone , en bas de lcran, permet de fixer les proprits de chaque champ : nombre de caractres, type de format numrique, nombre de dcimales, valeurs autorises dans une liste de choix, obligation ventuelle de saisir une valeur pour ce champ, valeur par dfaut, etc. La zone propose une aide contextuelle en fonction de la position du pointeur.
140
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
141
DExcel Access
Figure 725
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 Mmo
Pour limiter la longueur du champ un certain nombre de caractres (pour limiter le volume des donnes de la base) 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. Pour des nombres purs. Pour des valeurs montaires, prfrez le type Montaire. JJ/MM/AA, AA/MM/JJ, JJ/MM/AAAA, etc utiliser pour les valeurs montaires Pour des champs binaires (vrai ou faux), par exemple Mari? Pour intgrer des feuilles de calcul, des documents, des images, des sons... Pour insrer des liens hypertexte sur lesquels lutilisateur pourra cliquer Comme pour un courrier lectronique, permet de joindre par exemple une photo du stagiaire Pour obliger loprateur choisir dans les donnes dune autre table ou dune liste manuelle (par exemple Clibataire, Mari(e), Divorc(e), veuf(ve))
Numrique Date / Heure Montaire Oui / Non Objet OLE Lien hypertexte Pice jointe (*) Assistant liste de choix
142
Figure 726
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 727
La cl primaire est maintenant dfinie et symbolise par une cl stylise juste ct du champ (figure 728). Notre table des Stagiaires comprend maintenant sa cl primaire NumeroStagiaire.
Figure 728
La cl dans la marge indique que le champ NumeroStagiaire est cl primaire de la table Stagiaires.
3 ventuellement entrez une Description dans la colonne ddie. 4 Dfinissez dans la partie basse de la fentre de cration de champ ses
Proprits.
Illustrons cette procdure au travers de la cration des autres champs de la table Stagiaires.
143
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Limiter la taille dun champ Ville 10 caractres obligera, par exemple, saisir Aix en Provence (15 lettres) comme Aix en Pce Rend obligatoire une saisie pour le champ Possibilit de ne rien saisir dans le champ Combin avec la proprit Null Interdit Oui, permet quand mme de saisir une chane vide dans le champ (par exemple en saisissant un simple espace) Combin avec Null interdit Oui, oblige saisir au moins un caractre qui ne soit pas un espace
La figure 729 dtaille les proprits du champ NomStagiaire. Celles du champ PrenomStagiaire sont identiques, lexception de Taille du champ fixe 15.
BASE Champ de type Texte
La figure 730 donne les proprits dun champ de type Texte [VARCHAR]. Dans notre exemple, le champ NomStagiaire est limit 20 caractres et la valeur du champ Saisie requise est Oui.
Figure 729 Les proprits dun champ de type Texte sous Access : 20 caractres, Null interdit, Chane vide interdite
144
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
145
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Pour crer un masque de saisie, slectionnez le champ en mode Cration de table. Dans la zone des proprits de champ, cliquez ensuite dans la ligne Masque de saisie. Lancez enfin lassistant Masque de saisie en cliquant sur les pointills (...) lextrme droite de la ligne. Vous tes dsormais sous le contrle de lassistant masque de saisie : 1 Le premier message vous prvient que la table doit tre enregistre pour que lassistant puisse poursuivre. Si la table na pas t enregistre, faites-le et passez ltape suivante (dans notre cas pratique, nous avons appel la table Stagiaires). Sinon passez directement ltape suivante. 2 Le deuxime message propose une liste de choix. Slectionnez le format souhait (dans notre cas pratique, pour le champ DateNaissanceStagiaire, nous avons choisi Date, abrg). Profitez-en pour observer tous les formats disponibles. 146
Groupe Eyrolles, 2008
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 loprateur saisir 8 nombres de 0 9. Dans la partie du code 00/00/0000 , les / reprsentent les sparateurs 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/ 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 forme 01012000, ce qui est beaucoup moins lisible). Dans la partie du code ;_ , le _ reprsente lespace rserv slectionn dans lassistant, celui qui apparatra lors de la saisie en lieu et place des caractres saisir. Lautre possibilit pour ce paramtre est le caractre # .
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 732
147
DExcel Access
0 9
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Chiffre (0 9, entre obligatoire, signes plus (+) et moins (-) non accepts) Chiffre ou espace (entre facultative, signes plus et moins non accepts) Chiffre ou espace (entre facultative, positions vides converties en espaces en mode dition, mais les espaces sont effacs lors de la sauvegarde des donnes, signes plus et moins accepts) Lettre (A Z, entre obligatoire) Lettre (A Z, entre facultative) Lettre ou chiffre (entre obligatoire) Lettre ou chiffre (entre facultative) Caractre quelconque ou espace (entre obligatoire) Caractre quelconque ou espace (entre facultative)
# L ? A a & C
Un champ devant contenir un numro de tlphone nest bien videmment pas un simple champ numrique. Il se cre diffremment selon le logiciel que vous utilisez, essentiellement en lui adjoignant un masque de saisie. Avec Access, lassistant Masque de saisie que lon va employer ne fonctionne quavec les champs de type Texte. Il va donc falloir procder comme suit, aprs avoir ouvert la table concerne en mode Cration : 1 Saisissez le nom du champ dans la premire cellule disponible de la colonne Nom du champ. 2 Choisissez le type Texte dans la liste droulante de la colonne Type de
donnes.
3 ventuellement, entrez une Description dans la colonne ddie. 4 Dans la zone des Proprits de champ, lancez lassistant Masque de
saisie et choisissez, dans lcran de Numro de tlphone (figure 733).
5 Fixez la proprit Null interdit Oui ou Non (Oui dans notre cas pratique).
148
Figure 733
Avec Base, labsence de possibilit de paramtrage de masque de saisie complique un peu le problme : Si vous choisissez un champ de type Numrique, le numro de tlphone sera trait comme un nombre. Par exemple, 04 99 99 99 99 sera trait comme le nombre 499 999 999. Ce qui nest pas idal... Si vous choisissez le type Texte (limit 10 caractres), rien ne pourra empcher les erreurs de saisie comme lomission dun chiffre ou la saisie de lettres. Les explications ci-dessus devraient suffire pour vous guider dans la cration de la premire table de notre cas pratique, la table des Stagiaires. Le tableau qui suit rcapitule les principales caractristiques (type et proprits) de ses champs :
Tableau 75 Caractristiques des champs de la table des Stagiaires Nom Type Cl primaire Longueur Proprits Null interdit Chane vide autorise Format Masque de saisie
Oui Non Non Non Non 20 15 Oui Oui Oui Non Non Non Date abrge JJ/MM/AAAA __ __ __ __ __
149
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
150
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 734 Ce choix permettra dimporter sous Access 2003 des donnes dun classeur Excel.
Voici comment utiliser cet assistant : 1 Slectionnez la source et la destination des donnes : recherchez le classeur importer et spcifiez loption dimportation (importation unique ou avec lien dynamique). Loption Importation dynamique va crer un lien entre le fichier source et sa rsultante sous Access : toute modification ultrieure des donnes sous Excel va se rpercuter dans la table rsultante sous Access, ce qui est plutt dconseill si on nest pas un expert (figure 735).
Figure 735
La feuille de calcul peut tre importe statiquement (option choisie ici) ou dynamiquement Groupe Eyrolles, 2008
151
DExcel Access
Figure 736
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les diffrentes feuilles et plages o sont prsentes des donnes dans le classeur source apparaissent ici
champs). Normalement, la case Premire ligne contient les en-ttes de colonne est coche, corrigez sinon (figure 737).
Figure 737
Bien vrifier quAccess comprend que la premire ligne du classeur source contient les noms de champ
moment o vos donnes Excel se prsentent comme des donnes importables , cet cran est inutile. Faites directement Suivant. 5 Spcifiez la cl primaire : spcifier ici le champ cl primaire de la liste Excel, figure 738. Mme si Access propose de ne pas crer de cl primaire, il ne faut pas suivre son conseil, puisque nous savons que toute table doit contenir une cl primaire. La crer tout de suite prsente lavantage de ne pas avoir la crer plus tard. 152
Groupe Eyrolles, 2008
Figure 738
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Utiliser comme cl primaire de la future table la cl primaire de la liste de donnes source (recommand )
lyse de la structure de la table par lAssistant (mais les analyses fournies ne servent pas grand chose). 7 Cliquez sur Terminer. Si tout sest bien pass, Access affiche un message de confirmation. Il suffit douvrir la table, de vrifier les donnes et de paramtrer les proprits des champs.
TRUC Les difficults dimportation
Lexprience prouve que les soucis lors de limportation de donnes Excel proviennent presque toujours dune liste de donnes dorigine non conforme (voir pages 20 23) ou bien de labsence de cl primaire dans cette liste. En cas derreur dimportation, il faut rectifier la liste de donnes source et recommencer zro.
153
DExcel Access
Voici comment procder pour importer dans une base des objets dune autre base : 1 Lancez lassistant en cliquant dans longlet Donnes externes, groupe 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 739
Cliquer sur OK importera les trois tables surlignes de la base source dans la base cible.
154
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 741
Ce paramtrage permettra dimporter dans Base les donnes dune feuille de calcul (Excel ou Calc).
PRODUCTIVIT Importer son carnet dadresses Outlook ou Thunderbird dans Access ou Base
Il est possible dintgrer directement dans votre SGBDR favori votre carnet dadresse : Avec Access 2007 en slectionnant loutil Plus (onglet Donnes externes, groupe Importer) puis loption Outlook. Avec Access 2003 en slectionnant le type Outlook dans la figure 734. Avec Base en slectionnant Carnet dadresses dans la figure 741.
155
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 742
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Une table en mode Cration. Les champs sont lists en colonne. Le premier champ est signal par licne Cl primaire. Les enregistrements (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 enregistrement les uns au dessous des autres. Les caractristiques des champs sont invisibles.
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Si lon veut...
De la faon suivante...
Consulter, ajouter, supprimer ou modifier des enregistrements dune table ou dun formulaire Visualiser les rsultats dune requte ou dun tat/rapport Modifier la structure dune table, dun formulaire, dune requte ou dun tat/rapport
Contenu
Double-cliquer directement sur le nom de lobjet dans le volet de navigation comme sur la figure 744 Avec Access 2007 : faites un clic droit sur 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
158
Figure 746
Avec Base, il nest pas possible de basculer dun mode daffichage lautre. Il faut chaque fois fermer lobjet puis le rouvrir dans lautre mode.
Pour fermer un objet ouvert soit en mode Cration, soit en mode Contenu : sous Access 2007, effectuez un clic droit sur longlet de lobjet, puis slectionnez Fermer. sous Access 2003 (figure 747), utilisez le bouton de fermeture de la fentre de lobjet (et non de la base). sous Base, utilisez le bouton de fermeture de la fentre.
Figure 747
Supprimer un objet se fait trs (trop ?) facilement. Il suffit de slectionner lobjet dans le volet de navigation puis, par un clic droit, de choisir loption Supprimer. Attention, contrairement ce qui se passe quand vous supprimez du texte dans un traitement de texte ou un colonne dans un tableur, une suppression dobjet de champ (et mme denregistrement, ainsi que nous le verrons) est toujours dfinitive. Il ne sera jamais possible de revenir en arrire avec le bouton Annuler. Ne supprimez donc un objet ou enregistrement quaprs mre rflexion...
Groupe Eyrolles, 2008
159
DExcel Access
Il est trs frquent dans un SGBDR davoir crer, dans la mme base, des objets semblables. Dans notre cole dalpinisme, par exemple, nous serons amens construire des requtes pour lister les participants aux diffrentes activits. Ces requtes auront une structure trs proche les unes des autres. Aussi sera-t-il plus facile den crer une et de lutiliser comme modle pour les autres. Pour copier un objet, par exemple une requte, slectionnez-le dans le volet de navigation, copiez-le avec le raccourci clavier Ctrl+C, collez-le avec Ctrl+V puis renommez-le.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
160
Les principales proprits dun champ sont le format (nombre de dcimales, format de date JJ/MM/AAAA, etc), les ventuels masques 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 primaire de la table. Il est conseill dutiliser un champ de type Numro automatique pour cela. Peut-tre pour contrebalancer ces incontestables (mais invitables) lourdeurs, 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 connatre pour manipuler les objets dune base de donnes.
Tableau 77 Les principales manipulations dobjets (table, requte, formulaire ou tat/rapport) Pour : Access 2007 Access 2003 Base
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Ouvrir un objet en mode Contenu Ouvrir un objet en mode Cration ou bauche Basculer dun mode lautre Renommer un objet Copier un objet Supprimer un objet
Bouton en haut gauche du ruban Bouton en haut gauche de la barre doutils viter. Pour duplication. Par Ctrl+C et Ctrl+V.
161
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
Nous allons ici apprendre crer dautres tables et les lier entre elles par un rseau de relations ; nous obtiendrons ainsi une structure de base de donnes conforme notre schma rel, enfin prte recevoir des donnes.
B Paramtrer la fentre
des relations avec Access
B Liste de choix manuelle B Valeur par dfaut B Cl primaire et cl trangre B Relation entre table matre et
table esclave
DExcel Access
Une base de donnes relationnelle se dfinit par lexistence de tables relies entre elles par un rseau de relations. Nous avons trait dans le chapitre 6 des mthodes de modlisation permettant dtablir, au travers dun schma rel, le dessin logique de larticulation de ces tables et des relations qui les unissent. Dans le chapitre 7 nous avons dcrit les oprations ncessaires la cration de tables. Aprs un retour en arrire sur un point particulier de notre cas pratique dcole dalpinisme, nous allons aborder ltablissement des relations entre les tables. Ce chapitre est absolument essentiel. Pour prendre une image, on peut comparer la construction dune base de donnes celle dune maison : la phase de modlisation constitue les fondations, les tables les murs, et les relations la toiture. Tout le reste, formulaires, requtes et tats ne constitueront que la dcoration et les amnagements intrieurs : non quil soient inutiles, loin de l : on ne peut pas vivre dans les parpaings. Mais on ne pose pas de papier peint dans une maison ouverte tous vents.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Inscriptions
Date inscript. Num stagiaire Nom ac vit
Activites
Nom ac vite Num guide
Guides
Num guide Nom Prenom Bureau guides
Pourtant, une analyse approfondie des hypothses de dpart amne revenir sur un lment important recueilli dans le cahier des charges : lappartenance des guides un bureau des guides ! Rparer cet oubli oblige reformuler la phrase cl de notre cas pratique : les stagiaires sinscrivent des activits encadres par des guides qui appartiennent un bureau des guides . La partie en italique de cette nouvelle formulation amne donc proposer un nouveau schma thorique (figure 82) et un nouveau schma rel (figure 83). Il faudrait ainsi rajouter une nouvelle table BureauxGuides notre base. 164
Groupe Eyrolles, 2008
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)
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Stagiaires
Num stagiaire Nom Prenom Date naissance Telephone
Inscriptions
Date inscript. Num stagiaire Nom ac vite
Activites
Nom ac vite Num guide
Guides
Num guide Nom Prenom Bureau guides
BureauxGuides
BureauGuides
Figure 83
La contrainte due au bureau des guides impliquerait la cration dune table supplmentaire
Cette nouveaut naura en fait pas de consquence pour les utilisateurs dAccess (cest dailleurs pour cette raison que nous nen avons pas parl jusqu prsent). Ce logiciel dispose en effet comme nous le verrons (page 171) de loption Liste de choix manuelle qui nous vitera de crer la table BureauxGuides. Mais ce nest quune particularit technique. Le vritable schma rel est bien celui de la figure 83, et ce nest que grce une technique particulire disponible sous Access et non sous Base que la table des BureauxGuides pourra tre omise. Par consquent, dans notre cas pratique : Sous Access, le schma rel programmer sera le schma rel dorigine (figure 81) avec quatre tables (Stagiaires, Inscriptions, Activites et Guides) ; Sous Base, le schma rel programmer sera le schma rel modifi de la figure 83 avec cinq tables (Stagiaires, Inscriptions, Activites, Guides et BureauxGuides).
165
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 de cl trangre le champ Correspondant au champ Cl primaire de la table des
(*) Uniquement pour Base Nous sommes maintenant prts crer toutes les autres tables de notre cas pratique. Puisquon ne peut crer les tables dans nimporte quel ordre (il faut en effet respecter la hirarchie matre/esclave, voir page 134), nous vous proposons de crer successivement les tables Guides, Activites et Inscriptions (et galement BureauxGuides, uniquement pour les utilisateurs de Base). Ouvrez donc, si ce nest dj fait, la base de lcole dalpinisme sur votre ordinateur et, pour chaque table liste ci-dessous, crez une nouvelle table en mode Cration et insrez-y les champs proposs.
166
NA Limit 20 caractres Limit 15 caractres Limit 11 caractres (le nom de bureau le plus long est "Les Houches")
Cl primaire Null interdit Oui Null interdit Oui Null interdit Oui
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Le champ NumeroGuide possde exactement les mmes caractristiques (type Numro automatique et cl primaire) que le champ NumeroStagiaire de la table des Stagiaires du chapitre prcdent. Les champs NomGuide et PrenomGuide sont galement semblables leurs quivalents de cette mme table. Rappellons que la proprit Null interdit Oui obligera loprateur saisir une valeur pour le champ considr. La figure 84 dtaille cette table Guide en mode Cration sous Access 2007.
Figure 84
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 remarquons 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
La table des Activites est fort simple, puisqu part le champ NumeroGuide, elle ne comporte que le champ NomActivite. Chaque activit ayant un nom unique (sinon les stagiaires risqueraient de se tromper de cours), ce champ ne comportera pas de doublon. Il constituera donc une excellente cl primaire. La figure 85 dtaille cette table en mode Cration. Attention quand mme. Nous dcidons dutiliser le champ NomActivite comme cl primaire uniquement parce que nous savons que jamais deux activits nauront le mme nom. Cest un cas particulier. De manire gnrale, il vaut mieux opter comme cl primaire pour un champ de type numrotation automatique ainsi que nous lavons vu.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Le champ DateInscription ncessite quelques remarques. Nous pourrions fort bien crer sa place un champ NumeroInscription, cl primaire avec une numrotation automatique. Nous avons choisi dutiliser de faire mieux. Nous allons crer ce champ DateInscription, qui va stocker la date et lheure ( la seconde prs) de la saisie de linscription. Lcole ne possdant quun seul ordinateur, aucune inscription ne pourra tre saisie la seconde prs la mme date quune autre inscription, et ce champ fera en plus une excellente cl primaire. Nous allons utiliser cet effet une fonction intgre dAccess, la fonction Maintenant(), qui va rappeler la date et lheure de la saisie de linscription. Cette fonction doit tre saisie dans la proprit Valeur par dfaut du champ DateInscription, figure 86.
BASE La fonction Maintenant() nest pas disponible sous Base
On ne pourra donc utiliser le champ DateInscription comme cl primaire que si on saisit manuellement date et heure dinscription, ce qui ne sera pas trs pratique. Le mieux est alors de ne pas crer ce champ DateInscription, et de lui substituer le champ NumeroInscription, de type numro automatique, et de le dclarer cl primaire.
A RESSEMBLE EXCEL
Les fonctions intgres dAccess ressemblent leurs quivalents Excel
Access comme Excel possde des fonctions intgres, comme la fonction Maintenant(). Elles ont souvent le mme nom dans les deux logiciels, mais pas toujours... Par exemple, comme nous le verrons page 298, la clbrissime fonction Excel SI() permettant des tests conditionnels SI... ALORS... SINON... a pour quivalent Access VRAIFAUX(), merci au traducteur...
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Le paramtrage dune liste de choix est la premire tape de ltablissement de la relation entre la table matre et la table esclave. Le principe dune liste de choix est de permettre loprateur de saisie de choisir, lors de la saisie des enregistrements de la table esclave, la valeur dun champ parmi les valeurs que ce champ prend dans la table matre correspondante. Par exemple, dans la table Activites, nous paramtrerons pour le champ NumeroGuide une liste de choix qui autorisera loprateur de saisie choisir, pour chaque activit, le numro du guide qui lencadre. Concrtement, pour chaque activit, loprateur disposera ainsi dans la table Activites de la liste de tous les numros de guides de la table des Guides et naura plus qu faire son choix (do le nom de Liste de choix) ainsi que le montre la figure 88.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 dintgrer, 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 rapport aux valeurs dune autre : ce sera le cas quand il faudra slectionner un numro de client, de produit, de stagiaire, de guide, dactivit, etc. ou mme encore un nom de ville dans une liste constamment mise jour.
Il existe avec Access deux types de liste de choix : La liste de choix par rapport une table va proposer loprateur de slectionner, pour la cl trangre de la table esclave, parmi les valeurs 170
Groupe Eyrolles, 2008
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
171
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure 89
Figure 810
Louverture de lassistant Liste de choix pour le champ BureauGuides. Remarquez les champs dj crs, dont la cl primaire.
Choisir Je taperai les valeurs souhaites pour une liste de choix manuelle.
La seconde bote de dialogue de la figure 812 va nous permettre dentrer les valeurs autorises de la liste. Remarquez le contenu de la saisie : nous agissons ici dans le contenu de la table et non sur les noms des champs, tous les caractres et tous les espaces sont donc autoriss, Argentire et Les Houches, et non Argentiere ou LesHouches.
ALLER PLUS LOIN Utiliser deux colonnes ou plus dans une liste de choix manuelle
Vous avez remarqu sur la figure 811 la possibilit de crer une liste de choix avec plus dune colonne. Si par exemple cette liste de choix tait destine saisir des noms de personnes, on pourrait utiliser la premire colonne pour son nom et la deuxime pour son prnom, figure 811. Notez que a ne constituerait quune aide la saisie, puisque de toute faon, seul le contenu de la premire colonne de la liste de choix manuelle sera stock dans le champ considr. Si par contre, toujours dans cet exemple, vous souhaitez stocker dans la table le nom dune personne et pouvoir retrouver automatiquement 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
Figure 812
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les diffrentes valeurs de la liste de choix sont en premire colonne les uns sous les autres. Tous les caractres sont autoriss.
Lassistant se termine avec la bote de dialogue de la figure 813. Conservez ces paramtrages et cliquez sur Terminer. Nous revenons laffichage classique de notre table en mode Cration.
Figure 813
TRUC
Modifier manuellement la liste de choix
Il suffit dintervenir manuellement dans la proprit Contenu (voir figure 814). Par exemple, si lcole dmnage dans la rgion de Marseille pour grimper dans les Calanques, la zone Contenu pourra se libeller ainsi : Marseille;Cassis. Avec les valeurs de la liste entre guillemets et spares par des points-virgule.
173
DExcel Access
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... Bizarrement, Access continue par dfaut autoriser dautres entres que celles de la liste. Pour y remdier, toujours dans longlet Liste de choix de la zone Proprits de notre champ BureauGuides (figure 814), slectionnez la valeur Oui dans la proprit Limiter liste.
Figure 814
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 guillemets, Access les ajoute automatiquement.
Bien sr, la valeur par dfaut doit appartenir la liste de choix ( lorthographe et la casse prs), surtout si vous avez forc, comme conseill avec le critre Limiter liste Oui. 174
Groupe Eyrolles, 2008
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 ultrieurement, 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Paramtrer une liste de choix par rapport une table avec Access
Rappelons le principe dune liste de choix par rapport une table. Elle permet de crer la relation entre la table esclave et la table matre, en apportant la possibilit loprateur de saisie de choisir, pour un champ de la table esclave, les valeurs correspondantes du champ cl primaire de la table matre. Par exemple, pour une table Commandes, il sera possible de choisir dans la table Client le code client du client qui a pass la commande et dans la table Produit, le produit quil a command ou encore, dans notre cas pratique, cette liste de choix autorisera, pour le champ NumeroGuide de la table Activites, de choisir parmi les diffrentes valeurs du champ correspondant NumeroGuide de la table des Guides. Le schma gnral de paramtrage dune liste de choix par rapport une table est le suivant : 1 Ouvrir la table esclave en mode Cration. 2 Crer le champ pour lequel on veut dfinir la liste de choix 3 Lancer lassistant Liste de choix en choisissant le type de donnes
Assistant liste de choix.
4 Spcifier que la liste de choix slectionnera ses valeurs dans une table
(et non dans une liste manuelle comme dans le cas prcdent).
5 Suivre les tapes de lassistant et le terminer. 6 Limiter les choix de loprateur aux valeurs de la liste et ventuelle-
ment paramtrer une valeur par dfaut au champ. Illustrons maintenant le dtail de cette procdure pour le champ NumeroGuide de la table Activites.
175
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 817
Louverture de lassistant Liste de choix pour le champ NumeroGuide. Remarquez le champ NomActivite, cl primaire de cette table Activites.
Nous retrouvons dabord la bote de dialogue sur laquelle nous avions prcdemment choisi loption Je taperai les valeurs souhaites. Prenons cette fois-ci loption par dfaut Je veux que la liste de choix recherche les valeurs dans une table ou une requte (figure 818).
Figure 818
Loption entre une liste droulante par rapport une table (par dfaut) ou par rapport une liste manuelle
OBSERVEZ La liste de choix peut rechercher ses valeurs dans une table ou une requte
Le cas le plus courant est de choisir les valeurs dans une table. Mais on peut galement les rechercher dans une requte (notre table contient par exemple les champs NomGuide et PrenomGuide ; on peut parfaitement imaginer par une requte de joindre ces deux champs et dutiliser ce rsultat comme liste de choix dans la table des Activits).
Access propose ensuite, fort logiquement, un choix faire entre les tables de notre cas pratique. Slectionnons Guides et cliquons sur Suivant (figure 819). Access nous propose ensuite (figure 820) de slectionner les champs de la liste droulante choisir parmi les champs de la table slectionne. Par
Groupe Eyrolles, 2008
176
un clic sur le double chevron vers la droite >>, slectionnons tous les champs disponibles.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 slectionner dans une liste de choix est le rsultat dun compromis entre lefficacit et la lisibilit. Ainsi, nous aurions trs bien pu slectionner uniquement le champ NumeroGuide. Cela aurait fonctionn, mais pas trs efficacement. Loprateur de saisie naurait en effet vu dans la liste droulante que la liste des numros de guide, ce qui nest pas trs parlant : moins de la connatre par cur, il lui aurait fallu avoir sous les yeux la liste des guides avec leur numro... Nous avons slectionn tous les champs de notre table parce quils sont peu nombreux. En aurait-elle comport plus (numro de tlphone, ge, e-mail, RIB, taille, sexe, etc.), nous nous serions certainement contents de slectionner uniquement les noms et prnoms.
177
DExcel Access
La bote de dialogue de la figure 821 permet ensuite de trier la liste de choix. Choisissez par exemple de trier selon le champ NumeroGuide, cl primaire de la table des Guides.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 821
La fentre de la figure 822 confirme ensuite la slection des champs (qui apparaissent ici cte--cte comme sur une feuille de calcul). Remarquez que des donnes dj saisies apparaissent sur cette figure 822, parce que la base utilise pour illustrer cette procdure contenait dj des donnes. Normalement aucune donne na t saisie dans votre base, aucune donne ne doit donc apparatre.
Figure 822
La fentre de la figure 823 permet ensuite de choisir le champ stocker dans la table esclave. Il sagit bien videmment de la cl primaire de la table matre, ici NumeroGuide. 178
Groupe Eyrolles, 2008
Figure 823
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Cen est presque fini. Ne changez rien lcran de la figure 824 et cliquez sur Terminer. Lavertissement de la figure 825 prcise que les relations 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 Activites, 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
Figure 825
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous venons ainsi de programmer la liste de choix pour le champ NumeroGuide de la table Activites. Restent encore programmer les deux listes droulantes de la table des Inscriptions pour les champs NomStagiaire (par rapport la table des Stagiaires) et NomActivite (par rapport la table des Activites). La mthode est la mme que celle que nous venons de dcrire. Dtaillons-en quand mme les principales tapes. Pour crer la liste droulante pour le champ NumeroStagiaire, il faut, aprs avoir ouvert la table des Inscriptions en mode Cration et slectionn le champ NumeroStagiaire : 1 Ouvrir lassistant Liste de choix. 2 Spcifier que les donnes source se trouvent dans une table. 3 Slectionner la table des Stagiaires. 4 Slectionner uniquement les champs NumeroStagiaire ainsi que les noms et prnoms. 5 Demander un tri par NumeroStagiaire. 6 Dcocher la case Colonne cl cache (recommand). 7 Confirmer que le champ NumeroStagiaire sera stock dans la table Inscriptions.
8 Conserver ltiquette propose et terminer lassistant. 9 Enregistrer la table et la nommer Inscriptions. 10 Dans les proprits du champ, basculer Limiter liste de Non Oui
dans longlet Liste de choix. Pour crer la liste droulante sur le champ NomActivite, il faut, aprs avoir ouvert la table des Inscriptions en mode Cration et slectionn le champ NomActivite : 1 Ouvrir lassistant Liste de choix. 2 Spcifier que les donnes source se trouvent dans une table. 3 Slectionner la table des Activites. 4 Slectionner uniquement, ce sera suffisant, le champ NomActivite. 5 Demander un tri par NomActivite. Lcran avec la case Colonne cl cache (recommand) et celui dans lequel il faut confirmer le champ
Groupe Eyrolles, 2008
PRODUCTIVIT
Quel tri choisir pour la liste de choix ?
Demander un tri de la liste de choix par NumeroStagiaire prsente lavantage dafficher la liste dans lordre des numros. Maintenant, quand on doit choisir parmi 500 stagiaires, on ne connat pas forcment par cur les numros dordre. Un tri de la liste de choix par NomStagiaire peut tre intressant.
180
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Prenons par exemple le cas de la dernire cl primaire cre, le champ DateInscription de la table des Inscriptions (figure 827).
Pour un champ Cl primaire, Access bascule automatiquement cette 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 Indexation 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 interdirait fcheusement deux homonymes de sinscrire, figure 828.
Nous remarquons dabord que la proprit Null interdit a pour valeur Non. trange? Oui et non. Oui, parce que cette proprit devrait tre Oui (une cl primaire doit obligatoirement avoir une valeur). Mais en fait Non, parce que, mme si cette proprit est Non, Access considre en fait quelle est Oui (pour lui, une cl primaire est Null interdit Oui de toutes faons). En dautres termes, Access a bascul la proprit Null interdit Oui sans nous le dire (ni nous le montrer) pour la simple raison que ce champ est cl primaire... Passer cette proprit de Non Oui ne servirait donc rien, puisquelle est dj Oui (mme si elle parat toujours Non)... Vous suivez ? Ajoutons cela que paramtrer une valeur par dfaut interdit ce champ dtre Null. Nous remarquons aussi la proprit Index. Appliquer un index sur un champ cre, en parallle de la table, un index de recherche pour acclrer laccs linformation. Cette proprit peut avoir trois valeurs : Non (aucun index nest appliqu sur le champ); Oui sans doublon (un index est appliqu sur le champ et aucun doublon ne sera accept); Oui avec doublon (un index est appliqu sur le champ et les doublons sont accepts).
doublons pour permettre une recherche plus rapide selon le nom du stagiaire.
181
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 829
Sous Access 2003 : cliquez sur le bouton Relation de la barre doutils (figure 830), ou passez par le menu Outils et choisissez loption Relations.
Figure 830
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
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.
Nous observons aussi quun trait (une relation) unit chaque table esclave sa table matre, de la cl primaire de la table matre la cl trangre de la table esclave. Si votre fentre des relations ne ressemble pas notre figure 831, cest trs certainement la consquence dune erreur de construction des tables et des listes de choix. Reportez vous alors directement la section Rsoudre les difficults lies au paramtrage des relations, page 189.
183
DExcel Access
Figure 832
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
La fentre des relations apparat alors selon la figure 833, avec les symboles 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
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 base de donnes relationnelle, la cration de formulaires et la saisie de donnes, au chapitre 9, page 195. Si vous avez rencontr des difficults dans ce paramtrage, ne vous inquitez pas : vous ntes ni les premiers, ni les derniers. Le sujet est dlicat, le logiciel est sensible et les causes derreurs multiples. Reportezvous dans ce cas la page 189.
184
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
185
DExcel Access
Figure 834
Figure 835
Lobservation de la figure 835 montre que les tables sont classes par ordre alphabtique, et non selon lordre logique de la phrase cl comme nous laurions souhait : les stagiaires sinscrivent des activits encadres par des guides appartenant un bureau des guides. Rorganisez 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
Nous allons maintenant dcrire comment tablir une relation entre deux tables.
186
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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, signifiant 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 :
187
DExcel Access
La fentre des relations de la figure 838 montre une chane ininterrompue de relations de type 1 n entre toutes les tables de la base : Dans cette chane de relations de 1 n, le 1 est systmatiquement du ct de la cl primaire de la table matre et le n de celui du champ cl trangre de la table esclave. Cette chane visualise lorganisation logique de notre base (ici, un stagiaire sinscrit une activit encadre par un guide appartenant un bureau des guides ).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 838
Ceci termine le paramtrage des relations avec Base. Nous allons maintenant poursuivre notre tude des bases de donnes relationnelles avec le chapitre suivant consacr aux formulaires et la saisie de donnes.
ALLER PLUS LOIN La fentre des dtails de la relation
La figure 839 illustre la fentre du dtail de la relation entre BureauxGuides et Guides par le champ BureauGuides. Cette fentre sobtient en double cliquant, dans la fentre des relations, sur le trait matrialisant la relation. Elle reprsente lquivalent sous Base du concept dintgrit rfrentielle tudi avec Access, page 183. Quelle est le sens des options qui y apparaissent ? Options de mise jour (et son option principale Mise jour cascade). Imaginons, mme si cest trs improbable, que le bureau des guides de Chamonix devienne celui de Megve, station trs proche mais au caractre alpin nettement moins marqu. Cocher cette option permettra de modifier Chamonix en Megve dans la table BureauxGuides et de raffecter automatiquement les guides inscrits au bureau de Chamonix celui de Megve. Do le terme de cascade. Options deffacement (et son option principale Supprimer la cascade). Cette fois-ci, le bureau des guides de Chamonix ferme. Avec cette option, la suppression de lenregistrement Chamonix dans la table des BureauxGuides va supprimer galement tous les guides de la table des Guides inscrits ce bureau. Do le terme de suppression en cascade. Lexprience prouve quau niveau auquel nous aspirons, ces options, mme si elles paraissent sduisantes, sont plutt viter. Par exemple, supprimer par erreur lenregistrement Chamonix de la table des BureauxGuides va alors supprimer (si Supprimer la cascade est valid) les guides de ce bureau dans la table des Guides : qui va alors soccuper des stagiaires dont ces guides assuraient lanimation?
188
Si vous avez rencontr des difficults lors de ce paramtrage, reportezvous tout de suite la section suivante, traitant des solutions aux difficults de paramtrage des relations.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 840
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), recrezles et recommencez les oprations de paramtrage des relations. Supprimez toutes les tables de la base et reprennez toute la programmation depuis le dbut (dans le bon ordre cette fois). Attention, ds quune relation est cre entre deux tables, il nest pas possible de supprimer une des tables. Il faut commencer par supprimer la relation dans la fentre des relations ; pour cela, affichez la fentre des relations, slectionnez la relation concerne et appuyez sur la touche Suppr.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 841
Figure 842
La table des Guides na pas pour cl primaire le champ NumeroGuide mais un autre champ intitul N.
190
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 concerne. 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Aucune cl primaire na t dfinie. Le message davertissement (ici avec Access) propose den crer une par dfaut.
Voici comment procder pour vous sortir de ce mauvais pas : 1 Dclarez que ce champ intrus nest plus cl primaire en dslectionnant le bouton Cl primaire (sinon vous ne pourrez pas le supprimer). 2 Supprimez ce champ intrus. 3 Dclarez comme cl primaire le champ souhait. 4 Recommencez la procdure de paramtrage des relations. Si cela ne fonctionne pas, songez tout reprendre zro... Moralit (qui nous rappelle quelque chose, non ?) : pas de table sans cl primaire !
Il nexiste pas de liste de choix entre la table esclave et sa table matre (Access)
Cette section ne concerne que les utilisateurs dAccess. Si pour le champ cl trangre de la table esclave vous navez pas cr la liste de choix par rapport aux valeurs de la cl primaire de la table matre, vous navez pas tabli la relation entre esclave et matre. La table esclave napparat pas du tout dans la fentre des relations, ou apparat, sans tre lie aux autres par une relation orpheline en quelque sorte (figure 844).
Figure 844
La table matre Guides nest pas lie sa table esclave Activites (lassistant Liste de choix na pas t lanc pour le champ NumeroGuide de la table Activites).
191
DExcel Access
Voici ce quil vous reste faire : 1 Dans la table esclave, pour le champ cl trangre, rectifiez loubli en dfinissant la liste de choix par rapport la cl primaire de la table matre. 2 Affichez les relations et tentez dtablir lintgrit rfrentielle comme indiqu prcdement.
TRUC Afficher les tables manquantes dans la fentre des relations
Normalement, quand vous affichez la fentre des relations, toutes les tables concernes apparaissent. 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 845 Le bouton Ajouter une table dans la fentre des relations pour Access 2007
Figure 846 Le bouton Ajouter une table dans la fentre des relations pour Access 2003
Nous vous proposons donc le tableau ci-dessous, rcapitulant les principales 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 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Crez pour tous les champs cl trangre des tables esclaves la liste de choix par rapport la cl primaire de leur 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 (Chamonix, Argentire, Les Houches) Dans la fentre des relations, appliquez lintgrit rfrentielle chaque relation Dans la fentre des relations, cliquer-glisser chaque champ cl trangre des tables esclaves vers le champ cl primaire de leur table matre
Les principales causes dinsuccs dans le paramtrage des relations sont : une base mal ne (schmas thorique et rel incorrects) ; un oubli de cl primaire dans chaque table ; pas de rappel sous forme de cl trangre dans la table esclave de la cl primaire de la table matre ; une saisie prmature de donnes incompatibles. Aucune solution simple ne peut tre donne pour parer ces difficults ; il faudrait presque un coach individuel, tant les sources de dysfonctionnement dans ltablissement des relations sont nombreuses. La seule solution pour sen prmunir est de suivre la mthodologie de construction de base de donnes relationnelle dcrite ci dessus. Nous voici maintenant prts saisir des donnes dans nos tables.
193
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
SOMMAIRE
Nous disposons maintenant dune base de donnes cohrente, avec des tables, des champs (dont une cl primaire) et un rseau de relations entre ces tables. Tout est prt pour recevoir des donnes. Nous allons ici apprendre crer et utiliser les formulaires, loutil certainement le plus adapt la saisie de donnes dans un SGBDR.
B Formulaire et sous-formulaire B Assistant Cration de formulaire B Modification de formulaire B Menu daccueil B Saisie des donnes
DExcel Access
Aprs avoir programm les tables et leurs champs conformment au schma rel, aprs avoir tabli les relations entre les tables, et avant de saisir les donnes dans la table, il est temps maintenant de programmer les formulaires pour saisir les donnes. Les formulaires sont des outils conviviaux daide la visualisation, saisie, modification et suppression de donnes. Nous verrons dans le dtail comment les crer et les utiliser. Nous verrons galement comment crer un formulaire avec un sous-formulaire, pour agir sur deux tables simultanment (par exemple pour avoir accs simultanment aux informations relatives un stagiaire et ses inscriptions). Et mme comment utiliser un formulaire ouverture automatique pour crer un menu convivial dutilisation de notre base !
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Enfin, aprs avoir voqu la possibilit de saisie directe des donnes dans la table, nous terminerons par ltude des principales caractristiques et difficults que lon peut rencontrer en saisissant, modifiant et supprimant des donnes.
196
Figure 91
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Cette table des clients en mode contenu nest pas trs sexy...
Figure 92
En conclusion, un formulaire est une interface ergonomique et efficace dassistance la saisie, la modification et la consultation des donnes. Il fiabilise et acclre la saisie des donnes. Et en plus, comme nous allons le voir dans ce chapitre, il est trs simple crer !
197
DExcel Access
Pour saisir les donnes dune table, nous serons le plus souvent amens utiliser un formulaire simple, que nous allons vous apprendre crer dans ce chapitre. Un formulaire est un type particulier dobjet (avec les tables, requtes et tats/rapports). Chaque objet peut, pour simplifier, tre cre soit en mode Cration (celui que nous avons utilis pour la cration de nos tables) soit en mode Assistant. notre avis, le mode idal pour crer formulaires, requtes et tats/rapports est le mode Assistant ; le mode Cration est prfrable pour les tables.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 93
198
Figure 94
Sous Access 2003 : dans le volet de navigation, slectionnez la famille Formulaires. Double-cliquez ensuite sur Crer un formulaire laide de lassistant (figure 95).
Figure 95
Sous Base : cliquez sur Formulaire dans le volet de navigation. Double-cliquez ensuite sur Utiliser lassistant de cration de formulaire (figure 96). Nous voici maintenant sous le contrle des assistants respectifs de notre logiciel ; nous navons plus qu nous laisser guider pour obtenir notre premier formulaire. Leur ergonomie est normalement suffisamment claire pour ne pas poser de problme particulier. Illustrons leur mode opratoire au travers de la cration dun formulaire concernant la table Stagiaires.
199
DExcel Access
Figure 96
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 97
200
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 formulaire ddi cette table. Il peut en tre autrement. Si une table comporte des lments confidentiels, il est possible de crer des formulaires diffrents ne donnant accs qu certains champs en fonction de loprateur.
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).
BASE Sous-formulaire
Juste aprs le choix de la table et des champs, Base propose de crer un sous-formulaire pour pouvoir la fois agir sur la table des Stagiaires et des Inscriptions. Cette option ne nous concerne pas ici.
201
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 99
Figure 910 Cration dun formulaire Base : loption par dfaut offre le plus de possibilits daction au formulaire.
202
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 911
Le style Solstice est choisi pour Access parmi les diffrentes possibilits offertes par Access 2007
Enfin, Access et Base proposent de nommer ce formulaire du nom de la table source (ici Stagiaires). Cest une excellente initiative, parce quainsi nous associerons sans hsitation le formulaire la table auquel il donne accs : chaque couple table-formulaire portera le mme nom. Access et Base proposent aussi douvrir directement le formulaire en mode Contenu (pour sen servir) ou en mode Cration/bauche pour le modifier. Choisissons le mode Contenu pour en voir tout de suite le rsultat. La figure 912 illustre pour Access cette tape finale de lassistant :
Figure 912
La fin de lassistant Formulaire sous Access. Le formulaire sappelera Stagiaires (du nom de la table source) et souvrira par dfaut en mode Contenu.
203
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure 913
Figure 914
Le formulaire Stagiaires Base en mode Contenu. Remarquez les outils en bas de fentre pour naviguer denregistrement en enregistrement.
204
Comme la table des Stagiaires ne comporte aucune donne, ce formulaire 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 denregistrement en enregistrement. Remarquez galement, dans le volet de navigation, la prsence de ce formulaire Stagiaires dans la liste des formulaires disponibles. Maintenant, la facilit avec laquelle nous avons cr ce formulaire ne doit pas masquer quelques dfauts : Les noms de champs ont t repris comme tiquettes de champs. Cest parfaitement logique, mais pas forcment clair pour un oprateur de saisie dont le travail nest pas de dcrypter le jargon utilis par le crateur de la base de donnes. Ltiquette DateNaissanceStagiaire napparat pas en entier. Nous allons remdier simplement ces quelques dfauts en modifiant le formulaire en mode Cration (bauche pour Base).
TRUC Limportance de la cohrence des noms
Nous avons largement insist sur limportance de la cohrence et de la lisibilit des noms utiliss pour les objets et les champs. Nous en voyons ici toute limportance : le formulaire bas sur la table des Stagiaires sappelle automatiquement de ce mme nom. Imaginez un instant que nous ayons appel cette table Stagaires (avec une faute dorthographe), cette faute nous aurait poursuivi tout au long de la vie de la base.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 formulaire en lui-mme. Il nest pas trs facile darriver du premier coup ses fins, il est mme possible que vos perdiez des donnes importantes lors de vos premires tentatives. Cest pourquoi nous vous conseillons de travailler sur une copie du formulaire (voir page 161) pour tester vos modifications.
ATTENTION Ne jamais conserver des versions inutiles dobjets
Le gros risque quand on fait des copies dobjets au sein de la mme base est bien videmment doublier de supprimer des lments obsoltes, voire innapropris ou mme faux. La confusion va sinstaller. La plus grande rigueur est donc ncessaire ce stade : toujours supprimer les objets qui nont plus dutilit !
205
DExcel Access
Ceci dit, vous devrez rarement modifier un formulaire cr par lassistant. Notre formulaire Stagiaire est exploitable tel quel, mme sil nest pas parfait. Concrtement, si on est press ou si la perfection de prsentation nest pas requise, un formulaire issu directement de lassistant pourra trs bien convenir. Avis aux paresseux ou aux gens qui ne souhaitent pas inutilement perdre leur temps... Pour modifier un objet, par exemple un formulaire, il faut utiliser le mode Cration (notez quavec Access 2007 nous utiliserons une variante de ce mode appel Page). La figure 915 prsente laspect dun formulaire en mode Cration, ici sous Access 2007, mais la prsentation Access 2003 et Base nest pas significativement diffrente.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 915
La section centrale de cette figure 915 prsente le formulaire en luimme. On y voit des lments qui serviront, en mode Contenu, afficher les donnes. Ces lments sappellent des contrles. Notre formulaire des Stagiaires comporte ici cinq contrles, un pour chacun des champs que ce formulaire permettra de saisir (en lespce les quatre champs de notre table des Stagiaires).
Figure 916
Un formulaire en mode Contenu, avec cinq contrles, leur tiquette et leur contrle proprement dits
206
La figure 916 permet de mieux comprendre ce quest un contrle et ses diffrents lments. Cette figure visualise le formulaire dfinitif des Stagiaires, en mode Contenu cette fois, avec des donnes saisies : gauche, ltiquette du contrle, son titre. Il ne sagit que dune tiquette destine informer loprateur du champ sur lequel est plac modifiable volont dans son emplacement. droite, le contrle en lui-mme, qui correspond au champ proprement 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 contrles 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 manipulation et intermdiaire entre le mode Contenu et le mode Cration.
BASE Modifier un formulaire
Il existe deux diffrences essentielles par rapport Access 2007. Tout dabord, puisquil ny a pas de mode Page, il faut utiliser le mode bauche. Ensuite, la mthode pour modifier les proprits du contrle est diffrente : 1. Slectionnez le contrle concern dans le mode bauche et, par un clic droit, choisissez 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 affectant la valeur Non la proprit Activ).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
207
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Pour afficher un formulaire en mode Page, il faut distinguer selon que le formulaire est dj ouvert ou non : Sil est dj ouvert : par un clic droit dans le volet de navigation sur le nom du formulaire, choisissez loption Mode Page. Vous pouvez aussi cliquer sur la flche de liste droulante du bouton de changement de mode daffichage (en haut gauche de longlet Accueil, figure 918), et choisir loption Mode Page. Si le formulaire nest pas ouvert, slectionnez-le dans le volet de navigation, cliquez dessus avec le bouton droit et choisissez mode Page. La figure 919 dtaille le formulaire Stagiaires en mode Page : Au centre de lcran se trouve le formulaire en lui-mme. On remarque que lon peut en slectionner une partie en cliquant dessus, celle-ci sentoure alors dun liser orange. En haut de lcran on a la possibilit dafficher deux rubans doutils spcifiques, Format (par dfaut) et Rorganiser. droite de lcran, on trouve la liste des champs disponibles pour ce formulaire (ceux de la table source des Stagiaires).
Figure 918
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
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 ralignerons et redimensionnerons les contrles ensuite.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 922 Ltiquette a t modifie. 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 stagiaires (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
Ce sont malheureusement aussi deux oprations pnibles et dlicates si on ny est pas habitu. Le principe gnral est de dplacer et de redimensionner le contrle, exactement comme vous le feriez dune forme sous Excel, Word ou Powerpoint, en effectuant un cliquer-glisser (pour le dplacer) ou en slectionnant un bord du contrle puis en le faisant glisser (pour redimensionner le contrle). Le meilleur conseil quon puisse vous donner en la matire est dexprimenter ces manipulations en utilisant une copie de votre formulaire en mode Page. Le formulaire dorigine ne sera alors pas modifi et vous pourrez vous exercer en toute tranquillit.
ALLER PLUS LOIN viter la tabulation dans le champ cl primaire de la table
Quand nous naviguerons dans notre formulaire en mode Contenu pour saisir des donnes (page 226), nous utiliserons la touche Tabulation pour naviguer de contrle en contrle. 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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
du champ NumeroStagiaire est force Non : le pointeur ne se positionnera plus sur ce contrle en mode Contenu.
Ceci clt notre expos concernant la cration de formulaire simple. Vous voici arms pour crer tous les formulaires des diffrentes tables de notre cas pratique. La section suivante ne concerne que les utilisateurs de Base. Si vous utilisez Access, passez directement la page 215.
210
Les formulaires crs sous Access comportent automatiquement ces listes de choix, puisquelles sont directement intgres dans les proprits 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 comportent 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 comporter une liste de choix par rapport aux trois valeurs (Chamonix, Argentire et Les Houches) du mme champ de la table des BureauxGuides.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Le mode opratoire est globalement le suivant : 1 Ouvrir le formulaire pralablement cr grce lassistant en mode
bauche.
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.
Figure 925
Loutil Zone de liste permet dinsrer un contrle de zone de liste dans un formulaire en mode bauche.
211
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure 926
Figure 927
champ devant safficher dans la liste de choix. Dans notre exemple, il sagit de BureauGuide, figure 928. Attention, ce champ est ncessairement cl primaire de la table source (dans le cas contraire il ny aura pas de relation de un plusieurs. Cliquez sur Suivant. 5 Troisime tape : liaison des champs. Cette tape permet de lier le champ de la table esclave ( gauche) avec celui de la table matre ( droite), figure 929. 212
Groupe Eyrolles, 2008
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 928
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure 930
Figure 931
Le contrle tiquette ABC de la barre doutil Contrles de formulaire permet dinsrer des zones de texte ou des tiquettes.
Figure 932
La modification de la ligne Titre de longlet Gnral des Proprits du contrle tiquette permet dafficher le texte souhait dans ltiquette.
214
Figure 933
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Le formulaire en mode Saisie comporte bien la liste droulante avec les diffrentes valeurs de la table matre associe.
Les perfectionnistes nont plus qu ajuster les tailles et les alignements de champs pour obtenir un formulaire parfait.
215
DExcel Access
la premire tape de lassistant, lcran de slection des tables et des champs, slectionnez les champs des deux tables souhaites. Dans notre exemple : 1 Slectionnez la table Stagiaires dans la liste de choix des tables. 2 Slectionnez tous les champs de cette table. 3 Slectionnez, sans passer lcran suivant, la table des Inscriptions. 4 Slectionnez alors les champs de cette table ( lexception du champ NumeroStagiaire, cl trangre de cette table et dj affich avec le champ cl NumeroStagiaire de la table des Stagiaires). Vous devez alors obtenir laffichage de la figure 934.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 934
Ltape suivante propose de prsenter les informations par Stagiaires ou par Inscriptions (en fonction des tables que nous avons slectionnes dans ltape prcdente). Elle laisse aussi le choix entre Formulaire avec sous-formulaire (recommand) ou Formulaire attach. Validez les rglages de la figure 935.
Figure 935
Il est possible de prsenter le formulaire organis selon la premire table slectionne ou selon la seconde
216
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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Le formulaire est termin, vous obtenez un rsultat proche de la figure 937. Il est constitu dun formulaire (pour les stagiaires) incluant un autre formulaire (pour les inscriptions), la manire des poupes russes, chacun dentre eux fonctionnant exactement comme tous les autres formulaires.
Figure 937
217
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Vous avez suffisamment de connaissances sur les SGBDR pour savoir quune base de donnes contient trs vite de nombreux objets. Par exemple, la base de notre cas pratique contient dj quatre tables (cinq avec Base) et autant de formulaires ; sans compter le formulaire et son sous-formulaire. Et nous nen sommes quau dbut : dautres objets, comme des requtes et des tats/rapports, vont venir rejoindre notre collection. Autant dire que nous risquons de nous perdre. Alors imaginez pour lutilisateur de notre base qui ne connat ni Access ni les particularits de notre base... En dautres termes, lclatement des informations et des traitements va rapidement compliquer lutilisation quotidienne de la base, surtout si elle est employe par plusieurs personnes : comment sy retrouver ? Une solution simple et lgante consiste crer un formulaire qui souvrira automatiquement et qui regroupera diffrents boutons ddis telle ou telle tche, un peu la manire des liens hypertextes dune page Web : il suffira de cliquer sur le bon bouton. Cette possibilit nest malheureusement offerte que par Access. Il va falloir crer un formulaire spcifique avec les boutons daction puis paramtrer louverture automatique de ce formulaire.
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. Inutile 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 939
figure 940.
Figure 940
219
DExcel Access
gistrement spcifique ou pour accder tous les enregistrements. Nous avons choisi la seconde option (celle par dfaut) sur la figure 941.
Figure 941
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 942
pour pouvoir vous y retrouver aprs. Modifiez si vous le souhaitez ce nom, et cliquez sur Terminer. Cest fait. Il ne reste qu enregistrer ce formulaire en le nommant Menu par exemple. Pour tester ce formulaire, ouvrez-le en mode Contenu. Cliquez sur le bouton que nous venons de crer, il excute alors laction programme (ici, louverture de notre formulaire Stagiaires). Reste maintenant automatiser laffichage de ce formulaire lors de louverture de la base, et la cration de notre menu ouverture automatique sera termine.
220
Figure 943 Les diffrents contrles de la bote outils de formulaire (Access 2003).
Pour paramtrer louverture automatique dun formulaire, par exemple notre menu, lors de louverture de la base de donnes, il faut : Sous Access 2007 : cliquez sur le bouton Office, puis sur le bouton Options Access (tout en bas droite) et enfin, dans la catgorie Base de donnes active, slectionnez le formulaire Menu dans la liste droulante de Afficher le formulaire, comme le montre la figure 944.
Figure 944
Sous Access 2003 : dans le menu Outils, option Dmarrage, slectionnez le formulaire Menu dans la liste droulante de Afficher formulaire/page.
la prochaine ouverture de la base, notre formulaire de menu souvrira automatiquement comme souhait. Nous naurons plus qu cliquer sur les boutons disponibles pour effectuer automatiquement laction attache.
221
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les spcificits de la saisie des donnes dans une base de donnes relationnelle
La saisie des donnes dans une base de donnes prsente deux caractristiques trs importantes : Dabord les contraintes dintgrit rfrentielle vous interdiront (heureusement) certaines manipulations. Par exemple, vous ne pourrez pas inscrire un stagiaire une activit qui nexiste pas, pas plus que vous ne pourrez supprimer un guide encadrant une activit (ou une activit comportant des inscrits). Ensuite toutes les donnes saisies sont enregistres immdiatement et automatiquement dans la base et les tables sont mises jour et enregistres en temps rel. Toute suppression denregistrement sera dfinitive !
222
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 supprimer des donnes (dautant que, comme nous le verrons, toute suppression denregistrement est dfinitive) : il ne sera pas possible de supprimer un enregistrement de la table matre tant que des enregistrements 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 stagiaire 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
223
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 945
Les figures 946 949 reprsentent les donnes que nous vous proposons de saisir dans votre base dcole dalpinisme.
Figure 946
Figure 947
224
Les volumes de donnes proposs pour notre cas pratique sont trs faibles. Cest simplement pour ne pas insister trop lourdement sur la phase de saisie des donnes, qui reste en tout tat de cause assez pnible, et pour garder une certaine souplesse de travail. Il est vident quun SGBDR est conu pour traiter des volumes bien plus consquents (des milliers, voire des millions denregistrements).
225
DExcel Access
On cre un nouvel enregistrement en cliquant en bas du formulaire sur licne Nouvel enregistrement, comme sur la figure 950.
premier enregistrement, enregistrement prcdent, compteur denregistrement, enregistrement suivant, dernier enregistrement, nouvel enregistrement
On se dplace de champ en champ en cliquant sur les boutons de dplacement entre enregistrements en bas de formulaire, comme le montre la figure 950. Vous apprcierez notamment le confort apport par les listes de choix dans les champs cl trangre des tables esclaves : par exemple, en saisissant les inscriptions, vous naurez qu faire votre choix parmi les stagiaires et les activits disponibles.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Une table en mode Contenu ressemble trangement une feuille de calcul dun tableur, avec des lignes (correspondant des enregistrements) et des colonnes (reprsentant les champs). La ligne vierge en bas de tableau reprsente un nouvel enregistrement. Il suffit de passer de cellule en cellule et dalimenter les champs. Les listes de choix ventuellement 226
Groupe Eyrolles, 2008
paramtres sont disponibles. Les figures 946 949 page 224 illustrent des tables en mode Contenu.
Pour supprimer un enregistrement : Avec un formulaire, slectionnez lenregistrement et cliquez sur loutil Supprimer. En mode Contenu dune table, slectionnez lenregistrement comme avec un tableur (en slectionnant la ligne complte) et utiliser le bouton Supprimer (ou la touche Suppression de votre clavier). Dans les deux cas, le message obtenu (figure 952) confirme que la suppression sera dfinitive, ne rpondez pas au hasard.
Figure 952
Concernant la suppression denregistrement, en dehors du fait que toute suppression est toujours dfinitive, deux remarques essentielles sont faire : Le message de la figure 953, Suppression impossible apparat typiquement quand vous tentez par exemple de supprimer lenregistrement dun guide qui encadre une activit : cest une consquence heureuse du principe dintgrit rfrentielle qui veut que tout enregistrement dpendant dans la table esclave ait son quivalent dans la table matre.
Figure 953
Il est impossible de supprimer un enregistrement dune table matre ayant des enregistrements dpendants dans la table esclave.
Dans une table possdant un champ numrotation automatique, supprimer un enregistrement fait perdre dfinitivement son numro. Concrtement, imaginons quune table Clients comporte 100 enregis Groupe Eyrolles, 2008
227
DExcel Access
trements numrots par un champ numrotation automatique de 1 100. Si nous supprimons le 99e client, le premier client cr aprs cette suppression portera le numro 101, et le numro 99 ne sera plus jamais attribu. Progressivement, au fil des suppressions denregistrements, la table ressemblera ainsi un gruyre avec autant de trous dans les valeurs de cl primaire que de suppressions denregistrements (dont les numros ne seront jamais rattribus).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 954
Vous tes invit saisir une valeur pour ce champ Null Interdit.
Vous ne respectez pas le format du champ, par exemple en tentant dentrer une date non valide, figure 955.
Figure 955
Vous tentez de crer un doublon dans un champ Cl primaire, par exemple en tentant de crer une activit portant le mme nom quune activit existante, figure 956.
Figure 956
228
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 959 Le message Access 2003 spcifiant quune valeur est requise pour le champ PrenomGuide de la table des Guides (remarquez le franglais).
Il existe bien dautres causes derreur de saisie. Il nest bien videmment pas possible de les lister toutes. Nos conseils en la matire, outre de suivre scrupuleusement ceux qui prcdent, se rsument sen remettre au bon sens : toujours bien observer son cran ; lire attentivement les messages (parfois abscons) et les dcoder ; agir en consquence.
229
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
230
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 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Pour tous les champs cl trangre des tables esclaves, crez la liste de choix par rapport la cl primaire de leur 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 (Chamonix, Argentire, Les Houches) Dans la fentre des relations, appliquez lintgrit rfrentielle chaque relation Dans la fentre des relations, cliquer-glisser chaque champ cl trangre des tables esclaves vers le champ cl primaire de leur table matre Crez les formulaires (avec ventuellement des sous-formulaires) avec lassistant Cration de formulaire 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 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
Programmation des relations (sous Base) Programmation des formulaires Saisie des donnes
231
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
10
SOMMAIRE
Nous avons notre disposition des donnes dans une base parfaitement structure. Nous allons maintenant nous attaquer la partie certainement la plus intressante de notre projet : lexploitation proprement dite des donnes grce aux requtes.
DExcel Access
Ce chapitre marque une rupture par rapport aux prcdents. Jusqu prsent, nous avons appris analyser une problmatique de base de donnes, programmer sa structure et entrer des donnes. Mais quavonsnous fait de ces donnes ? part les stocker dans des tables, pas grand chose en vrit... Par exemple, pouvons-nous dire rapidement qui participe 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 informations 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 chapitre, nous allons apprendre crer une requte simple et dcouvrir comment une requte, couple un formulaire, peut mme simplifier la saisie des donnes dune base de donnes relationnelle.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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. Maintenant, comment lister clairement tous les stagiaires, activit par activit ? Mme si linformation est prsente dans les tables, elle nest gure oprationnelle puisque les donnes sont clates entre plusieurs tables ; tout ce quon pourra faire sera de visualiser la table Inscriptions en mode Contenu et de la trier selon le champ NomActivite. Les inscrits seront alors lists par activit, mais ne seront indiqus que par leur NumeroStagiaire, les noms et prnoms tant stocks dans la table des Stagiaires : pas trs lisible, figure 101. Seule une requte, regroupant NumeroStagiaire et
Groupe Eyrolles, 2008
234
NomActivite de la table Inscriptions, mais aussi NomStagiaire et PrenomStagiaire, 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 !
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
235
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Ensuite, certains champs de la future requte peuvent se choisir dans plusieurs tables. NomActivite est prsent dans la table Activites (sous forme de cl primaire) et dans la table Inscriptions (sous forme de cl secondaire). NumeroStagiaire est la fois cl primaire de la table Stagiaires et cl trangre de la table Inscriptions. Nous avons systmatiquement opt pour slectionner le champ de la table pour lequel il est cl primaire. L encore, les tris et recherches seront facilits. Et cela nous simplifiera galement la vie lavenir : quand nous aurons besoin de modifier cette requte, nous saurons que le champ choisi, quand ce cas
Groupe Eyrolles, 2008
236
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
237
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Lassistant Cration de requte est alors lanc. Il suffit maintenant de rpondre aux questions qui vous sont poses, tape par tape. Illustrons son fonctionnement par la cration dune requte listant, dans notre cas pratique, les stagiaires inscrits aux diffrentes activits, activit par activit.
Cette tape va permettre de slectionner les champs que lon souhaite voir participer la requte. Dans notre exemple, nous souhaitons voir apparatre dans la requte : le champ NomActivite de la table Activites ; les champs NumeroStagiaire, NomStagiaire et PrenomStagiaire de la table Stagiaires. Pour chacune des tables concernes par la requte (figure 103) : 1 Slectionnez dans la liste droulante la table souhaite. 2 Passez les champs souhaits dans la zone Champs slectionns. 3 Recommencez ventuellement les tapes 1 et 2 pour les autres tables ou passez ltape suivante.
Figure 103
Les champs NomActivite (de la table Activites) et NumeroStagiaire, NomStagiaire et PrenomStagiaire (de la table des Stagiaires) sont slectionns pour participer la requte.
238
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 Stagiaires. 4 Dans cette table, slectionnez les champs NumeroStagiaire, NomStagiaire 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 ncessaires.
FAQ Questions relatives la slection des champs dune requte
Et si je me trompe ? Si vous avez un peu mlang les champs dans lcran de slection 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
Notre requte des stagiaires par activits ne comporte aucun champ numrique. Nous allons donc choisir le type requte Dtaille, et cliquer sur Suivant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 104
Figure 105
Observez quAccess propose de nommer la requte du nom de la premire table qui a t utilise dans sa construction. Cela part dun bon sentiment, mais ce nest pas trs oprationnel. Vous allez vite comprendre que nous serons amens multiplier les requtes dans notre base, chaque requte tant ddie un usage spcifique. 240
Groupe Eyrolles, 2008
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 stagiaires par activits, le plus simple est certainement de la nommer StagiairesParActivites, 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, choisissons loption Ouvrir la requte... terminons lassistant. La requte souvre en mode Contenu comme sur la figure 106.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 106
La section suivante traite de la cration de requte en mode Cration et non plus laide de lassistant comme nous venons de le faire. Pour plus dinformations sur le mode Contenu dune requte, reportez-vous directement la page 244
241
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 107
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
Groupe Eyrolles, 2008
Figure 108
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 109
La slection dun champ dune requte en mode bauche par liste de choix
243
DExcel Access
La figure 1010 dtaille notre requte StagiairesParActivites en mode Cration/bauche aprs insertion de tous ses champs.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1010
La requte est termine. Nous pouvons maintenant la fermer (en nomettant videmment pas de lenregistrer) ou la visualiser en mode Contenu.
RAPPEL Grer les modes daffichage dune requte
Il nest pas inutile de rappeler lessentiel quand la gestion des modes daffichage dune requte, le mode Contenu et le mode Cration/bauche : Double-cliquer sur le nom de la requte dans le volet de navigation de lcran daccueil de la base de donnes ouvre toujours la requte en mode Contenu. Pour ouvrir directement une requte en mode Cration/bauche, slectionner la requte dans le volet de navigation et, par un clic droit, accder loption mode Cration (Access) ou Modifier (Base). Pour basculer une requte du mode Cration au mode Contenu, accder par un clic droit loption Mode feuille de donnes. Avec Base, il faut fermer la requte et la rouvrir. Pour basculer du mode Contenu au mode Cration, utiliser le bouton Excuter ou accder par un clic droit loption Mode cration. Avec Base, il faut fermer la requte et la rouvrir.
Si la requte nest pas ouverte, il suffit de double-cliquer sur son icne dans le volet de navigation. Si elle est dj ouverte en mode Cration/ bauche, il suffit de la basculer en mode Contenu selon les techniques exposes en apart. Une requte en mode Contenu se prsente, aussi bien sous Access que 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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Figure 1012
245
DExcel Access
Maintenant, pour exacte que soit linformation, nous pouvions nous attendre mieux. Lapparence de notre requte en mode Contenu nest en effet pas particulirement attrayante : imaginez son apparence ds que nous aurons 1 000 stagiaires inscrits 50 activits, ce ne sera gure lisible... Aucune rupture ou saut de page nest effectu chaque changement dactivit. Ce sera le rle des tats (ou rapports sous Base) que de crer des rapports professionnels pour visualiser les rsultats de nos requtes, se reporter au chapitre 13 page 310.
Lidal serait que vous vous exerciez tout de suite crer plusieurs requtes dans votre base exemple. Si vous tes utilisateur dAccess, testez la construction de chaque requte par lassistant puis en mode Cration, vous forgerez ainsi vos prfrences entre ces deux techniques. Nous vous proposons ainsi de crer deux autres requtes, listant respectivement : Les activits auxquelles chaque stagiaire est inscrit (requte ActivitesParStagiaires). Pour chaque guide, les activits quil encadre avec les stagiaires qui y sont inscrits (requte StagiairesParActivitesParGuides). Remarquons tout de suite que la requte ActivitesParStagiaires sera exactement le pendant de celle que nous venons de crer, StagiairesParActivites. Les mmes champs y sont prsents, mais ordonns diffrement : dabord NumeroStagiaire, NomStagiaire et PrenomStagiaire de la table Stagiaires, puis NomActivite de la tables Activites. Ce qui confirme que lordre de slection des champs a un impact immdiat sur le rsultat de la requte. La requte StagiairesParActivitesParGuides, elle a un impact sur trois tables, Stagiaires, Activites et Guides.
Figure 1013
246
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1015
Figure 1016
Bien entendu, ces corrections ne sont que des propositions. Noubliez jamais quune requte, cest toujours du sur mesure et jamais du prt-porter. Remarquez toutefois quelles respectent les rgles que nous avions voques page 236, par rapport au choix des champs : Toujours intgrer dans une requte la cl primaire de chaque table participant la requte. Toujours prfrer la cl primaire de la table matre la cl trangre de la table esclave. Se limiter aux champs ncessaires et suffisants la requte concerne.
247
DExcel Access
Nous avons maintenant lessentiel pour dmarrer ltude de requtes plus sophistiques en commenant, comme dans la section suivante, par utiliser une requte comme source dun formulaire pour faciliter la saisie des donnes de notre base exemple.
Nous venons de crer une requte regroupant des donnes de plusieurs tables. Nous verrons, dans les chapitres suivants, dautres types de requtes plus sophistiques, permettant par exemple de dtecter des enregistrements nayant pas de correspondance dans une autre table (pour lister les guides de secours par exemple) ou pour crer des champs calculs (pour connatre le montant payer pour chaque stagiaire). Mais une requte ne sert pas uniquement faciliter lanalyse des donnes de la base, comme celles que nous venons dvoquer. Elle peut aussi apporter une aide la saisie des donnes. Prenons un exemple concret. Pour saisir les inscriptions des stagiaires de notre cas pratique, nous disposions jusqu prsent de deux formulaires. Dabord le formulaire Inscriptions, qui naffiche que le numro du stagiaire : quand nous aurons 150 000 inscrits, il sera facile de confondre le numro 4 807 et le 4 870. Et ensuite le formulaire et son sous-formulaire, qui, eux, affichent toutes les donnes du stagiaire en mme temps que ses inscriptions : formulaire plus complet certainement, mais peut-tre un peu trop (a-t-on vraiment besoin de son adresse et de son numro de tlphone quand on saisit les inscriptions ?). Lide que nous allons mettre en uvre dans cette section est la suivante. Nous allons crer une requte spcifique contenant les champs ncessaires et suffisants pour grer les inscriptions. Et nous utiliserons cette requte comme source dun formulaire quil ny aura plus qu lutiliser pour saisir nos inscriptions.
248
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
La cration de cette requte ne prsente aucune difficult particulire. La figure 1017 la reprsente en mode Cration. Notez que nous avons appel cette requte SaisieInscriptions.
Figure 1017
249
DExcel Access
cet effet, ouvrez le formulaire en mode Cration, slectionnez le contrle souhait (successivement NomStagiaire et NumeroStagiaire) puis faites un clic droit sur le contrle et slectionnez Non dans la proprit Arrt tabulation de longlet Toutes, figure 1018.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1018
ALLER PLUS LOIN Affecter les proprits Arrt tabulation (TabStop) Non aux champs grs par le SGBDR
Nous vous avons conseill de laisser le plus souvent possible Access et Base grer les champs cl primaire, par exemple avec des numros automatiques. Appliquer cette proprit Arrt tabulation ce type de champ dans un formulaire permet trs utilement de ne pas laisser loprateur la possibilit de le modifier par mgarde : au cours de la saisie, le curseur sautera ce champ cl primaire, qui deviendra ainsi purement informatif. Lquivalent Base de cette proprit est TabStop. On la paramtre en mode bauche en doublecliquant sur le contrle et slectionnant Non pour la proprit TabStop de longlet Gnral, figure 1019.
250
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 donnes 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 ces tables. En conclusion de cette section, nous navions auparavant utilis les requtes que pour extraire et manipuler les donnes en provenance de tables ou de requtes. Nous venons dexprimenter, par ce nouveau formulaire, des requtes susceptibles de fonctionner lenvers , en entrant des donnes dans une table, selon le schma de la figure 1021 : la requte SaisieInscriptions utilise les donnes des tables Stagiaires et Inscriptions ; le formulaire SaisieInscriptions utilise tous les champs de la requte SaisieInscriptions ; le formulaire SaisieInscriptions permet en retour de modifier les donnes de la table des Inscriptions (mais pas des Stagiaires).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Un requte Access peut galement servir de source un formulaire, par exemple pour faciliter la saisie de donnes. Mais cette utilisation doit rester exceptionnelle. Lassistant Cration de requte Access possde un fonctionnement suffisamment clair pour quil ne soit pas ncessaire dy revenir. Par contre, le tableau 101 rcapitule lessentiel sur la procdure de cration de requte en mode Cration/bauche.
252
Tableau 101 tapes de cration de requte en mode Cration/bauche Phase tape Dtail/remarque
Access 2007 : dans longlet Crer, groupe Autre, cliquer sur le bouton Cration de requte. Access 2003 : cliquer sur Requtes dans le volet de navigation, puis double-cliquer sur Crer une requte en mode Cration. Base : cliquer sur Requtes dans le volet de navigation, puis sur Crer une requte en mode bauche. tape 1 : ajout des tables. tape 2 : insertion des champs dans la ligne Champs. tape 3 : enregistrement. Slectionner une une les tables participant la requte. Insrer les champs un un par un glisser-dposer ou par la liste droulante dans la case Champ. Enregistrer et donner un nom clair et prcis la requte (par exemple, StagiairesParActivitesParGuides).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous allons dcouvrir au cour des chapitres suivants dautres possibilits tonnantes offertes par les requtes.
253
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
11
SOMMAIRE
B Modes cration/bauche,
Au chapitre 3, nous avons appris slectionner des enregistrements dans les listes de donnes, nous allons dcouvrir ici les fonctions quivalentes sous Access et Base ; autant dire que nous ne serons pas dus, tant leurs possibilits et leur facilit demploi sont tonnantes. Jugez par vous mme...
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
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 donnes, 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 comment procder des slections denregistrements selon des critres personnalisables. 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
256
257
DExcel Access
Reste entrer le critre de slection des enregistrements. Il suffit cet effet douvrir la requte modifier en mode Cration/bauche, puis de saisir le ou les critres sur la ligne Critre dans la colonne du champ souhait. La figure 11-1 montre le critre ncessaire notre requte StagiairesNeige.
Figure 111
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
La saisie des critres ncessite quelques remarques. Tout dabord, il est inutile dajouter les guillemets " (Access) ou ' (Base) lors de la saisie des critres, le logiciel les ajoute tout seul. Ensuite il est bien videmment indispensable de respecter la lettre lorthographe des contenus des champs (Neige et non Naige). Par contre, respecter la casse nest pas 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
La requte slection que nous venons de crer fonctionne parfaitement bien mais prsente un inconvnient pour bien faire, puisque lcole propose plusieurs activits, il faudrait crer autant de variantes de cette requte StagiairesNeige : une pour le rocher AD, une pour le rocher TD, etc. Si lcole comportait 100 activits, cela ferait quand mme un peu trop de requtes... Lalternative que nous allons tudier ici va consister crer une requte slection paramtre. Lors de son excution, cette requte va afficher une bote de dialogue avec une zone de saisie ; nous naurons qu y entrer le nom dune activit de lcole et la requte nous en renverra les participants. Nous pourrons ainsi nous contenter de cette seule requte, potentiellement capable de lister les stagiaires de nimporte quelle activit.
258
Le mode opratoire est exactement le mme que pour une requte slection 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
Lors de lexcution de la requte, Access ou Base affichent dans une bote de dialogue le message prcdemment saisi entre crochets, dans notre exemple Entrez le nom de lactivit souhaite SVP . Entrez alors le nom de lactivit pour laquelle vous souhaitez connatre les inscrits dans la zone de saisie (figure 11-5) et validez, les rsultats saffichent comme souhait.
Figure 115
Nous allons maintenant conclure cette tude des critres de slection dans une requte avec quelques prcisions concernant les critres logiques ET et OU.
Groupe Eyrolles, 2008
259
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 116 Le paramtrage dun tri dans une requte avec Base.
Combiner des critres permet de rpondre des questions plus complexes, comme lister les participants de lactivit Neige et ceux de lactivit Goulottes, ou encore les participants de lactivit Goulottes ns avant le 01/01/1990. Il sagit dans ces deux cas de variations sur le thme des combinaisons de critres laide des oprateurs ET et OU. Pour combiner plusieurs critres sur le mme champ (par exemple pour lister les participants aux activits glaciaires Neige et Goulottes), il suffit de saisir dans la colonne du champ concern les critres les uns aux dessous de sautres en utilisant les lignes Ou. La figure 11-7 illustre comment lister les stagiaires inscrits lactivit Neige ou lactivit Goulottes.
Figure 117
La saisie de deux critres OU (toutes les lignes disponibles en dessous des critres dj saisis peuvent recueillir des lignes OU)
SYNTAXE
Suprieur , strictement suprieur ...
Utilisez = accol > ou < pour spcifier ou gal : => ou =<
Pour appliquer des critres sur plusieurs champs la fois, par exemple pour lister les participants de lactivit Goulottes ns avant le 01/01/ 1990, il suffit de saisir les diffrents critres dans les colonnes des champs concerns. La figure 11-8 illustre le paramtrage de la requte listant les participants lactivit Goulottes ns avant le 01/01/1990.
Groupe Eyrolles, 2008
260
Notez le paramtrage du critre concernant le champ DateNaissanceStagiaire (ne saisir que <01/01/1990, Access ajoute les caractres #).
Figure 118
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les combinaisons de plusieurs critres sur plusieurs champs reclent quant eux quelques piges : il faut dans ce cas bien penser rpter si ncessaire lensemble des critres de tous les champs pour chaque ligne Ou utilise. Par exemple : Les paramtres de la figure 11-9 listent les stagiaires des deux activits Neige et Goulottes, tous ns avant le 01/01/1990. Le critre <01/01/1990 est rpt pour les deux lignes Ou de critres Neige et Goulottes. Par contre, sur la figure 11-10, le critre <01/01/1990 nest prsent que sur la ligne Goulottes, et nest donc valide que pour cette activit. Cette requte listera donc dune part tous les participants lactivit Goulottes ns avant le 01/01/1990, et dautre part tous les participants lactivit Neige, quelque soit leur date de naissance.
Figure 119 Les critres de chaque champ sont rpts sur chaque ligne Ou
261
DExcel Access
Famille
Critre
Explication
Divers Texte
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Affiche les enregistrements dont la valeur de champ est nulle Renvoie les enregistrements ne commenant pas par N Liste les stagiaires dont le nom comporte 10 caractres ou moins Renvoie les enregistrements dont la valeur du champ est infrieure ou gale 500 Renvoie les enregistrements dont la valeur du champ est gale 500 ou 600 Renvoie les enregistrements dont la valeur du champ se termine par ,99 Renvoie les enregistrements dats du 23 mars 1980
Est Null dans le champ TelStagiaire slectionne les stagiaires qui nont pas le tlphone Appliqu au champ NomActivite, liste toutes les activits sauf Neige Exclut Duchemin (8 caractres) Appliqu au champ NumeroStagiaire, renvoie les 500 premiers inscrits Appliqu au champ NumeroStagiaire, renvoie les stagiaires compris entre le 500e et le 600e inscrit Pas dexemple dans notre base Appliqu au champ DateNaissanceStagiaire, renvoie lenregistrement de Dupont Albert
Nombre
Date
Renvoie les enregistrements des anniversai- Appliqu au champ DateNaissanceStagiaire, renres survenant en mars (troisime mois de voie lenregistrement de Dupont Albert lanne)
Lobjet dune requte de non-correspondance est de rechercher dans une table matre les enregistrements pour lesquels une valeur particulire de cl primaire est absente dans la cl secondaire de sa table esclave. Concrtement, une requte de ce type pourra rechercher les produits dune entreprise qui nont jamais t commands, ou encore les salaris dune entreprise qui nont jamais particip un voyage du comit dentreprise, ou encore les titulaires dune carte bleue qui nont jamais utilis cette carte pour un achat dans un magasin...
262
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 possder 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 NumeroGuide, cl trangre de la table esclave de la mme relation.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1111
Illustration dune non-correspondance : Chlo nencadre pas dactivit puisque son identifiant de la table matre nest pas prsent dans la table esclave. Attention : ces donnes ne correspondent pas celles du cas pratique...
Concrtement, pour crer ce type de requte, nous allons utiliser sous Access lexcellent Assistant cration de requte de non-correspondance. Sous Base, pour lequel cet assistant nexiste pas, nous allons nous initier SQL, qui est le vritable langage de programmation des requtes ainsi que nous allons le voir (page 263).
263
DExcel Access
Pour lancer lassistant Cration de requte de non-correspondance : Sous Access 2007 : cliquez sur loutil Assistant requte dans longlet Crer, groupe Autre, et choisissez loption Assistant requte de non-correspondance.
Sous Access 2003 : slectionnez la famille Requte dans le volet de navigation, puis double-cliquez sur Nouveau et choisissez loption Assistant requte de non-correspondance (figure 11-12).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1112
Nous sommes maintenant sous le contrle de lassistant qui va nous mener bon port, condition videmment de rpondre judicieusement aux questions qui vont nous tre poses... La premire tape de lassistant consiste choisir la table dont on souhaite extraire les enregistrements. Les guides de secours sont saisis dans la table des Guides. la question Quelle table ou requte contient les enregistrements que vous souhaitez voir dans les rsultats de la requte ? , il faut donc slectionner la table des Guides, figure 11-13. Cliquez sur Suivant.
TRUC La hirarchie matre esclave
dans la requte de non-correspondance
Dans ltape 1 de lassistant de cration de requte de non-correspondance, il faut slectionner la table matre de la relation. Dans ltape 2, il faut en slectionner la table esclave.
La deuxime boite de dialogue permet de spcifier la table dans laquelle nous nallons pas retrouver certaines valeurs de la cl primaire de la table spcifie ltape prcedente. Il sagit ici de la table Activites (les guides de secours ne verront pas leur NumeroGuide rappel dans cette table), comme sur la figure 11-14. Cliquez sur Suivant. Ltape suivante de lassistant va fixer le champ selon lequel la recherche de non-correspondance entre les deux tables spcifies prcedemment va seffectuer. Il ne peut sagit que du champ autorisant la relation entre ces deux tables comme le confirme la logique : un guide de secours ne voit pas son NumeroGuide de la table Guides rappel dans la table Activites (figure 11-15). Cliquez sur Suivant.
Groupe Eyrolles, 2008
264
Figure 1113
Figure 1114
Figure 1115
265
DExcel Access
Il sagit maintenant dindiquer Access les champs que nous dsirons voir affichs par la requte de non-correspondance. Si nous najoutions aucun champ cette tape, nous nobtiendrions que les NumeroGuide des guides de secours, ce qui serait exact mais pas trs parlant... Intgrez donc lensemble des champs de notre table source des Guides, figure 1116. Cliquez sur Suivant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1116
Lassistant se termine par lcran classique qui permet denregistrer la requte et den choisir le mode douverture, Cration ou Contenu. Le nom propos par dfaut par Access pour notre requte, Guides et Activits sans correspondance est exact, mais pas forcment trs explicite, il vaut mieux lui substituer le nom GuidesDeSecours, parfaitement clair. Choisissons ensuite de visualiser les rsultats de la requte comme sur la figure 11-17 et cliquons sur Terminer.
Figure 1117
266
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Comment le vrifier ? Son NumeroGuide (dans la table des Guides) est le 2. Il suffit douvrir la table Activites en mode Contenu et de constater que seule la valeur 2 nest pas prsente dans la colonne NumeroGuide, figure 11-20. Ce qui confirme bien que seul ce guide nencadre pas dactivit.
Figure 1120
Seuls les numros de guide 1, 3 et 4 sont prsents dans la table Activites. Le guide 2 est donc guide de secours.
Comment, sur le plan technique, fonctionne une requte de noncorrespondance ? Pour chaque valeur de la cl primaire de la table matre, elle recherche la prsence de la mme valeur dans la cl trangre de la table esclave. chaque fois que la recherche ne trouve pas la correspondance, elle renvoie ladite valeur (ainsi que les autres champs de lenregistrement de la table matre). Tout lintrt est bien videmment dexcuter cette recherche rapidement et sans se tromper, mme sur des milliers denregistrement.
267
DExcel Access
tenu comme prcdemment, mais en mode Cration et mme en mode SQL, pour savoir concrtement comment Access a traduit les instructions de lassistant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Demandez donc laffichage de notre requte de non-correspondance entre Guides et Activites en mode Cration pour obtenir un affichage proche de la figure 11-21. Nous y retrouvons dabord les champs de la table des Guides (pour afficher ltat civil des guides de secours) et enfin le champ NumeroGuide de la table Activites, sur lequel la recherche de non-correspondance a t effectue. Notons galement deux particularits : Pour le dernier champ NumeroGuide de la table Activites, le critre de slection paramtr automatiquement par lassistant Access est Est Null. En effet, un guide de secours a un NumeroGuide dont la valeur ne se retrouve pas dans le mme champ de la table Activites. La case Afficher est dcoche pour ce mme champ. Ce champ nest donc pas affich par la requte en mode Contenu : tant mieux, puisque justement sa valeur est nulle !
Figure 1121
Nous aurions trs bien pu programmer cette requte directement en mode Cration en reproduisant les paramtres de la figure 11-21, condition que nous ayons su comment. Lobjet de ce livre nest pas dapprendre toutes les finesses de paramtrage de ce mode Cration, mais bien plutt de nous initier aux grandes rgles prsidant la cration de base de donnes simples et efficaces. Heureusement, lassistant est venu notre secours dans ce cas particulier.
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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))
Signification
Linstruction SELECT permet de spcifier les champs afficher. 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 . Linstruction FROM dsigne la table matre du couple matre/esclave (ici 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. Linstruction WHERE permet dintroduire une condition dans notre code SQL. La condition est ici que le guide de secours possde un NumeroGuide qui ne se retrouve pas dans la table des Activites.
269
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
SELECT
Par consquent, le code SQL de notre requte de non-correspondance dvelopp sous Access devient pour Base :
SELECT "Guides"."NumeroGuide", "Guides"."NomGuide", "Guides"."PrenomGuide", "Guides"."BureauGuides" FROM "Guides" LEFT JOIN "Activites" ON "Guides"."NumeroGuide" = "Activites"."NumeroGuide" WHERE ( ( ( "Activites"."NumeroGuide" ) IS NULL ) )
Nous allons maintenant crer une requte Base en mode SQL pour y placer ce code. Et le tour sera jou...
270
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 comptables 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 chouchouter un peu plus...
TRUC Trouver les doublons pour un champ susceptible de devenir cl primaire
Il est frquent dutiliser des donnes dj existantes pour crer une table Access ou Base, notamment en important un tableau Excel ou Calc (page 150). Ces donnes peuvent parfois 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 possible 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Avant de passer la programmation de cet exemple, recherchons ensemble quel champ est susceptible de contenir un doublon si un stagiaire est inscrit plusieurs activits. Ce nest en effet pas aussi vident quil parat. Dans notre exercice, le doublon ne sera ni dans la table des Stagiaires (puisque par dfinition chaque stagiaire ny est prsent quune seule fois) ni dans la table Activites (puisque toujours par dfinition chaque activit ny est prsente quune fois). Cest donc dans la table des Inscriptions quil faut rechercher notre doublon. Une analyse approfondie amne constater que si un stagiaire est inscrit plusieurs activits, son numro de stagiaire est prsent plusieurs fois dans le champ NumeroStagiaire, figure 11-24.
Figure 1124
Le stagiaire n1 est inscrit quatre activits, les n2 et n3 deux activits et le n4 une seule.
Nous avons donc dtermin le champ susceptible de contenir des doublons pour rsoudre notre exercice. Il ne nous reste plus qu btir la requte correspondante. Comme dans le cas de la requte de non-correspondance, Access dispose dun assistant spcifique que Base ne possde pas ; nous allons donc utiliser cet assistant avec Access, puis nous utiliserons le code SQL gnr pour lappliquer la requte Base. 272
Groupe Eyrolles, 2008
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1125
dtermin dans notre exercice quil sagit du champ NumeroStagiaire, figure 11-26. Cliquons sur Suivant. 3 Ajout ventuel dautres champs Access propose dajouter des champs parmi les autres champs de la table. Slectionnons-les tous, figure 11-27. Cliquons sur Suivant. 4 Fin de lassistant Access propose de nommer la requte Rechercher les doublons pour [nom de la table source]. Pourquoi pas, mais ce nest pas trs clair... StagiairesMultiActivites sera plus parlant. Par ailleurs, nous retrouvons la possibilit douvrir la requte en mode Contenu ou en mode Cration. Choisissons le mode Contenu pour visualiser tout de suite le rsultat de la requte, figure 11-28, et cliquons sur Terminer.
Groupe Eyrolles, 2008
273
DExcel Access
Figure 1126
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1127
Figure 1128
Ne jamais oublier de changer le nom par dfaut dune requte. Noter que loption Modifier la structure est coche.
274
Notre requte saffiche en mode Contenu, comme le montre la figure 1129. 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 activit) 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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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...
275
DExcel Access
La figure 11-31 montre notre requte StagiairesMultiActivites en mode Cration lissue de lassistant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1131
La table des Stagiaires napparat pas dans les tables disponibles pour la requte.
Les champs ajouter la requte appartiennent une table (celle des Stagiaires) qui ne participe pas encore la requte. Pour ajouter une table dans une requte en mode Cration/bauche, il faut utiliser loutil Ajouter une table, figures 11-32 et 11-33.
Figure 1132
Lajout des tables manquantes dans une requte en mode Cration/bauche. Ajouter les diffrentes tables et cliquer sur Fermer.
276
Figure 1133
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous souhaitons maintenant insrer nos deux champs NomStagiaire et PrenomStagiaire, non droite du champ NomActivite par cliquer glisser comme nous savons dj le faire (page 245), mais entre NumeroStagiaire et NomActivite. Pour insrer un champ entre deux autres, il suffit de cliquer sur le champ souhait et de le glisser sur le champ gauche duquel on veut insrer le champ et de relcher le clic : le champ slectionn sinsre alors entre le champ de gauche et celui au dessus duquel on la pos. Par exemple, pour insrer NomStagiaire entre NumeroStagiaire et DateInscription : 1 Cliquez sur NomStagiaire dans la table des Stagiaires. 2 Glissez-le au-dessus du champ DateInscription. 3 Relchez le clic. La figure 11-34 montre la requte modifie dfinitive. Il suffit de lexcuter pour connatre la liste des trois stagiaires concerns, figure 11-35. Noubliez pas de lenregistrer en la fermant.
Figure 1134 La requte dfinitive Rechercher les doublons. Remarquez le critre de slection pour le champ NumeroStagiaire.
Figure 1135
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;
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Il nous suffit maintenant de copier ce code dans une requte Base en mode bauche et de lexcuter pour obtenir son rsultat, figure 11-36.
278
Figure 1136
La requte Base cre en SQL donne les mmes rsultats que celle de la figure 11-35.
Ce chapitre a dvelopp le fonctionnement des requtes slection sous SGBDR, au travers notamment de la slection paramtre et conviviale avec un message interactif, de la requte de non-correspondance et de la recherche de doublons. Les requtes slection permettent, comme leur nom lindique, de rechercher des enregistrements particuliers selon des critres entirement paramtrables. Il suffit dentrer lesdits critres sur la ligne correspondante dune requte en mode Cration/bauche. Il est possible de combiner des slections sur plusieurs champs la fois et/ou plusieurs critres sur le mme champ en utilisant la ligne Ou. Les requtes de non-correspondance, cas particulier de requte slection, permettent didentifier les enregistrements dune table matre qui nont pas de correspondance dans la table esclave, par exemple pour construire la liste des guides de secours. Les utilisateurs dAccess emploieront avec profit lexcellent assistant ddi, ceux de Base utiliseront le mode SQL. Le tableau ci dessous rsume la cration dune telle requte avec Access. Les requtes de recherche de doublons, autre cas particulier de requte slection, permettent, quant elles, disoler les champs comportant des doublons, par exemple pour identifier les fidles stagiaires de notre cole qui se sont inscrits plusieurs activits. Les utilisateurs dAccess utiliseront avec profit lexcellent assistant ddi, ceux de Base utiliseront le mode SQL. Le tableau ci-dessous rsume la cration dune telle requte avec Access.
279
DExcel Access
Tableau 113 tapes pour la cration dune requte de non-correspondance (Access) Phase tape Illustration dans notre cas pratique de recherche des guides qui nencadrent pas dactivits
Access 2007 : dans longlet Crer, groupe Autre, cliquez sur loutil Assistant requte et choisissez loption Assistant requte de noncorrespondance. Access 2003 : slectionnez la famille Requte dans le volet de navigation, puis double-cliquez sur Nouveau et choisissez loption Assistant requte de non-correspondance. Choix de la table source (table matre) Choix de la table de non-correspondance (table esclave) Choix du champ de non-correspondance (cl primaire et secondaire) Slection des champs afficher Fin de lassistant Guides Activites NumeroGuide NomGuide et PrenomGuide Noubliez pas de donner un nom significatif la requte
Tableau 114 tapes pour la cration dune requte Rechercher les doublons (Access) Phase tape Illustration dans notre cas pratique de recherche de stagiaires inscrits plus dune activit
Lancement de lassistant
Access 2007 : dans longlet Crer, groupe Autre, cliquez sur loutil Assistant requte, puis sur loption Assistant requte trouver les doublons. Access 2003 : cliquez sur la famille Requtes du volet de navigation, puis sur le bouton Nouveau et choisissez Assistant requte trouver les doublons. tape 1 : slection de la table source tape 2 : slection du champ susceptible de contenir les doublons tape 3 : ajout dautres champs de la table source tape 4 : Fin de lassistant Inscriptions NumeroStagiaire DateInscription et NomActivite Donnez un nom caractristique la requte NomStagiaire et PrenomStagiaire
280
Enfin, nous nous sommes initis au langage SQL utilis par les SGBDR ; les modes Assistant et Cration/bauche ntant que des interfaces permettant 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
281
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
12
SOMMAIRE
B Prendre en compte
Au menu de ce chapitre, le meilleur des requtes : jongler avec les chanes de caractres pour des mailings impeccables, effectuer des calculs pour savoir qui nous doit de largent, etc. Nous saurons ainsi crer des requtes contenant des champs calculs, un peu la manire dun tableur, mais dans une base de donnes !
B Cascade de modifications B Requte calcul B Champ calcul B Oprateur arithmtiques B Concatnation de chane
de caractres
DExcel Access
Ce chapitre conclut ltude des requtes perfectionnes commence au chapitre prcdent. Nous aborderons ensuite ltude des requtes calcul, qui permettent de calculer un champ partir dautres, par exemple pour calculer le montant des cotisations diminues de la ristourne laquelle le stagiaire a droit, ou encore pour effectuer des tests conditionnels du style Si...alors... sinon... Nous terminerons par la ralisation de requtes de synthse afin, par exemple, de calculer le montant des cotisations impayes par stagiaire. cet effet, cette tude ncessite dans un premier temps de revenir sur la structure de la base de donnes relationnelle de notre cas pratique.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Un cas plus complexe serait que la cotisation soit double : dune part une cotisation annuelle fixe (une sorte dabonnement) et dautre part une cotisation 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 modlisation 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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 spcifierons si le stagiaire est jour dans ses cotisations pour lactivit concerne. Le tableau ci-dessous rsume les modifications intgrer dans notre base dcole dalpinisme new look :
Tableau 121 Liste des modifications de structure intgrer dans le cas pratique pour grer les cotisations Table Champ Caractristiques
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Type Montaire sans dcimale Null interdit Oui Type Pourcentage sans dcimale, valeur par dfaut 0 % (ou Dcimal avec une dcimale, car par exemple 10 % = 0,1) Null interdit Oui Type Case cocher de type Oui/Non (cocher la case signifiera alors que la cotisation est rgle). Notez que pour ce type de champ la proprit Null interdit na pas de sens (puisque un champ Oui/non est ncessairement gal Oui ou Non)
Nous constatons ainsi que ce simple ajout des cotisations a un impact sur trois des quatres tables de notre base, soit tout de mme 75 % : il ny a pas de petites modifications dans une base de donnes, toute modification peut avoir des consquences importantes. Mais nous ne nous en tirons pas si mal...
SCURIT Tester diffrentes versions dune base de donnes relationnelles
Nous aimerions probablement tester nos modifications sur une nouvelle version de la base en gardant lancienne intacte afin de pouvoir y revenir le cas chant (si jamais par exemple nous narrivions pas passer correctement nos modifications). Ou mme pour grer sparment ces deux modles. Avec un tableur ou un traitement de texte, le plus simple pour conserver des versions antrieures dun fichier est souvent dutiliser loption Enregistrer sous du menu Fichier. Ce nest pas possible avec Access ou Base, car cette option nest pas disponible. Il faut alors effectuer un copier/coller de la base dans lexplorateur 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 supprimer toute version nayant plus dutilit : le risque de confusion est trop important.
286
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
La structure en chane dAccess et de Base oblige ensuite reprendre tous les objets qui dpendent des objets modifis. Tous les objets (formulaires, requtes ou tats/rapports), dj crs, qui dpendent des tables modifies et pour lesquels lajout des champs supplmentaires est ncessaire, doivent tre mis niveau. Cette mise niveau peut se faire sous deux formes. Si les objets modifier ne sont que des objets simples, cest--dire sil ne suffira que de quelques minutes pour les rcrer avec
Groupe Eyrolles, 2008
287
DExcel Access
les nouveaux champs, nous vous conseillons de supprimer les objets obsoltes et de les recrer : modifier un objet est souvent plus compliqu que de le recrer (surtout pour un formulaire ou un tat). Dans le cas par contre o vous avez cr un formulaire ou une requte vritablement complexe, il pourra tre plus rapide de le modifier en mode Cration/ bauche que de le recrer.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
288
En ce qui nous concerne, dans notre cas pratique, tous les formulaires de saisie dans les tables Stagiaires, Inscriptions et Activites ont et crs par lassistant. Il est donc conseill de les supprimer purement et simplement et de les recrer avec les mmes assistants. Les requtes dj cres, elles, ne ncessitent pas lintgration des nouveaux champs ; il est donc inutile de les modifier. Au cas o vous souhaiteriez tout de mme modifier manuellement vos formulaires, voici la procdure suivre pour ajouter un champ un formulaire existant selon le logiciel que vous utilisez : 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 127
Sous Access 2003 : 1 Ouvrez le formulaire en mode Cration. 2 Ouvrez le volet Liste des champs avec loutil Ajouter des champs (figure 12-8). 3 Ajustez ventuellement la dimension de la zone Dtail. 4 Glissez le champ souhait lendroit voulu du formulaire. 5 Positionnez et dimensionnez finement le contrle.
Figure 128
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 129
Reste enfin, une fois les tables et les formulaires mis niveau, actualiser 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 constatation 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 donnes de la page 285. Utilisez cet effet soit les formulaires rectifis soit les tables en mode Contenu. Concernant le champ CotisationOk (de type Oui/Non) de la table des Inscriptions, la figure 12-10 dtaille les donnes que nous vous proposons de saisir dans votre base.
Figure 1210
La table Inscriptions en mode Contenu. Le champ CotisationOk coch signifie que la cotisation a t rgle.
Nous voici prts reprendre notre apprentissage du fonctionnement des requtes. 290
Groupe Eyrolles, 2008
Rien ne distingue une requte calcul dune autre requte, hormis la prsence dans cette requte dun champ calcul soit partir de champs de tables, soit partir dautres champs calculs. On peut ainsi crer, exactement 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 quelques instants pour savoir comment crer une requte calcul avec un champ calcul.
Par exemple, la figure 12-11 montre la requte permettant de calculer, partir des champs PrixUnitaire et QuantiteCommandee dune table
Groupe Eyrolles, 2008
291
DExcel Access
PrixUnitaire
Figure 1211
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).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Avant daborder la cration dun champ calcul, terminons cette prsentation en prcisant que les oprateurs arithmtiques utiliser seront ceux que nous utilisons dj sous tableur, savoir +, , * et /.
292
Tableau 122 Liste des champs pour le calcul des cotisations ristournes restant dues Dans la table... Il faut slectionner... Pour...
Stagiaires
Savoir qui nous doit de largent Calculer le champ CotisationRistournee Justifier au stagiaire de la somme exige liminer les cotisations rgles Justifier au stagiaire de la somme exige Justifier au stagiaire de la somme exige
Inscriptions Activites
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Les syntaxes de formules de calcul avec Access et Base ressemblent en partie celle de leurs homologues Excel et Calc. Le mode opratoire gnral est le suivant : 1 Ouvrir la requte calcul en mode Cration/bauche. 2 Se placer en haut de premire colonne disponible. 3 Entrer le nom du nouveau champ suivi du caractre : et de la formule de calcul. Nous devons ici crer dans notre requte MauvaisPayeurs le champ calcul CotisationRistournee selon la formule Cotisation * (1 Ristourne). Dans notre exemple, il va falloir : 1 Ouvrir la requte MauvaisPayeurs en mode Cration/bauche. 2 Se placer en haut de premire colonne disponible (ici, juste gauche du champ Cotisation). 3 Entrer le nom du nouveau champ suivi du caractre : et de la formule de calcul. Dans le cas prsent, il faut saisir trs prcisment, avec exactement les mmes caractres et sans les espaces (figure 12-12) : CotisationRistournee:Cotisation*(1-Ristourne).
Figure 1212
La saisie du champ calcul Access : le nom du champ suivi de : et de la formule de calcul, le tout sans 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
Il suffit maintenant dexcuter la requte pour constater que Josette Duchemin bnficie de sa ristourne, figure 12-14.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1214
Le champ CotisationRistournee montre bien une cotisation allge de 10 % pour Josette Duchemin.
Crer des noms de champs sans espaces simplifie donc sensiblement la saisie des formules de champs calculs !
Reste enfin apporter quelques modifications de dtail pour finaliser notre requte. Tout dabord, le libell du champ CotisationRistournee tait trop large pour safficher tel quel dans la colonne standard du mode Cration. Il nous a suffit de llargir (exactement comme nous laurions fait pour une colonne Excel) pour lafficher intgralement. 294
Groupe Eyrolles, 2008
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1215 La syntaxe dun champ calcul Base : les noms de champ entre , le nom du champ calcul sur la ligne Alias
Enfin, le champ calcul CotisationRistournee brut ne comporte pas de format . Pour lobtenir comme sur la figure 12-14, il faut modifier ses proprits en mode Cration : 1 Effectuez un clic droit sur le champ CotisationRistournee ; 2 Slectionnez loption Proprits ; 3 Saisissez les options de la figure 12-16.
Figure 1216
Les principales causes dinsuccs de cration de champs calculs sont les suivantes : Le nom du champ calcul comprend des espaces ou des caractres accentus ou bizarres. Le nom du champ calcul nest pas spar de sa formule par le caractre : . Lorthographe relle des noms des champs utiliss nest pas respecte dans la formule, figure 12-17. Des crochets [ ] ou des parenthses ( ) sont ouverts ou ferms mal propos. Il y a plus de parenthses ouvrantes que de fermantes, ou inversement.
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.
Reste enfin, dans notre cas pratique, ne slectionner que les cotisations impayes, car la requte actuelle liste toutes les cotisations, payes ou non. Il suffit de modifier la requte MauvaisPayeurs en spcifiant, pour le champ CotisationOk, le critre Non pour Access (figure 12-18) et 0 pour Base (figure 12-19). La figure 12-20 donne le rsultat de la requte modifie avec uniquement les cotisations dues ce jour. Nous navons 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
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 prsentation 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 figure 12-22 illustre, elle, un exemple dutilisation de la fonction Gauche() combine une concatnation. La fonction Gauche([NomStagiaire];3) extrait les 3 caractres de gauche de chaque nom de stagiaire. Le code Gauche([NomStagiaire];3) & [NumeroStagiaire] concatne
Groupe Eyrolles, 2008
297
DExcel Access
son rsultat avec le numro de stagiaire. Un nouveau numro de stagiaire plus parlant en rsulte, puisque il est constitu des trois premires lettres de chaque nom de stagiaire suivi du numro de stagiaire, figure 12-23.
Figure 1222
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1225
298
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Cette fonction sert renvoyer deux rsultats diffrents selon la valeur dun test. Appliquons-la une socit dont les commerciaux sont commissionns 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. VraiFaux(...) est la formule de calcul. CA<25000 est le test du CA par rapport au seuil de 25 000 . [CA]*0,01 calcule la commission 1 % puisque le CA est infrieur 25 000 (car nous sommes dans la ValeurSiVrai du test). [CA]*0,05 calcule la commission 5 % puisque le CA est suprieur ou gal 25 000 (car nous sommes dans la ValeurSiFaux du test).
Figure 1226
Il suffit dexcuter la requte (figure 12-27) et de prendre une calculatrice pour sapercevoir que les calculs sont correctement effectus.
PRODUCTIVIT Notre test conditionnel VraiFaux() est encore amliorable
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 champs spcifiques Seuil (gal 25 000 ), TauxSiInferieur (gal 1 %) et TauxSiSuperieur (gal 5 %) en entrant le code Commission:VraiFaux([CA]<[Seuil]; [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.
Figure 1227
Dans notre cas pratique, nous allons exprimenter cette fonction VraiFaux() 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 loccurrence) 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
Groupe Eyrolles, 2008
299
DExcel Access
de procder. En effet, seule Josette Duchemin bnficie de 10 % de rduction. On peut donc calculer le montant de la cotisation ristourne de nimporte quel stagiaire sans faire appel au champ Ristourne en appliquant la formule suivante un champ calcul :
VraiFaux(NomStagiaire="Duchemin";Cotisation*0,9;Cotisation)
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Dans cette formule il faut noter que : VraiFaux(...;...;...) est la fonction utilise. NomStagiaire="Duchemin" teste si lenregistrement en cours concerne Josette Duchemin. Cotisation*0,9 calcule la cotisation diminue de la ristourne (puisque nous sommes dans la valeur si vrai du test et que donc cet enregistrement concerne Josette Duchemin). Cotisation renvoie le montant normal de la cotisation (puisque nous sommes maintenant dans la valeur si faux du test).
Figure 1228
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
300
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
301
DExcel Access
Lorsque lcran permettant de choisir entre requte dtaille ou de synthse apparat, choisissez bien videmment loption Synthse comme sur la figure 12-30. Sans cliquer sur Suivant, il faut demander laffichage des options de synthse en cliquant sur le bouton correspondant.
Figure 1230
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Access propose de calculer Somme, Minimum, Maximum ou Moyenne pour chaque champ numrique. Il est possible galement de compter le nombre denregistrements.
Le paramtrage des options de synthse est trs simple : il suffit de dterminer lopration effectuer ainsi que le champ auquel elle sera applique. Cochons ici Somme dans la colonne du champ CotisationRistournee, figure 12-31. Validons notre choix par Ok, la bote de dialogue de la figure 12-30 saffiche nouveau.
Figure 1231
Cen est fini du paramtrage de nos options de synthse. Lassistant reprend maintenant son cours normal : 1 Demandez un regroupement par Date/heure unique. 2 Nommez la requte, par exemple MauvaisPayeursSynthese, et enregistrez-la.
302
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
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1235 Notre requte de synthse en mode bauche. Les 4 premiers champs de gauche (relatifs au stagiaire) servent grouper linformation, le champ de droite est, lui, additionn.
Remarquez que, dans cet exemple, nous avons demand un groupement par NumeroStagiaire, NomStagiaire, PrenomStagiaire et Ristourne. Nous lavons fait uniquement pour que la requte affiche tous ces champs, par souci de clart. Il faut bien comprendre que son rsultat (concernant la totalisation logique) aurait t le mme si nous navions intgr que le champ NumeroStagiaire, avec un groupement unique sur ce champ. Les trois autres champs (nom, prnom et ristourne) sont en effet attachs au mme niveau hirarchique que NumeroStagiaire.
Cependant, nous ne pouvons pas conclure leur tude sans voquer quelques points complmentaires leur sujet.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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
Imaginons par exemple que, dans notre entreprise de matriel dalpinisme, nous souhaitions supprimer dfinitivement tous les enregistrements relatifs nos clients de notre ex-filiale de Gorgie, filiale que nous avions ouverte il y a deux ans mais qui sest rvle un gouffre financier, mais aussi archiver les enregistrements de tous nos anciens clients qui nont pas pass de commande depuis plus de 3 ans. La figure 12-36 illustre le schma gnral appliquer en terme de requtes Ajout et Suppression (en haut) et le rsultat obtenu (en bas).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1237
Si au contraire on regroupe tous les champs calculs dans une ou deux requtes spcifiques (nommes CalculsX), ce sera beaucoup plus lisible, la maintenance et lexploitation de la base de donnes relationnelle en sera grandement facilite comme le montre le schma de la figure 12-38.
306
Figure 1238
Une seule requte centralisant les champs calculs, cest beaucoup plus clair
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
ditions Eyrolles, 2007. Bonnin : Mmento SQL, bases relationnelles. ditions Eyrolles, 1998.
307
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
chapitre
13
SOMMAIRE
B Crer un tat/rapport
Ce chapitre conclut notre tude des bases de donnes relationnelles par les tats et les rapports, objets indispensables pour visualiser, diter et imprimer de faon professionnelle tables et requtes.
en trente secondes
DExcel Access
Les requtes que nous venons dapprendre crer sont puissantes et performantes, certes. Mais elles prsentent un inconvnient majeur : leur lisibilit est trs discutable. Prenons lexemple de notre requte StagiairesParActiviteParGuide 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 professionnel 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...
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Nous apprendrons dans ce chapitre crer rapidement un tat avec lassistant. Nous dcouvrirons les techniques pour agrmenter sa prsentation. Enfin, nous utiliserons lassistant tat Access pour crer un tat de synthse, avec des totalisations de donnes numriques.
Figure 131
Figure 132
310
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 133
Tous les champs de la requte StagiairesParActivitesParGuides sont slectionns pour cet tat.
311
DExcel Access
La bote de dialogue suivante (figure 13-4) est extrmement intressante, on y voit toute la puissance dun SGBDR. Access a dtect que linformation de la requte source provient des trois tables Guides, Activites et Stagiaires. Il en a donc dduit que nous voulions prsenter les rsultats comme suit : dabord les Guides, ensuite les Activites et enfin les Stagiaires. Cest exactement ce que nous souhaitions, puisque nous avions bti la requte cet effet. Il suffit donc de cliquer sur Suivant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 134
Lassistant Cration dtat Access comprend la structure de la requte source et propose automatiquement des niveaux de regroupement adapts.
Lcran de la figure 13-5 propose dajouter dautres niveaux de regroupement. Il suffirait cet effet de le slectionner. Dans notre exemple, les deux niveaux dj proposs (Guides puis Activites) ont suffisants, et ajouter un niveau supplmentaire ne serait pas pertinent : le niveau infrieur (Stagiaires) correspond en effet au niveau de dtail. Passons directement ltape suivante.
Figure 135
312
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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 136
Les stagiaires participant une activit encadre par un guide seront tris par numro croissant.
Lassistant propose ensuite de choisir parmi plusieurs types dorganisation des donnes sur lcran. Lexprience prouve toutefois que les choix de la figure 13-7 sont prfrables dans 99 % des cas (mais rien ne vous empche de tester les autres possibilits). Cliquez sur Suivant.
313
DExcel Access
Figure 137
Les choix idaux dans la prsentation dun tat dans la plupart des cas
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Il sagit ensuite de choisir le style du futur tat. Difficile dapporter des conseils ce stade, chaque prsentation particulire tant plus ou moins adapte ses gots propres, au contexte de lentreprise (stricte ou dcontract) ou encore au type de donnes prsenter. Testez les diffrentes possibilits puis cliquez sur Suivant. Le dernier cran de lassistant (figure 13-8) sert nommer ltat et choisir son mode douverture (pour le modifier ou pour le visualiser). Pour le premier point, lidal est de donner ltat le nom de la requte dont il dpend : il sera ainsi beaucoup plus facile didentifier la requte source dun tat particulier quand il sagira dy apporter des modifications. Enfin, puisque nous sommes curieux den voir tout de suite le rsultat, choisissons loption Aperu de ltat comme sur la figure 13-8. Il suffit maintenant de cliquer sur Terminer, et cen est fini de la cration de notre tat.
Figure 138
Il est trs important de renommer ltat dun nom efficace, par exemple du nom de la requte source
314
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 naviguer de page en page (dans cet exemple, ltat ne comporte quune page et les boutons de changement de pages sont dsactivs).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 139
Figure 1310
315
DExcel Access
La premire tape permet de slectionner les lments participant au rapport. Son fonctionnement est trs semblable son homologue Access, voyez ce sujet les remarques de la page 311.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
La deuxime tape permet de modifier les tiquettes des champs du rapport. Cest une exclusivit Base (avec Access, il faut modifier manuellement les tiquettes en mode Cration). Cette option permet de remplacer les noms de champs par des tiquettes plus lisibles et plus esthtiques comme nous lavons fait dans la figure 13-11.
Figure 1311
La troisime tape concerne les niveaux de regroupement. Contrairement Access, Base ne repre pas automatiquement que les donnes de la requte source viennent de trois tables diffrentes (Guides, Activites, Stagiaires) et ne propose pas, par consquent, de niveaux de regroupements. Il faut donc paramtrer manuellement ces regroupements, figure 13-12.
316
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1312
Le paramtrage des niveaux de regroupement nest pas automatique pour un rapport Base.
Ensuite, en ce qui concerne lapparence du rapport, Base ne propose pas les choix parfois plthoriques dAccess. La figure 13-13 reprend les paramtres probablement les plus pratiques, dfaut des plus esthtiques...
Figure 1313
Le dernier cran Base propose de nommer le rapport du nom de la requte source : cest une excellente ide. Base propose galement de crer un rapport statique ou dynamique ; statique ne prsente vrai dire
Groupe Eyrolles, 2008
317
DExcel Access
que peu dintrt, Base ne prenant alors en compte que les donnes prsentes 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 immdiatement ou de louvrir en mode bauche. Comme nous sommes curieux du rsultat, choisissons loption Crer un rapport maintenant.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1314
Attention : Base cre le rapport sous Writer, figure 13-15. La faon la plus pratique pour visualiser lensemble du rapport est certainement de demander un Aperu avant impression.
318
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1316
Figure 1317
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).
Ce nouvel tat va se crer trs facilement avec lassistant. Cependant, avant de le lancer, prenons quelques instants pour bien dfinir les champs que nous dsirons y inclure.
Notre tat sera bas sur la requte des MauvaisPayeurs, puisque celle-ci effectue le calcul de la cotisation diminue de la ristourne et ne slectionne que les cotisations non rgles. Stricto sensu, nous pourrions parfaitement intgrer lensemble des champs de cette requte ltat. Cependant, lexprience montre que plus un tat comporte de champs, moins il est lisible. Essayons donc dtre plus slectifs dans notre choix de champs intgrer ltat. Dans notre exemple, certains champs de la requte sont inutiles dans ltat : Le champ CotisationOk est indispensable la requte des mauvais payeurs (pour effectuer le filtre sur les cotisations qui ne sont pas jour), mais il ne lest plus dans ltat parce que la slection sera excute par la requte en amont. Le champ Cotisation nest prsent dans notre requte que pour permettre de calculer le champ CotisationRistournee, sa prsence alourdirait inutilement notre tat. Nous vous proposons donc dintgrer dans ltat les seuls champs suivants : NumeroStagiaire, NomStagiaire, PrenomStagiaire et Ristourne (pour comprendre pourquoi sa cotisation ne correspond pas au tarif normal) ; DateInscription et NomActivite ; et enfin CotisationRistournee. Nous pouvons maintenant lancer lassistant de cration dtat comme expos prcdemment. La premire tape consiste en la dtermination des champs participant ltat, indiquons-y les champs que nous venons de dterminer. Les tapes suivantes ncessitent quelques commentaires.
320
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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.
Remarquez que nous avons choisi le champ NumeroStagiaire comme niveau de regroupement. Pourquoi NomStagiaire naurait-il pas fait laffaire ? Et bien tout simplement parce que ce dernier nest pas cl primaire de la table des Stagiaires, videmment ! Si deux homonymes taient
Groupe Eyrolles, 2008
321
DExcel Access
inscrits notre cole, le choix du champ NomStagiaire comme niveau de regroupement de notre tat des mauvais payeurs aurait eu pour effet de mlanger les sommes dues par lun et par lautre. Une fois encore, nous voyons toute limportance de cette fameuse cl primaire. Remarquez galement les outils habituels > et < permettant au choix de slectionner ou de dslectionner un niveau de regroupement.
MODIFIER PLUS TARD Titre du niveau de
regroupement
Seul le champ NumeroStagiaire est intgr dans le niveau de regroupement de ltat. Nous serions tents de rpondre que cest normal, puisque nous lavons demand... Cependant, les autres lments permettant didentifier le stagiaire (nom, prnom, ristourne ventuelle) se trouvent isols en dessous, ce qui obligera effectuer une modification manuelle de ltat une fois quil sera cr.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Concernant un ventuel tri, nous avons dj demand un regroupement par NumeroStagiaire, notre tat sera donc tri automatiquement selon cette cl. Par contre, nous aimerions certainement que le dtail de ltat (ses enregistrements) soit tri par NomActivite. Paramtrons donc laffichage de la figure 13-22.
322
Figure 1322
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 galement 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.
Cliquons sur OK pour revenir ltape prcdente et continuons lassistant en cliquant sur Suivant.
323
DExcel Access
Les tapes suivantes de lassistant ne prsentent plus de nouveauts : 1 Options de prsentation : slectionnnez les options Disposition chelonne, Orientation Paysage et Ajuster la taille des champs afin quils tiennent tous sur une page. 2 Choisissons le style souhait (ici, Rotonde). Notez quAccess 2003 propose beaucoup moins de styles... 3 Confirmons le nom par dfaut de ltat (le mme que celui de la requte source) et terminons lassistant. Ltat de la figure 13-24 illustre le rsultat obtenu.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Que dire de cet tat gnr par lassistant ? Il a t cr facilement et rapidement, les sous-totaux par stagiaire et le total gnral sont exacts, ce qui est dj trs bien ! Mais il prsente galement des dfauts de prsentation comme le montre la figure 13-25. Le titre de ltat, MauvaisPayeurs, reprend celui de la requte, sans espaces ni caractres accentus. Les noms de stagiaires ne sont pas en en tte des regroupements, ct de leurs numros, mais sont rpts sur chaque ligne. Les champs, notamment Ristourne et les totaux, sont bizarrement aligns. Enfin, les lignes de totaux ne sont pas trs lisibles. Disons-le clairement. Ces dfauts ne sont pas rdhibitoires. Ltat est parfaitement acceptable en ltat si on sait (ou si on peut) passer outre et sen arranger. Par contre, si on dsire gommer ces imperfections, il ny aura dautre solution que de le modifier manuellement. Et autant vous
Groupe Eyrolles, 2008
324
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1325 Les principaux dfauts dun tat gnr automatiquement par lassistant : titre peu lisible, parpillement des donnes, alignements discutables, lignes de totalisation formates trangement
prvenir, ce sera beaucoup moins facile et beaucoup moins amusant que de le crer. Ce sera lobjet de la section suivante.
325
DExcel Access
Dplacement des champs Nom et Prenom des stagiaires ct de leur numro. Suppression de la ligne Synthse pour (NumeroStagiaire)... . Modification du style de certains lments (les totaux en particulier). Les modifications dtat ne peuvent se passer quen mode Cration. Pour ouvrir un tat en mode Cration, il faut slectionner ltat dans le volet de navigation puis, par un clic droit, choisir loption mode Cration.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure 1326 La structure des diffrentes zones dun tat en mode Cration avec Access
326
Dans chacune de ces zones, sont placs des contrles, composs en gnral dune tiquette gauche et du contrle proprement dit droite. Le principe gnral des modifications dun tat tat rside dans : la modification du contenu des contrles ; le dplacement des contrles ; la modification des proprits des contrles ; la modification du style des contrles ; la suppression des contrles.
Afin damliorer la prsentation dun tat, ses contrles peuvent tre slectionns, modifis, dplacs, redimensionns et supprims.
Slectionner un contrle
Toute les oprations que nous allons effectuer ncessitent de slectionner 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), cliquez sur le contrle. Pour ne slectionner que le contrle (sans son tiquette), slectionnez le contrle avec son tiquette comme ci-dessus, et cliquez ensuite sur le contrle. Pour ne slectionner que son tiquette, cliquez sur ltiquette. Il est possible de slectionner plusieurs contrles la fois en utilisant la touche Shift ou en traant un cadre de slection autour des contrles.
327
DExcel Access
Par exemple, pour aligner le champ Ristourne gauche du contrle (pour un alignement correct avec ltiquette correspondante en haut de la colonne) : 1 Cliquez sur le contrle Ristourne (dans la zone Dtail, et non pas sur son tiquette dans la zone En tte de page). 2 Par un clic droit, slectionnez ses Proprits. 3 Slectionnez enfin Gauche dans la proprit Aligner le texte de longlet Format. On peut galement modifier lapparence du total gnral (choisissons ici de le souligner et de lui appliquer une trame grise). Il suffit de slectionner le contrle et son tiquette et de cliquer sur les outils correspondants.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 alignement par rapport dautres contrles. Pour dplacer un contrle la vole, il faut slectionner contrle et tiquette et les dplacer en utilisant les flches de dplacement. Pour les changer de zone, par exemple pour passer NomStagiaire et PrenomStagiaire 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 aligner des zones Pied de groupe NumeroStagiaire et Pied dtat (ici, CotisationRistournee de la zone Dtail et les deux contrles Somme([CotisationRistournee]) comme sur la figure 13-29, puis effectuez un clic droit (le curseur restant au-dessus dun des champs slectionns) 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
Figure 1327
Figure 1328 Les deux contrles de droite de la figure 13-29 se sont aligns sur le contrle de gauche grce la fonction Aligner gauche.
329
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Mais rappelons que ces modifications sont un peu dlicates mettre en uvre et quaucune de ces modifications nest rellement indispensable. Par consquent, on peut toujours sen passer et se contenter des trs bons rsultats obtenus par dfaut avec lassistant Cration dtat.
330
Tableau 131 Crer un tat/rapport avec lassistant Phase Access tape Remarque Base tape Remarque
2007 : dans longlet Crer, groupe tat, cliquez sur loutil Assistant tat 2003 : cliquez dans le volet de navigation sur la famille tat, puis double-cliquez sur loutil Crer un tat laide de lassistant Slectionnez la table ou la requte source et ses champs vitez de slectionner des champs de plusieurs tables ou requtes. Prfrez alors crer une requte spcifique Les niveaux de regroupements proposs le sont par rapport la structure de la requte source Pour la section Dtail uniquement
Cliquez dans le volet de navigation sur la famille Rapport, puis sur loutil Utiliser lassistant cration de rapport
tape 1
vitez de slectionner des champs de plusieurs tables ou requtes. Prfrez alors crer une requte spcifique Permet dobtenir des noms de champs dans un langage courant
tape 2
Paramtrez les niveaux de tri Choisissez une prsentation parmi les modles proposs Choisissez un style parmi les modles proposs Fin de lassistant
En gnral, slectionnez che- Composez le rapport lonn, Paysage et Ajuster... Fin de lassistant Nommez ltat du nom de la requte source Nommez ltat du nom de la requte source
331
DExcel Access
Tableau 132 Crer un tat avec regroupement et calcul sur donnes numriques avec Access Phase tape Remarque
2007 : dans longlet Crer, groupe tat, cliquez sur loutil Assistant tat 2003 : cliquez dans le volet de navigation sur la famille tat, puis double-cliquez sur loutil Crer un tat laide de lassistant Slectionnez la table ou la requte source et ses champs Paramtrez les niveaux de regroupement et les options de synthse Paramtrez les niveaux de tri Choisissez une prsentation parmi les modles proposs Choisissez un style parmi les modles proposs Fin de lassistant Nommez ltat du nom de la requte source Le plus souvent les champs dune requte. Attention ne slectionner que les champs ncessaires pour conserver une bonne lisibilit Insrez autant de niveaux de regroupement que souhait Noubliez pas de slectionner le bouton Options de synthse et de programmer les options de synthse souhaites sur les champs dsigns Pour la section Dtail uniquement En gnral, slectionnez chelonn, Paysage et Ajuster...
tape 1 tape 2
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
332
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 thorique, complt de ses nombres cls, un peu plus complexe que ceux voqus 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.
ALLER PLUS LOIN Merise
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)
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure A1
Immdiatement, plusieurs rflexions simposent : Ce schma est beaucoup plus complexe que les exemples que nous avons dj trait. Il prsente une structure en boucle contrairement au conseil que nous avions formul. Il prsente non plus un mais deux nombres cls entre chaque cercle et chaque rectangle. Examinons-le en dtail.
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 parapente 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Chaque rectangle (qui deviendra une table dans le schma rel) comporte 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.
MERISE Cardinalit minimale et maximale
Le premier nombre cl de chaque couple sappelle sous Merise Cardinalit minimale, et dfinit le nombre minimal de fois o la relation peut survenir. 0 entre Pilote et Vol signifie quun pilote peut ne pas avoir vol (au moins dans cette cole). Le second nombre cl, le seul dont nous nous soyions occup jusqu prsent, sappelle Cardinalit maximale. Il dfinit le nombre maximal de fois o la relation peut survenir. N entre Pilote et Vol ne limite pas le nombre de vol pour chaque pilote. Nous navons utilis jusqu prsent que le second nombre cl, parce quil est seul dterminant pour le passage du schma thorique au schma rel. Le premier nombre cl, la cardinalit minimale, ninterviendra quau plan de la programmation des relations entre les tables comme nous le verrons. Dans cette relation entre Pilote et Vol, 0 nobligera pas la prsence de chaque numro de brevet de pilote dans la table des Vols, alors que 1 laurait exig. La cardinalit minimale ne peut tre gale qu 0 ou 1. Elle ne peut tre gale N. Dans notre exemple, N signifierait quun pilote doit (et non peut) avoir vol plus dune fois, ce qui serait impossible grer pratiquement : comment saisir les donnes du premier vol dun pilote alors que le systme exigera que son second vol doit dj exister ? La cardinalit maximale ne peut tre gale qu 1 ou N. Elle ne peut tre gale 0. En effet, si jamais aucun pilote ne vole, quoi sert donc notre cole ?
Le premier nombre cl, 1, signifie chaque pilote doit avoir vol au moins une fois , ce qui exclut donc les dbutants qui nont jamais vol. 0 aurait signifi il nest pas obligatoire que chaque pilote ait vol une fois ou il est possible que certains pilotes naient jamais vol , ce qui
Groupe Eyrolles, 2008
335
DExcel Access
aurait autoris les dbutants sinscrire notre cole. N aurait signifi chaque pilote doit avoir vol plus dune fois . Le second nombre cl, N, signifie chaque pilote peut raliser plusieurs vols . 1 aurait signifi chaque pilote ne peut raliser quun vol au maximum , ce qui serait pour le moins trange... 0 est quand lui totalement absurde aucun pilote ne peut raliser de vol . Le tableau suivant expose les significations des autres couples de nombres cls :
Tableau A1 Signification des nombres cls de la figure A1 Couple Nombre cl Signification
0 N 0 N
Il existe des sites de dcollage/atterrissage qui ne sont pas utiliss. Certains sites peuvent tre utiliss plus dune fois. Il nest pas obligatoire dutiliser un parapente du club pour voler (les lves peuvent avoir leur propre parapente). Le mme pilote peut utiliser plusieurs fois le mme parapente du club. Certains parapentes du club nont peut-tre jamais t utiliss. Certains parapentes du club ont peut-tre t utiliss plusieurs fois. Chaque parapente du club est ncessairement dun modle agr par la fdration. Chaque parapente du club est ncessairement dun seul modle agr par la fdration. Le club ne possde pas forcment un exemplaire de chaque modle officiel de parapente. Le club peut possder plusieurs exemplaires dun modle officiel de parapente. Il est possible quun modle officiel particulier de parapente nait jamais t utilis pour un vol dun lve de lcole. Il est possible quun modle officiel particulier de parapente ait t utilis plusieurs fois pour un vol dun lve de lcole.
Pilote et Utilise
0 N 1 1 0 N
0 N
* Cette double relation est dun type particulier, un et un seul : chaque parapente du club correspond un et un seul modle de la fdration.
336
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 fdration. 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.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
337
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure A2
338
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
Figure A3
Cette figure A3 est agrmente des lettres M pour Matre et e pour Esclave. Nous constatons ainsi quil existe des tables : matres pures une fois : Sites de dcollage et Sites datterrissage ; matres pures deux fois : Modle de parapente ; esclaves pures deux fois : Utilisation ; esclaves pures quatre fois : Vol ; matres et esclaves la fois : Pilote et Parapente.
339
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 informatiques ne pouvait se faire en omettant dvoquer les obligations et les droits de chacun en la matire.
DExcel Access
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
En pratique, les donnes sont considres comme caractre personnel ds lors quelles concernent des personnes physiques identifies directement (un nom apparat par exemple dans un fichier) ou indirectement (par un numro dimmatriculation, de tlphone, une adresse IP, une photographie...). En ce sens, constituent galement des donnes caractre personnel toutes les informations dont le recoupement permet didentifier une personne prcise, comme une empreinte digitale, lADN, une date de naissance associe une adresse
Source CNIL B http://www.cnil.fr/index.php?id=301
Les technologies de linformation et de la communication gnrent de nombreuses donnes personnelles (un paiement par carte bancaire, un appel pass par un tlphone portable, une connexion Internet) et aussi des traces informatiques facilement exploitables grce aux progrs des logiciels, notamment les moteurs de recherche.
Dans quel cas faut-il dclarer un fichier de donnes personnelles auprs de la CNIL ?
Beaucoup de fichiers ou de traitements contenant des donnes personnelles sont purement et simplement dispenss de formalits dclaratives, le plus souvent parce quils ne portent pas atteinte la vie prive ou aux liberts. En dehors de ces cas dexonration, dclarer un fichier ou un traitement de donnes personnelles est une obligation lgale. Les cas suivants vous dispensent dune dclaration auprs de la CNIL : Vous tes un particulier agissant dans le cadre dactivits exclusivement personnelles. Par exemple, vous ne dclarez pas les fichiers et les sites Internet qui concernent votre vie prive ou familiale, comme votre carnet dadresses ou votre site personnel, si laccs est rserv un nombre limit de personnes.
342
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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 (crivain, 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 donnes personnelles que vous grez ne font que transiter par la France. Vous mettez en oeuvre un traitement de comptabilit gnrale. Dans tous les autres cas, vous devez dclarer votre fichier la CNIL. On ne peut tre plus clair.
Vos droits en tant que citoyen face lutilisation de vos donnes personnelles
Vous tes agac par les dmarchages tlphoniques ? Inquiet des traces que vous laissez sur Internet ? Interrogatif quand la centralisation des vos dpenses par carte de crdit ? Entre langlisme et la paranoa, la voie est troite. Mais il faut convenir que les moyens informatiques modernes donnent aux Big Brother potentiels des pouvoirs de nuisance, dingrence et de centralisation sans commune mesure avec ce quils furent. La menace est relle. Face ceci, quelle est la rponse de la loi ? Le site de la CNIL, l encore, nous informe prcisment : Vos droits, ne vous en fichez pas ! Dans un monde largement informatis, la loi du 6 janvier 1978 prvoit de solides garde-fous pour protger les personnes des dangers lis aux fichiers et aux traitements informatiques contenant des donnes caractre personnel. La loi Informatique et liberts reconnat aux citoyens des droits spcifiques pour prserver leur vie prive : le droit linformation ;
Groupe Eyrolles, 2008
343
DExcel Access
le droit dopposition ; le droit daccs ; le droit de rectification. Le non-respect de ces droits est sanctionn pnalement.
(Source CNIL) B http://www.cnil.fr/index.php?id=21
En cas de difficult dans lexercice de vos droits, vous pouvez saisir la CNIL.
Le droit linformation
Toute personne a le droit de savoir si elle est fiche et dans quels fichiers elle est recense.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
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, fiscaux, 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 dmarchages commerciaux non sollicits, vous tes en droit dexiger de lmetteur quil cesse.
Le droit daccs
Toute personne justifiant de son identit a le droit dinterroger le responsable 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
Groupe Eyrolles, 2008
Pour contredire la remarque prcdente, et titre dexception la rgle, notez que, depuis 2002, chacun a libre accs son dossier mdical.
Le droit de rectification
Ce droit de rectification, suite du droit daccs, stipule que chacun peut exiger lactualisation des donnes le concernant. Encore faut-il savoir qui dtient ces informations...
GRATUIT Lexercice de vos droits sur vos informations personnelles est gratuit
Nul ne peut vous demander de largent pour exercer vos droits dinformation, dopposition, daccs ou de modification de vos donnes personnelles.
Vous considrez que vos droits ne sont pas respects : Vous ne voulez plus recevoir de publicits. Vous ne voulez plus recevoir de coups de tlphone ou de SMS non sollicits. Vous voulez tre radi dun fichier. Vous vous opposez la cession de vos donnes personnelles. Voici ce que vous pouvez faire : Demander votre inscription auprs de votre oprateur tlphonique en liste orange. Nul ne pourra alors utiliser votre numro pour un phoning. Notez quen ce cas seule sera interdite lutilisation de votre numro provenant dun fichier de prospection commerciale ; on pourra continuer vous tlphoner en utilisant simplement lannuaire (sauf si vous demandez votre inscription en liste rouge, puisque vous ne figurerez plus sur lannuaire). Remarquez ce sujet que linscription en liste rouge est payante et quelle entre donc en contradiction avec le principe de gratuit de lexercice de vos droits. Rien nest vraiment trs simple ds quon aborde ce type de sujet... tre vigilant sur Internet et cocher systmatiquement la case stipulant que vous vous opposez lutilisation de vos donnes par le responsable du site ou ses partenaires. Le souci est que cette case, normalement obligatoire, est souvent bien cache. Rpondre aux courriels et aux textos non sollicits en demandant explicitement que vous souhaitez ne plus en recevoir. Le contrevenant, sil persiste, sexposera des poursuites, contactez une association de consommateurs ou directement la CNIL. Bien entendu, cette remarque ne sapplique pas aux spams auxquels il ne faut jamais rpondre ! Utiliser le gnrateur de courrier de la CNIL (http://www.cnil.fr/ index.php?id=1651) qui offre plusieurs modles de lettre pour appuyer sa demande de faon plus officielle, figure B1.
Groupe Eyrolles, 2008
345
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
DExcel Access
Figure B1
Ne jamais ouvrir un spam. Pour ce faire, Outlook et Thunderbird proposent une option trs utile consistant ne tlcharger que les en-ttes des messages. Il suffit alors de les consulter pour supprimer trs rapidement les spams. Vous ne tlchargez ensuite que le contenu des messages qui vous intressent. Paramtrer votre logiciel de messagerie pour ne recevoir que les messages provenant de contacts rpertoris dans votre carnet dadresse (dans ce cas, attention : si un inconnu vous adressait une message important, vous nen seriez pas averti...). Utiliser plusieurs adresses, par exemple une pour votre travail, une pour vos amis et une autre pour laisser vos coordonnes sur Internet dans les sites dachat en ligne ou autres. Ne jamais laisser son adresse sur un site douteux, ne la confier qu des sites ayant pignon sur rue. Ne jamais laisser son adresse son son site perso ou son blog, ou alors en la modifiant par un trucage du style robert.marcelENLEVER_CES_CARACTERES@toto.fr. Votre interlocuteur comprendra quil ne doit utiliser que robert.marcel@toto.fr, un robot de recherche malententionn et un peu primaire, non. Utiliser une adresse maquille. Si vous avez un nom trs rpandu, John Smith ou Jean Martin, sachez quil existe des gnrateurs dadresses qui essayent ce type dadresses par combinaison automatique de caractres et de noms. Rusez donc en transformant votre adresse par john_smmith@titi.de ou jeean.maartin75@toto.fr. Mais il nexiste pas de recette miracle ! Le jour o votre bote aux lettres sera submerge de spams, ce qui est quasiment invitable, il ne vous restera qu arrter de la consulter et en changer. Groupe Eyrolles, 2008
346
Index
A
aperu avant impression dun tat 314 arrt tabulation 250 assistant de cration tat 311 etat de synthse 319 formulaire simple 198 liste de choix manuelle 171 liste de choix par rapport une table 175 rapport 316 requte de synthse 301 non correspondance 263 paramtre 258 slection 257 simple 238 sous-formulaire 221 assistant requte Access 238 modification 284 calcul arithmtique (champ) 292 caractres gnriques 54 case cocher 286, 296 chane de caractres concatner 297 chane vide autorise 144 champ calcul 291 champs 18 cl primaire 97 dfinir 142 inattendue 190 CNIL (commission nationale informatique et libert) 341 code SQL 269, 278 colonne cl cache (Access) 178 Comme 262 concatner 297 contrle dtat 327 contrle de formulaire 205 cration de table 138 crer une base de donnes 126 critre de slection Comme 262 Est Null 262 NbCar 262 Pas comme 262 contrle 327 mode Cration 326 proprits dun contrle 327 synthse 317, 319 tri 313 tiquette de contrle 209
F
fentre des relations Access 182 Base 185 filtre 4 dates 6 dsactiver 51 volu 53, 55 liste de donnes 49 spcial 57 standard 57 sur plusieurs champs 51 sur un champ unique 50 textuel (Excel 2007) 53 fonction cart type 69 liste de donnes 42 moyenne 69 nombre 68 sous-total (Excel 2007) 70 variance 69 formulaire arrt tabulation 250 assistant cration 198 bas sur une requte 248 bouton daction 219 contrle 207 tiquette 207 viter la tabulation sur un champ 210 liste de choix (Base) 210 menu daccueil 218 mode contenu 203 modifier 205 ouverture automatique 221 requte source 248 saisie des donnes 225 simple 198 sous-formulaire 215 formulaire et sous formulaire 215
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
B
base de donnes champs 18 dfinition 10, 18 doublon 36 enregistrements 19 base de donnes relationnelle cl trangre 98 cl primaire 97 crer 126 cran daccueil 133 identifiant 97 mthode dlaboration 100 modle de base de donnes Access 96 modlisation 108 ouvrir 128 relations 94 scurit 130 table 93 table matre et table esclave 97 virus 129 volet daffichage 133 volet de navigation 133
D
donnes modification 227 saisie 222
E
cran daccueil 133 effacer en cascade 185 En() 262 enregistrements 19 esclave (table) 97 Est Null 262 ET/OU 51, 56 tapes de programmation dun SGBDR 120 tat aperu avant impression 314 assistant cration 311
C
cahier des charges 109
Groupe Eyrolles, 2005
347
DExcel Access
G
gnrateur dexpression 298 graphique crois dynamique 80, 84
I
importer carnet dadresses 155 donnes 150 Index 181 integer 141 intgrit rfrentielle Access 183, 185 Base 188
(Excel 2007) 36 Voir filtre 4, 49, 50, 51, 53, 55, 57 Voir fonction 42, 68, 70 Voir graphique crois dynamique 80, 84 Voir rgle 19, 24, 25, 26, 28, 29 Voir sous-total 60, 61, 64, 66 Voir tableau crois dynamique 71, 72, 74, 75, 77, 79, 80 Voir tri 43, 44, 47
O
objets 101 ouvrir une base de donnes 128
P
PartDate() 262 Pas comme 262 phrase cl 110 proprit case cocher 286 pourcentage 286 proprit de champ chane vide autorise 144 cl primaire, dfinir 142 date 145 limiter liste 174 masque de saisie 137, 145 mmo 145 null interdit 137 numrotation automatique 136, 141 tlphone 148 texte 144 types 142 proprits dun contrle dtat 327
M
Maintenant() 169 matre (table) 97 masque de saisie 137 mmo 145 menu daccueil 218 Merise 333 mettre jour en cascade... 185 mise en forme conditionnelle de liste de donnes 32 mode assistant 256 Contenu 156 Cration 156 cration 256 bauche 256 page 208 SQL 256 modlisation nombre cl 115 phrase cl 110 relation 118 schma rel 114 schma thorique 109 modifier donnes 227 formulaire 205
L
Les comptoirs (base exemple) 96 limiter liste 174 liste de choix avec un formulaire Base 210 limiter (Access) 173 manuelle (Access) 171 par rapport une table (Access) 175 valeur par dfaut 174 liste de donnes acclrer sa saisie 46 cas pratique 8 dfinition 18 effacer la mise en forme conditionnelle (Excel 2007) 36 filtrer 50 filtres volus 52 format conditionnel (Calc) 38 identifier les valeurs extrmes (Excel 2007) 34 insrer un saut de page (Calc) 68 isoler un lment (Excel 2007) 33 limiter les entres aux valeurs dune liste 27 limites 90 message derreur 30 messages daide la saisie 29 mise en forme conditionnelle 32, 37 mode de saisie assiste 22 numroter les lignes 21 surlignage automatique (Excel 2007) 23 totalisation par slection de cellules 61 trier 44 selon un ordre personnalis 44 sur plusieurs champs 47 visualiser un lment dans une srie
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
R
rapport assistant cration 316 dynamique 317 niveaux de regroupement 316 statique 317 recherche de doublons 271 rgle annulation 29 applicable un nombre 26 de construction 19 de validation 24 personnalise 28 relation 94, 118 requte 234 ajout 237 assistant Access 238 calcul 291 calcul arithmtique 292 case cocher 296 champ calcul 291 combinaison de critres 260 critres de slection 262 filtre 245 mode Contenu 244 mode Cration/bauche 241
Groupe Eyrolles, 2005
N
NbCar 262 niveaux de regroupement tat 312 rapport 316 nom de champ 135 nombre cl 115 non-correspondance 262 Northwind (base exemple) 96 null interdit 137 numrotation automatique 136, 141
348
non-correspondance 262 opration 304 paramtre 258 recherche de doublons 271 slection 257 slection paramtre 258 simple 238 suppression 237 synthse 301 test conditionnel 298 trier 260 VraiFaux() 298
insrer un niveau unique de 61 liste de donnes 60 supprimer 66 SQL 256, 269, 270, 278
T
table cl primaire 97 cration 138 dfinition 93 esclave 97 importation de donnes 150 matre 97 nom de champ 135 saisie des donnes 226 tableau crois dynamique 71 actualiser 79 crer 72, 74, 75 exploiter 75 modifier 77 organiser 80 pilote de donnes (Calc) 72
S
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30
saisie des donnes 222 schma rel 114 schma thorique 109 scurit 130 somme par slection de cellules 61 sous-total exploiter 64 insrer plusieurs niveaux de 66
tableur formules absolues ($) 35 solution feuille classeur 10 tabStop 250 test conditionnel 298 traitement de texte tri de tableau 3 tri liste de donnes 43 selon un ordre personnalis 44 successif 47 sur un seul champ 44 tri dun tat 313 trier une requte 260 types de champ 142
V
validation dune liste de donnes 24 virus 129 volet daffichage 133 volet de navigation 133 VraiFaux() 298
349
Index
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30