Anda di halaman 1dari 368

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.

com) - 26 Octobre 2009 12:30

Thierry Capron

sans taboo
Croiser, extraire et analyser ses donnes

Access
DExcel

Pour que

linformatique soit un outil et non un ennemi !

sans taboo
Pour un traitement plus performant de vos donnes !
> Construisez une base de donnes minimale grce aux listes de 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

Access, l o Excel sarrte


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

qui sadresse cet ouvrage ?


> Aux associations, TPE et PME dont la base de donnes atteint une masse critique ingrable avec des feuilles de calcul Excel ou Calc. > Aux utilisateurs dExcel et de Calc qui se sentent limits par lorganisation en feuilles et classeurs. > Aux dbutants en base de donnes qui veulent partir du bon pied aussi bien sous MS-Office que sous OpenOffice.org.

Conception : Nord Compo

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

Ouvrages consacrs Excel et Access


Excel 2007 avanc. P. moreau eT P. mori. N12217, 2008, 240 pages. Excel Missing Manual. m. maCdoNaLd. N12095, 2007, 818 pages. Mmento Excel. m. Grey eT m. berGame. N11756, 2005, 14 pages. Excel 2003 Programmation VBA. d. daVid. N11622, 2005, 272 pages. Access 2007 Missing Manual. m. maCdoNaLd. N12096, 2007, 740 pages. Access 2003. P. mori eT y. PiCoN. N11490, 2004, 422 pages. VBA pour Access 2003. a. TayLor eT V. aNdersoN. N11465, 2004, 636 pages.

Ouvrages consacrs Calc et Base


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Collection Sans taboo


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

Chez le mme diteur


M. Nebra. Russir son site web avec XHTML et CSS, 2e dition. N12307, 2008, 316 pages. P. Labbe. Photoshop CS3. N12121, 2008, 530 pages. C. Gmy. Gimp 2.4. Dessin et retouche photo, 2e dition. N12152, 2008, 402 pages. A. aNdrieu. Russir son rfrencement web. N12264, 2008, 302 pages. i. TayLor et b. JeLeN. Analyse marketing et reporting avec Excel. N12251, 2008, 234 pages. V. messaGer roTa. Gestion de projet. Vers les mthodes agiles. N12165, 2007, 252 pages. a. FerNaNdez-Toro. Management de la scurit de linformation. Implmentation ISO 27001. N12218, 2007, 256 pages. M. Grey. Mmento Firefox et Thunderbird. N11780, 2006, 14 pages. C. boNNiN. Mmento SQL. Bases relationnelles. N06258, 1998, 14 pages. C. souTou. Apprendre SQL avec MySQL. Avec 40 exercices corrigs. N11915, 2006, 398 pages. C. souTou De UML SQL. Conception de bases de donnes. N11098, 2002, 500 pages. H. Tardieu, a. roCHFeLd eT r. CoLLeTTi. La mthode Merise. Principes et outils. N52473, 2000, 352 pages (ditions dOrganisation). D. dioNisi. Lessentiel sur Merise. N09046, 1998, 272 pages. P. roques. UML 2 par la pratique. tude de cas et exercices corrigs. N12322, 2008, 368 pages. F. VaLLe. UML pour les dcideurs. N11621, 2005, 300 pages.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Thierry Capron

Croiser, extraire et analyser ses donnes

Access
DExcel

sans taboo

DITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com

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.

qui sadresse ce livre ?


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

Groupe Eyrolles, 2008

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

Quelles sont les caractristiques de cette mthode ?


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

Priorit la mthode de travail


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

VI

Groupe Eyrolles, 2008

100 % compatible Microsoft Office (2003 et 2007) et OpenOffice.org 2.2


Cette mthode aborde les bases de donnes sous deux angles : les tableurs et les bases de donnes relationnelles. Nous nous devions de maintenir cette ouverture sur le plan des logiciels traits. Nous avons ainsi choisi de prsenter les solutions apportes par la dernire version de Microsoft Office (Excel et Access 2007) car elle deviendra terme la plus rpandue, mais nous navons pas oubli les utilisateurs de la version prcdente (Excel et Access 2003). Enfin, soucieux de fournir au lecteur une ouverture sur le monde du logiciel libre, nous traitons galement dOpenOffice.org 2.2 avec Calc et Base.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Que trouverez-vous concrtement dans ce livre ?


la fin de ce livre, vous serez capable de concevoir, programmer et exploiter des listes de donnes sous tableur (chapitres 1 4) ou des bases de donnes relationnelles simples (chapitres 5 13). Ces deux parties, indpendantes, sont articules chacune autour de leur cas pratique, vritables fils directeurs pdagogiques.

RESSOURCE Les cas pratiques du livre sont


disponibles en tlchargement
Tous les cas pratiques de cet ouvrage, logiciel par logiciel et chapitre par chapitre, sont disponibles en tlchargement sur le site des ditions Eyrolles. B www.editions-eyrolles.com

Les listes de donnes sous tableur (Excel et Calc)


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

Groupe Eyrolles, 2008

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 .

Les bases de donnes relationnelles (Access et Base)


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

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.

Groupe Eyrolles, 2008

IX

Avant-propos

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Table des matires


1. PREMIERS PAS VERS LES BASES DE DONNES ................... 1 Un traitement de texte ne sait pas grer une base de donnes, mme trs simple 2 Le tableur et ses filtres : une solution plus performante 4 Appliquer un filtre pour slectionner des enregistrements particuliers 4 Changer la slection opre par un filtre 6 Les listes de donnes sous tableur : un pas vers les bases de donnes 8 Lexpos de notre cas pratique dtude des listes de donnes 8 Notre mission 9 Notre cahier des charges simplifi 9 Une dfinition dune base de donnes 10 Pourquoi la solution tableur feuille-classeur ne convient pas 10 Le choix de lorganisation feuille-classeur idale 11 Aucune solution feuille-classeur ne saura voluer 12 La solution : les listes de donnes sous tableur 13 La liste de donnes est souple et volutive 13 La liste de donnes sadapte parfaitement au changement 13 Synthse : les avantages des listes de donnes sous tableur 15 2. BTIR UNE LISTE DE DONNES EFFICACE SOUS TABLEUR : STRUCTURE, RGLES DE VALIDATION ET MISE EN FORME ........... 17 Dfinitions pralables 18 Les listes de donnes et bases de donnes : lorganisation de linformation 18 Les champs : la structure 18 Les enregistrements : le contenu 19 Bien structurer une liste de donnes 19 Rgle 1 : les noms de champ en premire ligne 20 Rgle 2 : les enregistrements les uns au-dessous des autres 21 Rgle 3 : ni ligne ni colonne vide 22 Rgle 4 : pas de mise en forme inutile 23
Groupe Eyrolles, 2007

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

Groupe Eyrolles, 2007

XIII

Table des matires

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

Le schma rel de lcole de parapente 339

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

Groupe Eyrolles, 2007

XV

Table des matires

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

Premiers pas vers les bases de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

une solution inadapte

B Le tableur et ses filtres :


une solution plus performante

B Les listes de donnes sous


tableur : un pas vers les bases de donnes MOTS-CLS

B Liste de donnes sous tableur B Filtre de liste de donnes B Base de donnes B Cahier des charges simplifi

Groupe Eyrolles, 2008

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.).

Groupe Eyrolles, 2008

1 Premiers pas vers les bases de donnes

DExcel Access

Le tableur et ses filtres : une solution plus performante


Un tableau, sous traitement de texte comme sous tableur, comporte des lignes et des colonnes. Rien nempche donc de transformer notre planning de la figure 11 pour obtenir son quivalent tableur de la figure 12 (ici, sous Excel 2007, les prsentations Excel 2003 et Calc sont quasiment identiques), soit en le recrant intgralement, soit, plus facilement, en procdant par copier/coller. Remarquez combien sa prsentation est plus attractive. Et surtout, observez les flches apparues ct de chacun des trois en-ttes de colonnes : elles vont nous permettre deffectuer des slections denregistrements particuliers, par exemple pour isoler le planning du groupe 2 ou du 17 novembre.
TECHNIQUE Obtenir lapparence de la figure 12
Excel 2007 : ces bandes alternativement grises et blanches (en fait bleues et blanches) et ces flches ct de chacun des en-ttes de colonne ne sobtiennent simplement quavec Excel 2007 (dans longlet Accueil, groupe Style, cliquez sur loutil Mettre sous forme de tableau). Excel 2003 : ces mmes flches sobtiennent par le menu Donnes, option Filtres puis Filtres automatiques. Pour les alternances de couleur, par contre, il faudra vous dbrouiller la main... Pour Calc, le menu Donnes, options Filtres puis Autofiltre fait apparatre les flches. Pour les lignes de couleurs alternes, il faudra aussi se dbrouiller la main...

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 12

Un planning Excel bien plus performant

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 !

Appliquer un filtre pour slectionner des enregistrements particuliers


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

Groupe Eyrolles, 2008

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 13

Les possibilits de filtre pour la colonne (champ) Groupes

Le haut de la bote de dialogue de la figure 13 permet deffectuer des tris, 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).

EXCEL 2003 ET CALC


Appliquer un filtre
Les botes de dialogue Excel 2003 et Calc diffrent lgrement de la figure 13, mais offrent avec une ergonomie semblable les mmes fonctionnalits, voir page 7.

Figure 14

Lapplication dun filtre naffiche que certaines lignes.

Observons laffichage de la figure 14 : La flche ct de len-tte Groupes sest orne dune sorte d 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.

EXCEL 2003 ET CALC


Reprer quun filtre est actif
Lentonnoir prsent sur la flche de la liste droulante dun filtre nest prsent que sous Excel 2007. Pour Excel 2003 et Calc, la flche change de couleur et devient bleue.

Groupe Eyrolles, 2008

1 Premiers pas vers les bases de donnes

DExcel Access

Changer la slection opre par un filtre


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 15

Figure 16

Les filtres dExcel 2007 regroupent les dates par mois

Le choix dun filtre sur une date particulire (ici, le 17 novembre)

Groupe Eyrolles, 2008

Figure 17

Le filtre sur une date particulire (ici le 17 novembre) est appliqu.

Remarquez sur la figure 17 que seules les lignes 5, 13, 21 et 29, 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

Figure 18 Deux filtres appliqus

simultanment se cumulent.

Figure 19 Le choix dun critre

Figure 110 Le choix dun critre de

de filtre de date sous Excel 2003

filtre de date sous Calc

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

Groupe Eyrolles, 2008

1 Premiers pas vers les bases de donnes

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

Lexpos de notre cas pratique dtude des listes de donnes


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

Groupe Eyrolles, 2008

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

On na pas de temps perdre !

Notre cahier des charges simplifi


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

1 Premiers pas vers les bases de donnes

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

Une dfinition dune base de donnes


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

Pourquoi la solution tableur feuille-classeur ne convient pas


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

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 ?

Le choix de lorganisation feuille-classeur idale


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

Figure 113 Une autre organisation

des donnes par multiplication de feuilles identiques

11

1 Premiers pas vers les bases de donnes

DExcel Access

TECHNIQUE Intervertir lignes et colonnes


dun tableau Excel ou Calc
Dans notre cas pratique, si, pour des raisons de prsentation, nous dcidons dintervertir lignes et colonnes, il faut procder ainsi : 1. Slectionner le tableau. 2. Le copier par Ctrl + C. 3. Se placer sur une feuille vierge, et via un clic droit choisir Collage spcial, puis loption Transpos. Attention quand mme, cette manipulation dplace contenus et format des cellules. Il vous faudra donc certainement reparamtrer intgralement formats et encadrements qui auront t chambouls par la transposition

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...

Aucune solution feuille-classeur ne saura voluer


La vie de lentreprise nest pas un long fleuve tranquille, et la vrit dun jour nest pas ncessairement celle du lendemain. Pour ce qui nous concerne, il est tout--fait possible par exemple que la dimension Produit prenne progressivement un aspect prpondrant, auquel cas aucune de nos deux possibilits de dpart ne conviendra plus. Et quand bien mme ce cas ne se produirait pas (ce qui est bien improbable, convenez-en), larrive prvisible de nouveaux produits ( commencer par les baudriers) va nous obliger reprendre tous nos tableaux. Trs concrtement, pour ajouter un nouveau produit dans notre base avec une solution feuille-classeur selon le schma de la figure 111 (avec les produits en ligne), il va nous falloir, pour chacune des feuilles de chaque classeur, insrer la ligne Baudriers et reprendre toutes les formules de totalisation. Avec quatre reprsentants (quatre classeurs) et un historique de vingt-quatre priodes (cela ne fait jamais que deux ans...), nous aurons 4 classeurs 24 feuilles = 96 feuilles modifier, avec chaque fois une ligne insrer et toutes les formules entrer et vrifier. Franchement, cela vous dit ?
MTHODE Le degr daccessibilit des informations dun tableur
Les donnes figurant dans les lignes et les colonnes dun tableau sont les seules tre exploitables du premier coup dil (figure 112). Ds quelles figurent sur une autre feuille, elles sont ncessairement moins disponibles, car disperses en fait sur plusieurs crans et donc non visualisables en mme temps. Et cest encore plus vrai si vous les stockez dans dautres classeurs, ou mme dans dautres dossiers ! Donc autant viter tant que possible de disperser ses informations, par exemple en les groupant dans le mme tableau...

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

12

Groupe Eyrolles, 2008

La solution : les listes de donnes sous tableur


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

La liste de donnes est souple et volutive


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

toutes priodes et reprsentants confondus

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

OBSERVONS Le filtre de la figure 115


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

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

La liste de donnes sadapte parfaitement au changement


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

13

1 Premiers pas vers les bases de donnes

DExcel Access

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

PRODUCTIVIT 30 secondes maximum


pour tous ces tats
Cerise sur le gteau, les listes de donnes se grent trs simplement et trs rapidement. Avec une conomie de temps et de moyens remarquable. titre dillustration, tous les tats des figures 114, 115, 116 et 117 ont t programms en 30 secondes chrono. Qui dit mieux ?

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

Lintgration dun nouvel lment est automatique en mode liste de donnes.

14

Groupe Eyrolles, 2008

Synthse : les avantages des listes de donnes sous tableur


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Groupe Eyrolles, 2008

15

1 Premiers pas vers les bases de donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

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 Les rgles de validation


dune liste de donnes

B Les mise en forme


conditionnelle de listes de donnes MOTS-CLS

B Liste de donnes
et base de donnes

B Champ et enregistrement B Les cinq rgles


dune liste de donnes

B Rgles de validation,
message daide la saisie et message derreur B Mise en forme conditionnelle : isoler un lment, visualiser les 10 premiers lments, barre de donnes B Doublons

Groupe Eyrolles, 2008

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.

Les listes de donnes et bases de donnes : lorganisation de linformation


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

Les champs : la structure


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

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

EXEMPLES Dautres champs pour dautres bases de donnes


Dans le cas dun annuaire, on peut imaginer que les champs de la base de donnes seront le nom de labonn, sa ville, son adresse et videmment son numro de tlphone, et pourquoi pas son e-mail. Pour un fichier de prospects commerciaux, le nom de lentreprise, le nom du contact, ses coordonnes, les produits qui peuvent lintresser, les diffrents contacts que nous avons eu avec lui, peuvent constituer les diffrents champs de la base. Et pourquoi pas la date laquelle nous devons le recontacter. La structure des champs dune base de donnes est donc fonction des buts que lon assigne cette base.

Les enregistrements : le contenu


Les champs dune base de donnes dfinissent sa structure, les enregistrements son contenu. Ainsi, notre exemple de planning du chapitre 1 comprenait trente-deux enregistrements correspondant toutes les combinaisons groupe/date/crneau. Si nous considrons un annuaire sous langle base de donnes, les diffrents abonns au tlphone en constituent les enregistrements. Dans une base, le nombre denregistrements (tout comme le nombre de champs) nest heureusement pas limit, cest mme tout lintrt. Par contre, autant le nombre de champs est stable une fois quil est arrt, autant le nombre denregistrements est lui constamment variable. Par exemple, la taille de lannuaire des abonns au tlphone augmente en fonction des nouveaux abonns et diminue en fonction des rsiliations.

OUPS Les slecteurs de filtre


napparaissent pas
Ne vous inquitez pas si les slecteurs de filtre napparaissent pas automatiquement sur votre cran, tout dpend du logiciel que vous utilisez. Leur fonctionnement est dtaill au chapitre 3.

Bien structurer une liste de donnes


Nous reprenons ici ltude du cas pratique de liste de donnes de matriel dalpinisme. La figure 21 reprsente la liste de donnes correspondante. Cette liste de donnes se prsente bien comme un tableau classique, avec les noms de champ en premire ligne et les diffrents enregistrements les uns au-dessous des autres. Sur la figure 21, les flches qui apparaissent dans les cellules des noms de champs sont les slecteurs de filtres, ceux que nous avons utiliss au chapitre 1 pour afficher ou masquer certains enregistrements. La structure de cette liste de donnes, simplissime, rpond cinq rgles ncessaires et suffisantes. Dtaillons-les.

TLCHARGER Cette liste de donnes


sous tableur est disponible en tlchargement
Lidal serait que vous testiez toutes les manipulations des chapitres 2 4. Pour vous faciliter la tche, la liste de donnes de notre exemple est disponible en tlchargement sur la fiche ouvrage sur le site www.editions-eyrolles.com. Mais vous pouvez aussi la saisir manuellement sur votre tableur favori, Excel ou Calc. Voire mme crer directement votre propre liste de donnes.

Groupe Eyrolles, 2008

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

Rgle 1 : les noms de champ en premire ligne


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

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

Rgle 2 : les enregistrements les uns au-dessous des autres


Il suffit de saisir, partir de la ligne 2, les enregistrements de la liste de donnes, cest--dire son contenu, les uns au-dessous des autres, sans se poser de question. Actuellement, notre liste contient trente enregistrements, de la ligne 2 la ligne 31. Nous pourrions en ajouter satit. Si les ventes augmentaient, tant en nombre quen volume, il suffirait de les saisir la suite des autres, sans autre limitation que le nombre de lignes disponibles dans une feuille de calcul, ce qui laisse tout de mme une certaine marge. Nous pouvons donc assurer Eddy que notre liste de donnes pourra accepter toutes les nouvelles ventes de notre socit.
PRODUCTIVIT Numroter / renumroter les lignes dune liste de donnes
Pour numroter ou renumroter les cellules de A1 A100 : 1. Saisissez 1 en A1puis saisir 2 en A2. 2. Slectionnez les deux cellules A1 et A2. 3. Recopiez par la poigne de recopie jusquen cellule A100. Le tableau va alors alimenter les cellules vides en ajoutant la valeur 1 correspondant lincrment entre 1 et 2 de A1 et de A2. Vous pouvez changer cet incrment : Si vous saisissez 0 en A1 et 2 en A2, vous obtiendrez la srie suivante : 0, 2, 4, 6, 8... avec un incrment de 2. Si vous saisissez 1 en A1 et 5 en A2, vous obtiendrez cette fois 1, 5, 9, 13, 17, soit un incrment de 4. Si vous saisissez 0 en A1 et 5 en A2, vous obtiendrez enfin 0, 5, 10, 15, 20, soit un incrment de 5. Groupe Eyrolles, 2008

INFO Nombre de lignes disponibles


sur une feuille de calcul
Une feuille de calcul peut comporter jusqu 1 048 576 lignes pour Excel 2007, et 65 536 seulement pour Excel 2003 et Calc. Cela dit, les alimenter toutes risquera de poser de srieux problmes de temps de recalcul, sans compter les maux de tte...

JE ME SUIS TROMP Jai fait une erreur de saisie


dans la liste de donnes...
Si jamais vous faites une erreur de saisie dans une liste de donnes, il suffit de la rectifier comme vous le feriez dans une feuille de calcul classique. Si jamais vous oubliez de saisir une vente, vous pouvez soit : simplement lajouter en bas de la liste de donnes, avec linconvnient que son numro chronologique ne correspondra pas la ralit ; insrer une ligne au bon endroit, avec lavantage que le numro sera correct mais avec linconvnient quil faudra alors renumroter les lignes, comme expliqu dans lapart Productivit ci-contre.

21

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

DExcel Access

TRUC Utiliser et faciliter le mode de saisie assiste des tableurs


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Rgle 3 : ni ligne ni colonne vide


CONDITIONNEL Risque ?
Excel ou Calc risquent selon le cas de ne travailler que sur une partie de la liste... . Le terme risquent est un peu vague. Et tonnament impossible clarifier. Les cas de figure sont trop nombreux pour tre tous lists, dans certains cas il ny aura pas de problme et dans dautres il y en aura. Dans ces conditions, le principe de prcaution simpose : ninsrer ni ligne ni colonne vierge dans une liste de donnes !

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

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

22

Groupe Eyrolles, 2008

ceci il existe un remde imparable : crer une liste de donnes compacte, sans ligne ni colonne vierge, comme sur notre figure 22.

Rgle 4 : pas de mise en forme inutile


Inutile de se casser la tte insrer des quadrillages, ou chercher raliser une mise en page sophistique de la liste de donnes. En effet, elle ne sert qu collecter linformation, et jamais elle ne sera imprime en tant que telle ; nous ne lutiliserons quau travers de sorties et de documents comme ceux que nous avons dj vu et dautres que nous apprendrons crer. Contentons-nous simplement de faire quelque chose de propre et de lisible, ce sera largement suffisant...
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

EXCEL 2007 Des listes de donnes lgamment quadrilles en un clic


Excel 2007 permet quand mme sans se fatiguer de crer des surlignages comme dans la figure 21. Le regard y suit plus facilement les lignes, inutile de sen priver ! Dans longlet Accueil, groupe Style, cliquez sur Mettre sous forme de tableau.

Rgle 5 : pas de formule


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

Figure 23

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

La liste de donnes ne contient donc que les donnes, sans aucune 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.

Les rgles de validation dune liste de donnes


Tout comme on ne remplit pas le rservoir dune voiture diesel avec de lessence sans plomb, il est essentiel, dans une liste de donnes, de valider les entres au moment de leur saisie afin dviter pas mal de dysfonctionnements.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

TRUC Slectionner une colonne


sauf son en-tte
Pour slectionner une colonne sans son en-tte, il faut cliquer sur len-tte de colonne (la lettre A, B, C...) puis dslectionner la premire cellule par Ctrl + Clic.

Le paramtrage des rgles de validation proprement dites


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

Figure 24

La bote de dialogue Validation des donnes.

Le tableau ci dessous reprend lessentiel des options proposes par Excel 2007 :
Tableau 21 Principales possibilits de contrle de validit des entres dans une liste de donnes (Excel) Nom de loption de la bote de dialogue Validation des donnes Effet

Tout Nombre entier * Dcimal * Liste * Groupe Eyrolles, 2008

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

Date Heure Longueur du texte

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).

Personnalis * Ignorer si vide


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

* Ces options sont dtailles ci-dessous.

Limiter les entres un nombre entier ou dcimal


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

Figure 25

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

26

Groupe Eyrolles, 2008

Limiter les entres aux donnes dune liste


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

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

(la colonne B correspondant ce champ, lexclusion de la cellule B1, est slectionne)

Il est maintenant impossible loprateur de saisir une valeur absente de la liste paramtre ci-dessus.

Groupe Eyrolles, 2008

27

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

DExcel Access

Crer une rgle de validation personnalise


Il est galement possible de limiter les saisies dans un champ, non par rapport une liste, mais par rapport une rgle. Par exemple il peut tre intressant dinterdire dantidater des enregistrements dans le futur, cest--dire que si le jour de saisie est le 12 mai il faut empcher la saisie du 14 mai.
TECHNIQUE La fonction Maintenant()
Excel et Calc possdent de nombreuses fonctions dont beaucoup sortent des strictes fonctions de calcul. Comme cette fonction Maintenant() qui rappelle la date et lheure ( la seconde prs) de la saisie. Son quivalent Aujourdhui() ne rappelle que la date, sans lheure.

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

Une formule comme rgle de validation des donnes

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

Avec les cellules B1 et B2 slectionnes, cette rgle de validation contrle que la somme des deux cellules nexcde pas 10 000.

28

Groupe Eyrolles, 2008

Lannulation des rgles de validation


Pour annuler une rgle de validation, il suffit de : 1 Slectionner les cellules concernes. 2 Ouvrir la bote de dialogue Validation des donnes. 3 Cliquer sur le bouton Effacer tout de la figure 27.
CALC Les rgles de validation
Lessentiel de ce qui a t expliqu pour Excel est valable pour Calc, tant sur le plan des principes de fonctionnement que sur celui de lergonomie des commandes (figure 29). On accde ce paramtrage par le menu Donnes, option Validit. Les seules diffrences significatives sont : limpossibilit de paramtrer une rgle de validation en fonction du rsultat dune formule comme expliqu page 28 ; lannulation des rgles se fait par le bouton Rtablir.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 29 La validation des donnes avec Calc

Laide la saisie et les messages derreur


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

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.

3 Saisissez le titre et le contenu du message souhait. 4 Validez.

Le message daide la saisie apparat ds lors que la cellule concerne est slectionne.

Figure 210

Le paramtrage dun message de saisie pour inviter saisir la date sous la forme JJ/MM/AA

Figure 211

Le message de saisie qui apparat avec le paramtrage de la figure 210

Si, malgr le message daide la saisie, loprateur se trompe, la rgle de validation rejette lentre et affiche par dfaut un message pas forcment trs clair, figure 212.
Figure 212

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

30

Groupe Eyrolles, 2008

TRUC Des messages daide la saisie efficaces


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

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.

Le dtail des rgles de validation conseilles pour notre cas pratique


Le tableau ci-dessous dtaille les paramtrages conseills pour les diffrents champs de notre liste de donnes en matire de rgle de validation, de message daide la saisie et de message en cas derreur .
Tableau 22 Les rgles de validation conseilles pour notre cas pratique Champ Numro * Reprsentant Zone Produit Date Montant Rgle de validation Message en cours de saisie Message en cas derreur

Entier Suprieur 0 Liste (Hlne, Sophie, Jean, Pierre) Liste (Nord, Sud, RP)

Entier de 1 N Prnom du reprsentant Zone de la vente

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.

Groupe Eyrolles, 2008

31

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

DExcel Access

Les mises en forme conditionnelle de liste de donnes


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Les mises en forme conditionnelles spcifiques Excel 2007


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

Figure 213

La mise en forme conditionnelle version Excel 2007

Il est trs facile dy accder. partir dune liste de donnes, il suffit de slectionner le bouton Mise en forme conditionnelle du groupe Style dans longlet Accueil. Vous avez ds lors le choix dutiliser diffrentes options de mise en forme conditionnelle. Toutes sont intressantes, mais nous avons choisi de dvelopper particulirement les points suivants : Isoler un lment dans une srie. 32
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.

Isoler un lment dans une srie


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 214

La bote de dialogue Format conditionnel gal

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


avec texte rouge fonc)

et validez. Cest fait (figure 215) !

Figure 215

Les enregistrements dHlne sont signals par un format spcifique.

Groupe Eyrolles, 2008

33

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

DExcel Access

Identifier les dix premiers lments dune srie


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

Figure 216
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

La bote de dialogue Format conditionnel, Dix valeurs les plus leves

Figure 217

Le top ten des ventes.

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

34

Groupe Eyrolles, 2008

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.

TECHNIQUE Formule absolue avec les $


Une formule absolue, caractrise par les signes $, prsente la particularit quand on la recopie de faire rfrence toujours la mme cellule, contrairement une rfrence relative (sans les $) qui incrmente lors de la recopie les indicateurs de lignes et de colonne et donc se dcale progressivement. Dans notre exercice, conserver les signes $ aurait pour consquence de faire rfrence la mme cellule F2 pour tous les enregistrements, ce qui serait bien sr incorrect. Il faut donc les enlever manuellement. Pour plus dinformations sur ces formules avec les $ et toutes leurs possibilits, consultez laide en ligne de votre logiciel ou bien PC trucs du mme auteur aux ditions Leduc.S ou encore les ouvrages consacrs Excel et Calc dans la collection TSoft des dition Eyrolles.

3 Choisissez loption Utiliser une formule pour dterminer pour quelles


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

cellules le format sera appliqu.

4 Entrez la formule =F2>=9000 dans la zone Appliquer une mise en forme

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.

aux valeurs pour laquelle cette formule est vraie.

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.

Groupe Eyrolles, 2008

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

Visualiser la place de chaque lment au sein de la srie


Vous pouvez afficher par une Barre de donnes la place relative de la donne concerne par rapport aux autres. Cette option ne sapplique bien videmment qu des donnes numriques. Notre opinion est que cette option est intressante sur le papier, mais quelle a plutt tendance alourdir la consultation de longues listes de donnes. Faites-vous votre propre opinion : 1 Slectionnez les ventes de F2 F31 ; 2 Dans longlet Accueil, groupe Style, slectionnez le bouton Mise en forme conditionnelle puis Barres de donnes. Chaque donne est maintenant complte dun graphique symbolisant sa place dans la srie (figure 219).
MARCHE ARRIRE Effacer les mises en forme
conditionnelles
Choisissez dans longlet Accueil, groupe Style, le bouton Mise en forme conditionnelle puis Effacer les rgles.

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

Les mises en forme conditionnelles dExcel 2003 et de Calc


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

37

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

DExcel Access

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

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

Figure 220

Le format conditionnel la mode Excel 2003


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Deux conditions notre format conditionnel Excel 2003

CALC Les formats conditionnels


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

Le format conditionnel la mode Calc

38

Groupe Eyrolles, 2008

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.

Groupe Eyrolles, 2008

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

Groupe Eyrolles, 2008

Trier et slectionner des enregistrements dans les listes de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

SOMMAIRE

B Comment accder aux

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.

fonctions de liste de donnes

B Les tris de listes de donnes B Les filtres ou la slection


denregistrements MOTS-CLS

B Tri croissant (alphabtique)


et dcroissant (antialphabtique)

B Tri personnalis B Combinaison de tris successifs B Filtres, filtres automatiques


et autofiltres

B Combinaison de filtres B Filtres textuels, numriques


et chronologiques

B Filtres volus et labors

Groupe Eyrolles, 2008

DExcel Access

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

Comment accder aux fonctions de liste de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

ATTENTION Que se passe t-il si on accde aux fonctions de liste de donnes en


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

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


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 33 Calc na pas trouv de donnes trier.

Si, par mgarde, vous slectionnez une partie seulement de la liste de donnes, Excel ou Calc risquent (selon les versions et la configuration de la liste) de nagir que sur cette zone spcifiquement dsigne, ce qui serait problmatique (voir figure 31 droite). Et si, cas extrme, vous ne cliquez dans aucune cellule de la liste, ni Excel ni Calc ne trouveront de donnes tudier et ils afficheront donc un message derreur. Rcapitulons ces rgles essentielles pour utiliser sereinement des 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.

Les tris de liste de donnes


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

Groupe Eyrolles, 2008

43

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

Trier sur un seul champ


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

Figure 34

Les outils de tri croissant et dcroissant.

Trier selon un ordre personnalis


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

Crer une liste personnalise


Une liste personnalise va permettre de raliser un tri selon lordre des termes de cette liste. Pour crer une liste personnalise avec Excel 2007 : 1 Cliquez sur le bouton Office, puis sur le bouton Options Excel (tout en bas de la bote de dialogue). 2 Slectionnez la catgorie Standard (en haut gauche de la bote de dialogue). 3 Cliquez sur le bouton Modifier les listes personnalises. La bote de dialogue de la figure 35 apparat.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Groupe Eyrolles, 2008

45

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

EXCEL 2003 Crer une liste personnalise


Le seul changement par rapport la procdure dcrite pour Excel 2007 est la faon daccder la bote de dialogue Listes personnalises : allez dans le menu Outils>Options>Listes personnalises.

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

CALC Crer une liste personnalise


Pour accder la bote de dialogue Liste de tri, allez dans le menu Outils>Options>OpenOffice.org Calc>Listes de tri. Cliquez sur le bouton Nouveau pour crer une nouvelle liste.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

La recopie du premier lment dune liste personnalise entrane linsertion de ses diffrents lments.

Trier selon une liste personnalise


EXCEL 2003 Trier selon une liste
personnalise
1. Dans la bote de dialogue Trier, cliquez sur le bouton Options. 2. Slectionnez la liste personnalise dans la liste droulante sous Normal.

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.

CALC Trier selon une liste personnalise


1. Dans la bote de dialogue Tri, slectionnez longlet Options, 2. Cochez la case Ordre de tri utilisateur . 3. Slectionnez la liste ad-hoc.

Figure 38 Lappel dune liste personnalise dans la bote de dialogue Trier

4 Validez, la figure 39 apparat. 5 Validez une deuxime fois pour obtenir le rsultat dfinitif de notre

tri (figure 310).


Groupe Eyrolles, 2008

46

Figure 39

Une liste personnalise est slectionne comme critre de tri.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 310

Notre liste trie, les femmes dabord !

Effectuer plusieurs tris successifs


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

47

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

BIEN RANG Rcuprer sa liste de donnes


dans lordre o elle a t saisie
Aprs avoir ralis de nombreux tris, on peut avoir lenvie de retrouver sa liste de donnes dans lordre initial de saisie. Cest l que notre champ Numro (denregistrement) trouve, entre autres, toute son utilit : il suffit de trier selon ce champ.

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

Groupe Eyrolles, 2008

EXCEL 2003 ET CALC Effectuer plusieurs tris successifs


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 313 Le premier tri sur le dernier paquet, incomplet

Figure 314 Le deuxime tri sur le premier paquet, complet

Les filtres ou la slection denregistrements


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

Groupe Eyrolles, 2008

49

3 Trier et slectionner des enregistrements dans les listes de donnes

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.

Les filtres simples


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Appliquer un filtre sur un champ unique


EXCEL 2003 ET CALC
Combinaison de slections dans un filtre
On ne peut raliser des combinaisons de filtres avec ces logiciels quen utilisant des filtres volus. Reportez-vous dans ce cas directement page 55 pour Excel 2003 et page 57 pour Calc.

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.

Figure 315 Les choix disponibles dans un filtre

Figure 316 Slection dun sous-ensemble

correspondent aux diffrentes valeurs que peut prendre le champ (ici le champ Reprsentant).

de donnes avec plusieurs critres valids.

Figure 317 La case Slectionner tout ractive toutes les entres dun champ.

50

Groupe Eyrolles, 2008

Appliquer un filtre sur plusieurs champs


Quand plusieurs filtres sont appliqus en mme temps sur diffrents champs dune mme liste de donnes, leurs effets se combinent. Si nous appliquons uniquement le filtre Sud sur le champ Zone, nous obtenons les ventes effectues dans la rgion Sud. De mme, si nous appliquons uniquement le filtre Pierre sur le champ Reprsentant, nous obtenons les ventes de Pierre. Si nous appliquons le filtre Pierre sur le champ Reprsentant et le filtre Sud sur le champ Zone, nous obtenons uniquement les ventes ralises par Pierre dans la rgion Sud (figure 318).

ALLER PLUS LOIN


Quand aucun enregistrement ne correspond une combinaison de filtres
Si nous souhaitons extraire les ventes de Pierre dans la zone Nord, nous allons commencer par appliquer le filtre Pierre sur le champ Reprsentant. Mais, au moment dappliquer le deuxime filtre (Nord pour le champ Zone), nous nous apercevons que cette valeur nest pas disponible dans la liste de choix. En effet, Pierre na rien vendu dans le Nord et la seule vente de cette rgion a t effectue par Sophie (la vente n 19).

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.

ALLER PLUS LOIN DANS LA LOGIQUE ET et OU


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

RAPPEL Un filtre nefface rien

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.

Groupe Eyrolles, 2008

51

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

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


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

Lentonnoir signale quun filtre est actif sur le champ Reprsentant.


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

La dsactivation dun filtre (ici sous Excel 2003)

Les filtres volus


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

52

Groupe Eyrolles, 2008

Les filtres volus spcifiques Excel 2007


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 321

Les diffrentes options des Filtres textuels


Tableau 31 Les filtres textuels Excel 2007 Option Effet

Commence par Se termine par Contient Ne contient pas

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)

Groupe Eyrolles, 2008

53

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

ALLER PLUS LOIN Les caractres gnriques


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

Utilisation des caractres gnriques dans un filtre Contient

Les filtres volus dExcel 2007 appliqus des nombres


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Toutes les possibilits de Filtres numriques

Une application du filtre numrique Au-dessus de la moyenne

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

Les autres filtres volus dExcel 2007 et 2003 et de Calc


Ces filtres ne portent pas le mme nom selon le logiciel que vous utilisez : avanc pour Excel 2007, labor pour Excel 2003, spcial pour Calc. Comme leurs fonctionnalits sont trs proches, nous utiliserons, pour ne fcher personne (sauf dans les descriptifs spcifiques), le terme gnrique dvolus. Ces filtres volus permettent de raliser des combinaisons de filtres plus complexes que les filtres simples. Leur mode dutilisation peut drouter, cest pourquoi nous allons le dtailler. Il sagira en gnral de : 1 Commencer par paramtrer une zone de critres. 2 Paramtrer et excuter le filtre volu.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

3 Trier et slectionner des enregistrements dans les listes de donnes

DExcel Access

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

H1 I2 qui contient nos fameux critres. Il ne vous reste plus alors qu valider (figure 326). Tout lintrt de ce type de filtre est de combiner rapidement autant de filtres que souhaits en saisissant dans la zone de critres tous les champs cte--cte et toutes les valeurs acceptables les unes au-dessous des autres. Vous gagnez ainsi un temps apprciable par rapport aux filtres traditionnels. La seule condition est que la plage de critres ainsi dfinie soit compacte, sans ligne ou colonne vide et bien spare de la liste de 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.

Figure 326 Le paramtrage dun filtre

volu sous Excel 2003

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

CRIRE Suprieur/infrieur, suprieur/infrieur et/ou gal


Dans les critres de filtre, suprieur et infrieur se notent > et <, suprieur ou gal et infrieur ou gal >= et <=.

Figure 327 La zone de critres dun filtre

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.

Figure 328 La zone de paramtres qui donne

les ventes de cordes dHlne suprieures 5 000 et toutes les ventes de Jean.

56

Groupe Eyrolles, 2008

CALC Les filtres standards et spciaux


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

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

Synthse : les tris et les slections denregistrements par filtre


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

57

3 Trier et slectionner des enregistrements dans les listes de donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

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 !

dans une liste de donnes

B Des tats danalyse


entirement paramtrables : les tableaux (graphiques) croiss dynamiques MOTS-CLS

B Totalisation de cellules par


simple slection

B Total et sous-total B Sous-totaux imbriqus B Somme, moyenne, nombre, cart


type, variance

B Tableau crois dynamique TCD B Pilote de donnes PDD B Graphique crois dynamique

Groupe Eyrolles, 2008

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

Totaux et sous-totaux dans une liste de donnes


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

60

Groupe Eyrolles, 2008

PRODUCTIVIT Obtenir des totaux par simple slection de cellules


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

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).

Insrer un niveau unique de sous-total


Reprenons lexercice cit en introduction de ce chapitre : calculer les sous-totaux des ventes par reprsentant. Dans ce but, il y aurait bien sr la possibilit dinsrer des lignes aux bons endroits, chaque changement de reprsentant, et dy entrer une formule de type Somme(). Mais cette technique est fastidieuse et comporte de nombreux risques derreur, notamment si on se trompe dans les insertions de ligne et dans les rfrences des formules Somme(). Oublions donc ces mauvais rflexes et utilisons les excellentes fonctionnalits de sous-total offertes par les listes de donnes. La mthodologie pour les insrer est trs simple, elle sera plus longue expliquer qu excuter ! Tout dabord, avant de crer un sous-total, il faut surtout ne pas oublier de trier la liste selon le champ qui sera utilis pour le sous-total. Dans notre exemple, commenons donc par trier notre liste par reprsentant en utilisant un ordre alphabtique ou notre liste personnalise (les femmes en premier, voir page 44). prsent, il convient dinsrer le sous-total : 1 Cliquez sur une cellule (et une seule) de la liste de donnes. 2 Sous Excel 2007 : allez dans longlet Donnes puis, dans le groupe Plan, cliquez sur le bouton Sous-total. Sous Excel 2003 ou Calc : utilisez la commande Sous-total (ou Sous-totaux) du menu Donnes.

RAPPEL Avez-vous pens effectuer une


copie de sauvegarde de votre liste ?
Imaginons le pire. Vous faites une btise en gnrant vos sous-totaux ; vous avez compltement dtruit votre liste de donnes dorigine et vous avez oubli den faire une copie. Vous devriez alors tout recommencer...

Groupe Eyrolles, 2008

61

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

DExcel Access

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

indiqu dans la figure 42. Aprs validation, vous obtenez laffichage de la figure 43 qui intgre maintenant nos fameux sous-totaux. Remarquez dans la bote de dialogue de la figure 42, la case cocher 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.

MTHODE Ajout ou suppression denregistrement avec les sous-totaux


Considrant la facilit dutilisation de la fonction de sous-total, nous vous recommandons pour tout ajout, suppression ou modification denregistrements alors que des sous-totaux sont dj paramtrs, de : supprimer les sous-totaux existants, voir page 66 ; effectuer les modifications des donnes ; paramtrer de nouveau les sous-totaux. Cette faon de faire vous garantit dobtenir des rsultats fiables. Elle a de plus lavantage de bien sparer la saisie des donnes de leur exploitation.

62

Groupe Eyrolles, 2008

ATTENTION Pourquoi trier la liste de donnes avant dinsrer le sous-total


En observant la figure 42, vous remarquez quune somme a t insre dans la colonne Montant chaque changement de reprsentant. Cest pour cette raison que nous avons tri la liste dabord selon le champ Reprsentant. Si nous ne lavions pas fait, Excel (aussi bien que Calc) aurait trouv chaque reprsentant plusieurs fois dans la liste, et aurait donc insr plusieurs sous-totaux pour chaque reprsentant, ce qui aurait t la fois faux et illisible (figure 44).

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

pour chaque nouvelle occurrence dun nom de reprsentant.

CALC Les sous-totaux avec Calc


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

Figure 45 Les sous-totaux sous Calc

Groupe Eyrolles, 2008

63

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

DExcel Access

Exploiter les sous-totaux de listes de donnes


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

Afficher la liste intgrale des enregistrements, des sous-totaux et du total gnral


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Affiner lanalyse : dvelopper ou rduire chaque sous-total


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

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

Groupe Eyrolles, 2008

Figure 46

Les outils spcifiques pour dvelopper ou rduire la demande chaque niveau de sous-total

Figure 47

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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 48

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

Figure 49

La figure 48, avec en plus le dtail de Jean

Figure 410

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

Groupe Eyrolles, 2008

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

Le dtail pour Pierre, le total pour les autres

Solution : aprs avoir insr les sous-totaux, il suffit de cliquer sur le bouton 2 pour nobtenir plus que les sous-totaux par reprsentant, puis sur le bouton + de Pierre pour dvelopper son dtail.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Supprimer les sous-totaux


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

Imbriquer plusieurs niveaux de sous-totaux


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

66

Groupe Eyrolles, 2008

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.

CALC Insrer des sous-totaux imbriqus


La bote de dialogue Sous-totaux de Calc autorise (figure 45) linsertion directe de plusieurs niveaux de sous-totaux dun seul coup. Il suffit dutiliser les onglets 1er groupe, 2e groupe, 3e groupe pour les sous-totaux de premier niveau, deuxime niveau et troisime niveau. Dans notre exercice, entrez le sous-total par reprsentant dans longlet 1er groupe et celui par zone dans le 2e groupe.

Figure 413

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

Groupe Eyrolles, 2008

67

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

DExcel Access

CALC Insrer un changement de page


entre chaque groupe
Cette option, une exclusivit de Calc, peut aider obtenir des tats plus lisibles (dans longlet Options de la figure 45, slectionnez la case Saut de page entre les groupes). Remarquez aussi loption Trier au pralable selon les groupes de ce mme onglet, qui vous dispense de trier la liste avant de lancer la procdure dinsertion des sous-totaux. Avantage Calc ?

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.

ALLER PLUS LOIN Il est possible dinsrer plus


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

de deux niveaux de sous-totaux


Nous nous sommes arrts deux imbrications de sous-totaux. Rien nempche daller plus loin, hormis peut-tre notre capacit comprendre ces tats...

Figure 414

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

Moyenne, nombre, variance et autres carts types


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

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

Le montant moyen des ventes par produit

Figure 417

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

Groupe Eyrolles, 2008

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

Nombre Moyenne Max Min Produit Chiffres cart type p


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

cart type Var p Var

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


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

Figure 418

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

70

Groupe Eyrolles, 2008

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.

Groupe Eyrolles, 2008

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

Crer un tableau crois dynamique avec lassistant Crer un TCD


Nous allons ici dtailler le mode de fonctionnement de lassistant Crer un TCD sous Excel 2007. Utilisateurs dExcel 2003 et de Calc, reportezvous aux aparts spcifiques, pages 74 et 75. Imaginons par exemple que nous voulions crer un TCD donnant, par reprsentant, le montant total des ventes ralises par Zone (en colonne) et par Produit (en ligne) comme sur la figure 422 de la page 74. Il faut procder comme suit : 1 Lancez lassistant Crer un TCD en cliquant sur loutil Tableau crois dynamique dans le groupe Tableau de longlet Insertion. Si vous cliquez en bas de ce bouton, et non en haut, vous aurez la possibilit de crer un TCD ou un graphique crois dynamique. Choisissez bien sr loption TCD (nous tudierons le graphique crois dynamique page 80). 2 Dans la bote de dialogue Crer un tableau crois dynamique (figure 420), lensemble de votre liste de donnes doit sentourer dun lisr clignotant ; modifiez-la si ncessaire. Vous avez la possibilit de crer votre TCD sur la feuille existante ou sur une nouvelle feuille. Cest cette dernire possibilit que nous allons adopter, car cest la meilleure lusage. Cliquez donc sur Nouvelle feuille.

3 Excel cre alors une nouvelle feuille, avec laffichage spcifique au


Figure 420

Louverture de lassistant TCD

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)

Groupe Eyrolles, 2008

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

EXCEL 2003 Lassistant TCD


Comme il fallait sy attendre, linterface dExcel 2003 est sensiblement diffrente, mme si le fonctionnement global du TCD est identique : 1. Lancez lassistant TCD par le menu Donnes puis par loption Rapport de tableau
crois dynamique.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Figure 423 Lassistant TCD version Excel 2003

74

Groupe Eyrolles, 2008

CALC Lassistant TCD devient assistant PDD


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

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

la demande de cration du PDD sur une feuille nouvelle.

Exploiter un TCD
Trs faciles paramtrer, les TCD sont en plus trs souples et aisment modifiables. Les champs affichs ne conviennent plus ? Il faut 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 !

Groupe Eyrolles, 2008

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

Faire varier la dimension filtre


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

Figure 425

La slection de plusieurs lments dun filtre de TCD


Figure 426

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

EXCEL 2003 ET CALC Pas de slections


multiples pour les filtres
Ces deux logiciels noffrent pas la possibilit de slectionner plusieurs valeurs dans le filtre de TCD : il nest possible que de slectionner une et une seule valeur du champ (soit Hlne, soit Sophie, soit Jean, soit Pierre par exemple pour le champ Reprsentant).

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

Les noms des reprsentants filtrs ne peuvent safficher que manuellement.

76

Groupe Eyrolles, 2008

Modifier la structure du TCD


Modifier la structure dun TCD (intervertir les lignes et colonnes, insrer un champ, utiliser une autre fonction que la somme...) seffectue trs facilement dans la bote de dialogue TCD. Il suffit de dplacer par cliquer-glisser les diffrents champs dans les trois zones Filtre du rapport, tiquettes de colonnes et tiquettes de lignes. Toutes les combinaisons sont possibles. Intervertir lignes et colonnes Il est trs facile dintervertir lignes et colonnes avec la bote de dialogue TCD : il suffit de cliquer sur le champ actuellement en colonne et de le glisser en ligne et inversement. Apprciez avec quelle simplicit cette opration seffectue en mode TCD. Un vrai rgal ! Insrer un champ supplmentaire Il est trs facile de modifier la structure dun TCD par lajout dun champ. Dans la bote de dialogue TCD, il suffit dinsrer le ou les champs souhait(s) par cliquer-glisser. Par exemple, la figure 428 reprsente le TCD obtenu en ajoutant le champ Reprsentant dans la zone tiquette de ligne du TCD de la figure 422.
RAPPEL Rafficher la bote de dialogue TCD
Pour rafficher la bote de dialogue TCD permettant de modifier le paramtrage dun TCD dj cr, il suffit de cliquer dans le TCD.

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.

Groupe Eyrolles, 2008

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.

EXCEL 2003 ET CALC Modifier le format


des nombres du TCD
Excel 2003 : double cliquez sur la case A3 de la figure 430, celle qui porte dans ce cas lintitul Somme de montant puis accdez la bote de dialogue Champ PivotTable. Cliquez alors sur le bouton Nombre. Calc : aucune fonction directe de formatage nest prvue. Il faut procder une mise en forme manuelle comme pour nimporte quel tableau (mais cela fonctionne fort bien).

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

Groupe Eyrolles, 2008

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

Organiser ses TCD


Il est trs facile de crer des TCD. Comme il est recommand de les crer sur des feuilles nouvelles, on se trouve trs rapidement, si on ny prend pas garde, submerg sous un ocan de Feuil1, Feuil2, Feuil3, etc. Soyez donc trs rigoureux : Ne conservez que les TCD (et donc les feuilles) utiles. Nommez clairement les onglets de feuilles pour vous y retrouver. Supprimez sans tat dme tout TCD mal n, redondant ou faux. Quand vous serez habitu crer des TCD, il ne vous faudra pas plus de 30 secondes pour gnrer des TCD complexes. Moralit ? Si le TCD obtenu ne vous convient pas, plutt que de perdre du temps le rendre conforme, supprimez-le et repartez de zro. Si vous prenez systmatiquement le parti de crer tout TCD sur une nouvelle feuille, il ny aura jamais aucun risque vous en dbarrasser en supprimant la feuille qui le contient
CALC Pas de GCD dans Calc
Calc noffre pas la possibilit de gnrer de graphique crois dynamique. Ceci dit, rien ne vous empche de crer un graphique partir du PDD obtenu... Dans cette hypothse, toute modification du PDD par mise jour des donnes sera rpercute automatiquement dans le graphique correspondant. Pour insrer un graphique sous Calc, le menu utiliser est Insertion, option Diagramme.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Le graphique crois dynamique


Le graphique crois dynamique ou GCD est la reprsentation graphique du TCD, avec exactement les mmes avantages (souplesse, simplicit, efficacit). Il allie donc les avantages dun TCD chiffr avec ceux dune reprsentation graphique. Les principes de base qui prsident sa cration et sa manipulation sont exactement les mmes que pour un TCD. Lergonomie tant quelque peu diffrente entre les versions 2003 et 2007 dExcel, nous les tudierons sparment.

Les GCD sous Excel 2007


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

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

Figure 433 Lassistant TCD avec lespace rserv au GCD.

Nous disposons maintenant de trois feuilles spares : une pour la liste de donnes source du TCD ; 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.

RAPPEL La mise jour dun TCD (et de son


GCD) nest pas automatique en cas de modification des donnes
Nous avons dj indiqu (page 79) que le TCD nest pas mis jour quand ses donnes source (la liste de donnes sur laquelle il est bti) sont modifies. Cest bien sr la mme chose pour le GCD.

Groupe Eyrolles, 2008

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

Groupe Eyrolles, 2008

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 435

Le GCD de la figure 434 relook en 3D avec un titre

Modifier le GCD en modifiant le TCD Toutes les modifications apportes au TCD sont automatiquement 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

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

Groupe Eyrolles, 2008

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

Les outils de TCD pour modifier directement le GCD

Figure 438

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

Les GCD version Excel 2003


Comme pour Excel 2007, les GCD dExcel 2003 permettent dallier la souplesse et la puissance danalyse des TCD avec les avantages dune reprsentation graphique, en employant une interface lgrement diffrente. Pour crer un GCD sous Excel 2003, il faut procder ainsi : 1 Slectionnez une cellule de votre liste de donnes et appelez loption Rapport de tableau crois dynamique du menu Donnes. Cette opration lance lAssistant rapport de tableau crois dynamique. 2 Dans ltape 1 de lassistant, slectionnez Rapport de graphique crois
dynamique (avec rapport de tableau crois dynamique).

3 Ltape 2 de lassistant permet de modifier, si ncessaire, la plage de

cellules contenant la liste de donnes qui servira de source au GCD. Si vous avez construit une liste de donnes conforme aux cinq rgles 84
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).

Groupe Eyrolles, 2008

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

Le montant maximum des ventes de Jean, par date

Synthse : les fonctions de sous-total et de tableau (graphique) crois dynamique sont les instruments indispensables danalyse dune liste de donnes
Avec les sous-totaux, les TCD et les GCD, nous venons de faire un pas dcisif dans lexploitation de nos listes de donnes, avec une facilit dconcertante et un niveau de performance et de fiabilit qui justifient eux seuls dorganiser ses donnes en liste de donnes. Il suffit daccder aux fonctions de sous-total, de TCD ou de GCD aprs avoir slectionn une et une seule cellule de la liste. Toutes les 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

Groupe Eyrolles, 2008

Introduction aux bases de donnes relationnelles


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

des listes de donnes

B Les concepts fondamentaux


des bases de donnes relationnelles

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

Groupe Eyrolles, 2008

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 limites des listes de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Une liste de donnes est un cas particulier dune base de donnes


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

90

Groupe Eyrolles, 2008

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

5 Introduction aux bases de donnes relationnelles

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

Groupe Eyrolles, 2008

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.

TERMINOLOGIE Le terme fichier


est ici impropre
Nous nutilisons ici le terme fichier que par souci de simplification. Nous dcouvrirons ultrieurement que ces fichiers sont en fait des sous-ensembles (que nous appellerons tables) du fichier vritable que constitue la base de donnes relationnelle.

Les concepts fondamentaux des bases de donnes relationnelles


Nous allons ici prsenter les quelques notions fondamentales en matire de bases de donnes relationnelles et de systme de gestion de bases de donnes relationnelles (galement nomm SGBDR) que sont Access et Base.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

CULTURE GNRALE Autres SGBDR


Access et Base ne sont pas les seuls SGBDR existants. Parmi les plus populaires nous pouvons citer Oracle, PostgreSQL, MySQL, Microsoft SQL Server...

Les tables : regroupement des donnes dun mme domaine


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

93

5 Introduction aux bases de donnes relationnelles

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 ?

Les relations entre les tables


Ce concept de relation est le fondement mme des SGBDR. Partons, pour le comprendre, de notre exemple des tables Ventes et Reprsen94
Groupe Eyrolles, 2008

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.

Groupe Eyrolles, 2008

95

5 Introduction aux bases de donnes relationnelles

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure 56 Un rseau de relations beaucoup plus tendu

BASE EXEMPLE ACCESS 2007 ET 2003 La base de donnes exemple Northwind/Les comptoirs
Access propose une base de donnes complte, prsentant une illustration pratique des principaux problmes poss par les bases de donnes relationnelles et des solutions concrtes y apporter. Il ne sagit pas bien sr dun mode demploi dAccess, et encore moins dune aide la programmation, mais bien dun modle dans lequel le programmeur attentif pourra trouver des solutions. Vous y trouverez donc une 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

Groupe Eyrolles, 2008

Tables matres et tables esclaves


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

La cl primaire : identifiant unique dun lment de table


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

97

5 Introduction aux bases de donnes relationnelles

DExcel Access

comme sur la figure 58, en utilisant un nom dj existant. Il y aura alors doublon dans le champ Reprsentant de la table des Reprsentants, puisque le mme contenu, Jean , sera prsent deux fois pour deux reprsentants/enregistrements diffrents.

Figure 58

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

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.

VISUALISER Reprer la cl primaire dune


table dans la fentre des relations
Pour chaque table visualise dans la fentre des relations, la cl primaire est le champ en gras. Il est en gnral en haut de la liste des champs, mais ce nest pas une obligation.

98

Groupe Eyrolles, 2008

Figure 59

Le champ NumeroRepresentant est une cl primaire de la table des Reprsentants et une cl trangre de celle des Ventes. La relation entre matre et esclave est ainsi assure.

ILLUSTRATION Des exemples didentifiant/cl primaire dans la vie quotidienne


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

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).

Groupe Eyrolles, 2008

99

5 Introduction aux bases de donnes relationnelles

DExcel Access

La mthode dlaboration dune base de donnes relationnelle


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

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.

La mise en uvre pratique dune base de donnes relationnelle


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

100

Groupe Eyrolles, 2008

La structure dun SGBDR et ses diffrents objets


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

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).

ACCESS Il existe dautres types dobjets


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

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

101

5 Introduction aux bases de donnes relationnelles

DExcel Access

INFO SQL, le langage informatique des


requtes sous la plupart des SGBDR
SQL, Structured Query Language (ou langage structur de requtes) est le langage utilis pour effectuer les requtes aussi bien sous Access que sous Base. Cependant, tout comme monsieur Jourdain faisait de la prose sans le savoir, nous pourrons crer de superbes requtes sans crire une ligne de SQL. Nous utiliserons en effet dans la plupart des cas les excellents assistants offerts par Access et, dans une moindre mesure, par Base.

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.

Les phases de la programmation dune base de donnes relationnelle


La programmation dun SGBDR comme Access ou Base ressemble sy mprendre la construction dun chteau de cartes, pour lequel la solidit dun tage conditionne celle du suivant (figure 512).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 512

Le chteau de cartes Access et Base

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

PAS DE PANIQUE Les SGBDR, ce nest pas si compliqu...


Sil est si compliqu de programmer un SGBDR, suis-je qualifi pour my lancer ? La question est lgitime. La rponse est double. Si vous navez ni ordre, ni mthode, vous pouvez tre certain que tout ira de mal en pis et que les choses vont vite se dgrader. Lchec est clairement invitable ! Si, par contre, vous avancez en suivant une mthode rigoureuse, par exemple celle que vous avez entre les mains, vous avancerez sereinement ; les obstacles se lveront au fur et mesure de leur apparition : vous russirez et pourrez mme vous amuser.

103

5 Introduction aux bases de donnes relationnelles

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

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

avons dj insist sur ce point. Voir chapitre 6. 2 La programmation des tables : cette phase comprend la cration des tables, de leurs champs et de leur cl primaire, ainsi que 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

5 La programmation des requtes : ce sera certainement pour vous

ltape la plus gratifiante. Nous y apprendrons crer des requtes pour lister certains enregistrements, pour faire des calculs et pour prparer certaines analyses, tout cela avec une facilit dconcertante. Voir chapitres 10 12. 6 La programmation des tats/rapports : nous dcouvrirons comment prsenter, partir des requtes ou des tables, de superbes tats informatiques. Voir chapitre 13.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Synthse : base de donnes relationnelle et mthode de travail avec un SGBDR


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

Groupe Eyrolles, 2008

105

5 Introduction aux bases de donnes relationnelles

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

La modlisation dune base de donnes relationnelle


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

SOMMAIRE

B Prsentation de notre cas

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.

pratique de base de donnes relationnelle

B Btir le schma thorique de la


base de donnes relationnelle

B En dduire le schma rel B Les principales tapes de la


programmation dAccess et de Base MOTS-CLS

B Schma thorique B Phrase cl B Nombre cl B Schma rel

Groupe Eyrolles, 2008

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

Prsentation de notre cas pratique de base de donnes relationnelle


Restons dans le milieu de la montagne : aprs la liste de donnes de matriel dalpinisme, nous voici chargs de btir une base de donnes relationnelle sous Access ou Base dans une cole dalpinisme, Chamonix. Cette base aura pour objectif de grer les inscriptions et les activits de lcole : manipuler les informations relatives aux stagiaires et leurs inscriptions aux diffrentes activits (les lister, savoir qui fait quoi, etc.) ; manipuler les informations relatives aux guides chargs danimer les activits (les lister, savoir qui encadre qui, etc.).
INFO Base de donnes simplifie
Il nest pas prvu dintgrer dans notre base dautres domaines, comme la gestion des plannings ou encore les aspects financiers, comptables ou concernant la paye. Cela serait possible, mais au prix dune singulire complication qui nous loignerait de laspect pdagogique de notre dmarche. De toutes faons, les outils que nous allons aborder ici vous permettront sans difficult particulire dintgrer ces dimensions. Nous nous contenterons de traiter le problme des encaissements des cotisations au chapitre 12.

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.

Btir le schma thorique de la base de donnes relationnelle


Le schma thorique de notre future base dcoule directement dune information que nous avons recueillie : les stagiaires sinscrivent des activits encadres par des guides. Cette phrase peut se dcomposer comme suit : les stagiaires sinscrivent des activits encadres par des guides . Ce schma est illustr par la figure 61. Nous le qualifions de thorique parce quil ne correspond pas, comme nous le verrons par la suite, au schma rel, mais il en est le point de dpart.
CULTURE GNRALE La mthode de modlisation Merise
Les lments de modlisation que nous prsentons ici sont inspirs de la mthode Merise, rfrence en la matire. Si vous souhaitez plus de prcisions, reportez-vous lannexe spcifique page 333.

Groupe Eyrolles, 2008

109

6 La modlisation dune base de donnes relationnelle

DExcel Access

Stagiaires

Activits

Guides

Figure 61

Sinscrivent

Encadres par

Les stagiaires sincrivent des activits encadres par des guides

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.

Dterminer les lments du schma thorique avec la phrase cl


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

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.

Individualiser les lments de la phrase cl


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Caractriser les lments de la phrase cl


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

111

6 La modlisation dune base de donnes relationnelle

DExcel Access

ALLER PLUS LOIN Dautres schmas thoriques


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

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

viter les principaux piges du schma thorique


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

Ne pas crer dlment inutile


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

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.

Groupe Eyrolles, 2008

113

6 La modlisation dune base de donnes relationnelle

DExcel Access

Ne pas crer un schma thorique en boucle


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 64

Un schma thorique en boucle est le plus souvent erron.

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

Dduire le schma rel du schma thorique


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

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

Dterminer dfinitivement les tables du schma rel


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 65

Le schma thorique complt des nombres cl

ALLER PLUS LOIN Dautres nombres cls


Quelle serait la signification dautres nombres cls dans le schma de la figure 65 ? Si le nombre cl entre Stagiaires et Sincrivent tait 1, cela signifierait quun stagiaire ne peut sinscrire qu une seule activit. Si le nombre cl entre Activits et Sincrivent tait 1, cela signifierait quune activit ne peut compter quun seul inscrit et quil sagit donc dun cours particulier. Si le nombre cl entre Activits et Encadres par tait N, cela signifierait quune activit peut tre encadre par plusieurs guides en mme temps. Si le nombre cl entre Guides et Encadres par tait 1, cela signifierait quun guide ne peut encadrer quune et une seule activit. Ces diffrences auront un impact immdiat sur le dessin final de la structure des tables de la base.

Groupe Eyrolles, 2008

115

6 La modlisation dune base de donnes relationnelle

DExcel Access

Tableau 61 Significations des nombres cls dans le cas pratique dcole dalpinisme Entre llment rectangle... Et llment cercle... Le nombre cl est... Parce que...

Stagiaires Activits Activits Guides

Sinscrivent Sinscrivent Encadres par Encadres par

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.

Un nombre cl est gal 1. Le cercle disparat.

116

Groupe Eyrolles, 2008

Nous obtenons ainsi le dessin dfinitif de nos quatre tables, figure 68.
Figure 68

Les quatre tables dfinitives de notre cas pratique

Il nous reste le complter par les diffrents champs de chaque table (dont un sera cl primaire) et fixer dfinitivement les relations entre les tables. Nous obtiendrons ainsi le schma rel dfinitif de notre base quil ne restera plus qu programmer.
AUTRE CAS Et si un guide pouvait
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.

Figure 69 Une base avec cinq tables et non plus quatre

Dterminer les champs et la cl primaire de chaque table


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

117

6 La modlisation dune base de donnes relationnelle

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

tablir les relations entre les tables


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

118

Groupe Eyrolles, 2008

RAPPEL Ajout de tables ou de champs


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

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

6 La modlisation dune base de donnes relationnelle

DExcel Access

UNIVERSEL Cette mthode de modlisation


fonctionne avec tout SGBDR
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Les principales tapes de la programmation dAccess et de Base


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

tape 1 : programmer les tables


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

120

Groupe Eyrolles, 2008

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 612

Schma gnral de la mthode de travail pour btir un SGBDR.

tape 2 : tablir les relations


Ltablissement des relations entre les tables matres et leurs esclaves permet dassurer le bon fonctionnement du modle relationnel du SGBDR. Elle comprend aussi ltablissement de lintgrit rfrentielle. Ce concept un peu mystrieux est en ralit trs simple ; il ne sagit que de sassurer que chaque enregistrement dune table esclave est toujours en relation avec lenregistrement correspondant de la table matre. Dans notre cas pratique, lintgrit rfrentielle interdira par exemple de supprimer lenregistrement dun guide de la table Guides sil encadre une activit. Cette tape est absolument fondamentale. Lexprience prouve que toutes les difficults que lon peut y rencontrer sont, presque toujours, la consquence directe dune erreur de conception ou de programmation des tables (qui trouve sa source dans un schma rel erron). Ltablissement des relations et de lintgrit rfrentielle peut ainsi tre considre comme une validation de la structure des tables dune base de donnes relationnelle.

CHRONOMTRE Pas plus de cinq minutes


Ltablissement des relations entre les tables matres et esclaves partir dune structure de tables correctement btie ne vous prendra pas plus de cinq minutes. Inversement, des difficults ce niveau risquent dtre le symptme dune erreur de conception de la structure mme de la base, ce qui vous obligera, dans le pire des cas, tout reprendre depuis le dbut. Quand on vous disait que la phase de modlisation tait essentielle...

tape 3 : saisir les donnes


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

121

6 La modlisation dune base de donnes relationnelle

DExcel Access

TRUC Diffrer la saisie des donnes


Quand vous serez expert en Access et Base vous pourrez parfaitement travailler entirement sans donnes, cest--dire programmer requtes, tats et formulaires sans navoir rien saisi dans les tables. Cela dit, quelques donnes tests vous simplifieront quand mme la tche en visualisant les rsultats de ces requtes, formulaires et tats.

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

tape 4 : programmer formulaires, requtes et tats/rapports


Pour un peintre, la dernire touche de pinceau met un point final au tableau. Sans cet ultime dtail, il est inachev. Est-ce dire que toute luvre sy trouve rsume ? Non, bien entendu. Ce coup de pinceau ne fait que parachever tout le travail, toutes les motions, toute la force que lartiste a voulu transcrire. Et la cohrence mme de luvre rend cette dernire touche presque naturelle, invitable, simple. Cest la mme chose pour une base de donnes : avec des tables et des relations correctement bties et valides, les requtes, les formulaires et les tats, sauf dans quelques cas trs complexes, ne seront la plupart du temps quun jeu denfant.
ET SI... Et si je ne suis pas lordre logique de ces phases ?
Prendre le problme dans le dsordre, cest un peu comme essayer de monter un chteau de cartes en Camargue un jour de mistral : il vous faudra plus dune fois tout reprendre zro.

Synthse : modlisation et mthode de programmation dun SGBDR


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

122

Groupe Eyrolles, 2008

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

Groupe Eyrolles, 2008

123

6 La modlisation dune base de donnes relationnelle

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

Oprations essentielles sur une base de donnes


SOMMAIRE
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

B Crer une nouvelle base de


donnes relationnelle

B Ouvrir une base de donnes

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 Utiliser lcran daccueil dune


base de donnes relationnelle

B Les caractristiques des


champs dune table

B Crer une nouvelle table B Crer les champs dune table B Crer une table par importation
de donnes

B Manipuler les objets dune base


de donnes MOTS-CLS

B Nouvelle base de donnes B Ouvrir une base de donnes B Problmes de scurit et de virus B cran daccueil B Volet de navigation
et volet daffichage

B Champ, type de champ,


proprits de champ

B Type de champ : texte, date/


heure, numrotation automatique

B Proprits de champ : format,


masque de saisie

B Proprits Chane vide autorise


et Null interdit

B Mode Cration / bauche


et mode Contenu

B Importation de donnes
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.

Crer une nouvelle base de donnes relationnelle


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 71 La cration dune base de donnes Access 2007 vierge

ACCESS 2003 Crer une nouvelle base de donnes


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

Figure 72 La cration dune base de donnes Access 2003 vierge

Groupe Eyrolles, 2008

127

7 Oprations essentielles sur une base de donnes

DExcel Access

BASE Crer une nouvelle base de donnes


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

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

Ouvrir une base de donnes relationnelle existante


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

128

Groupe Eyrolles, 2008

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.

WINDOWS Crer un raccourci sur le Bureau


Pour crer un raccourci vers un dossier ou un fichier sur le Bureau, il faut : Slectionner le dossier ou fichier souhait dans lexplorateur Windows ; Effectuer un clic droit dessus ; Slectionner les options Envoyer vers puis Bureau(crer un raccourci). Vous pouvez maintenant ouvrir directement votre dossier ou fichier par un double-clic sur son raccourci.

Groupe Eyrolles, 2008

129

7 Oprations essentielles sur une base de donnes

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 ;

AMUSANT Me protger contre tout contenu inconnu


Loption Me protger contre tout contenu inconnu de la figure 75 va tout simplement interdire louverture de la base slectionne.

3 Validez, la base souvre.

Figure 75

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

130

Groupe Eyrolles, 2008

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.

RADICAL Autoriser tous les fichiers


de Mes documents
Cest loption choisie sur la figure 77. Elle simplifiera vos manipulations, mais vous suppose majeur et vaccin : dans ce cas, plus aucune vrification ne sera effectue louverture dune quelconque base de donnes du dossier Mes documents. vous de prendre vos prcautions.

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).

2 Choisissez loption Emplacements approuvs et cliquez sur le bouton


Ajouter un nouvel emplacement,

la bote de dialogue de la figure 77

apparat.

Figure 77

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

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

autoris.
4 Validez plusieurs fois pour fermer toutes les fentres en cours.
Groupe Eyrolles, 2008

131

7 Oprations essentielles sur une base de donnes

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

Lcran daccueil dune base de donnes vierge sous Access 2007

ACCESS 2003 La gestion de la scurit


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

Figure 79 Avertissement de scurit en anglais. Choisir Ouvrir

(en toute connaissance de cause) ou Annuler.

132

Groupe Eyrolles, 2008

Utiliser lcran daccueil dune base de donnes relationnelle


Lcran daccueil est lcran obtenu directement louverture dune base de donnes. Il comporte pour lessentiel le volet de navigation ( gauche) et le volet daffichage (au centre et droite). Le principe gnral de son fonctionnement est que llment slectionn dans le volet de navigation saffiche dans le volet daffichage. Les figures 711, 712 et 713 illustrent son aspect respectivement sous Access 2007, Access 2003 puis Base.

ACCESS 2003 Maximiser la fentre daffichage de la base de donns


Avec Access 2003, une base saffiche par dfaut en fentre rduite (figure 710). Il est alors conseill dutiliser les boutons de redimensionnement de fentre Windows pour agrandir cette fentre afin de disposer dun espace de travail maximal.

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.

Figure 712 Une base de donnes Access 2003 vierge.

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

7 Oprations essentielles sur une base de donnes

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 714 Le Volet Access 2007 masqu. Le bouton Ouvrir/fermer

la barre de redimensionnement affichera ce volet.

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).

Crer une table


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

134

Groupe Eyrolles, 2008

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.

RAPPEL Dfinition dune table


Une table se compose de champs et denregistrements. Les champs dfinissent sa structure : nom, prnom, date de naissance, etc. Chacun possde des proprits (numrique, alphabtique, date, etc). Un des champs doit tre une cl primaire. Ses enregistrements dfinissent au contraire son contenu : les abonns au tlphone, les membres dune association, les clients dune entreprise, etc.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Les caractristiques des champs dune table


Le tableau ci-dessous dtaille les champs de notre table des Stagiaires et leurs caractristiques :
Tableau 71 Dtail des caractristiques des champs crer pour la table Stagiaires Nom du champ Type Format Autres caractristiques

NumeroStagiaire NomStagiaire PrenomStagiaire DateNaissanceStagiaire TelStagiaire

Numro automatique Texte Texte Date Numro de tlphone

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.

Utiliser des noms de champs pertinents


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

135

7 Oprations essentielles sur une base de donnes

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.

Dfinir une cl primaire efficace


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

Faciliter la saisie avec un masque de saisie


Un masque de saisie est une aide la saisie pour viter les erreurs et fluidifier la saisie. Prenons lexemple de la saisie dun numro de tlphone avec code international. Onze chiffres la suite, par exemple 33123456789, ce nest ni trs facile saisir ni trs facile lire. Le format 33 1 23 45 67 89, avec des espaces, est bien plus pratique. Ce type de difficult se rsout avec un masque de saisie, qui sera en lespce de la forme 33 _ __ __ __ ; lors de la saisie, loprateur naura plus qu remplacer les _ par les chiffres du numro de tlphone ; de plus, le code international de la France, 33, sera automatiquement entr (figure 716).
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

PRODUCTIVIT Les masques de saisie


Les masques de saisie sont en gnral systmatiquement utiliss pour tous les champs de prsentation normalise, comme numro de tlphone, code postal, numro de scurit sociale, numro de SIRET, etc. Ils sont galement indispensables pour lever lambigut lors de la saisie de certains champs, comme les champs date (JJ/MM/AAAA ou JJ/MM/AA ou encore AA/MM/JJ...)

Figure 716

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

Dans notre cas pratique, les champs DateNaissanceStagiaire et TelStagiaire comporteront un masque de saisie.

Interdire labsence de saisie


La proprit Null interdit, assez mal traduite en franais (son quivalent anglophone doit tre quelque chose comme Null forbidden), va obliger loprateur de saisie entrer une valeur pour le champ concern. Ici, nous allons lappliquer aux champs NomStagiaire, PrenomStagiaire et DateNaissanceStagiaire, mais pas au champ TelStagiaire (nous nobligeons pas le stagiaire nous communiquer son numro de tlphone).
OBSERVEZ La proprit Null interdit nest pas applique la cl primaire...
Vous remarquez que nous navons pas spcifi la proprit Null Interdit pour le champ cl primaire de notre table des Stagiaires. Pourtant, en toute logique, un champ cl primaire doit ncessairement avoir une valeur pour chaque enregistrement et donc ne pas accepter quaucune valeur ny soit saisie... Cest sans compter que dclarer un champ cl primaire dune table va automatiquement entraner la proprit Null interdit. Il est donc inutile de le prciser !

Nous sommes maintenant prts crer notre premire table, en prenant comme exemple la table des Stagiaires.
Groupe Eyrolles, 2008

137

7 Oprations essentielles sur une base de donnes

DExcel Access

Crer une nouvelle table


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

Figure 717

Crer une nouvelle table sous Access 2007 (mode Cration)


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 718

Figure 719

Crer une nouvelle table sous Access 2003 (mode Cration)

Crer une nouvelle table sous Base (mode bauche)

Cette manipulation ouvre une nouvelle table en mode Cration. Notez que ce mode Cration est une appellation Access, Base utilisant le terme bauche, et nous rserverons ce dernier aux explications spcifiques Base ( chaque fois que le lecteur Base trouvera le terme Cration dans les explications gnrales, il le traduira par bauche). La table ainsi cre est une table vide. Il est recommande de 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

Groupe Eyrolles, 2008

Crer les champs dune table


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 720

Ouvrir un objet en mode Cration (Access 2007)

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

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

Figure 722 Ouvrir un objet en mode bauche (Base)

Groupe Eyrolles, 2008

139

7 Oprations essentielles sur une base de donnes

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

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

La zone , en bas de lcran, permet de fixer les proprits de chaque champ : nombre de caractres, type de format numrique, nombre de dcimales, valeurs autorises dans une liste de choix, obligation 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.

Mthode gnrale de cration dun champ


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

140

Groupe Eyrolles, 2008

5 Dans la zone Proprits du champ (zone

figure 723), paramtrer les options complmentaires du champ (format, masque de saisie, liste de choix...).

Il ne faudra videmment pas oublier de dfinir une cl primaire. Les sections ci dessous dtaillent ces oprations pour nos champs de la table des Stagiaires.

Crer le champ cl primaire numrotation automatique


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer un champ numrotation automatique


Voici comment crer un champ numrotation automatique, dans une table en mode Cration (figure 725) : 1 Saisissez le nom du champ (ici, NumStagiaire) dans la premire cellule disponible de la colonne Nom du champ. 2 Dfinissez son type (ici, NumroAuto) dans la liste droulante de la colonne Type de donnes. 3 Entrez ventuellement une Description dans la colonne ddie ; nous ne lavons pas fait dans ce cas particulier puisque le nom du champ est explicite.
BASE La proprit Numrotation automatique
Le type de champ NumroAuto nest pas disponible sous Base. Il faut choisir le type Integer [ INTEGER ] (nombre entier) et slectionner Oui dans le champ Autovaleur de la zone des proprits, en bas de fentre (figure 724) :

Figure 724 La cration dun champ numrotation automatique sous Base

Groupe Eyrolles, 2008

141

7 Oprations essentielles sur une base de donnes

DExcel Access

Figure 725

La cration dun champ et les diffrents types de champs disponibles

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

(*) non disponible sous Access 2003


LENVERS Le bouton Cl primaire sert aussi supprimer la cl primaire
En cas derreur, par exemple si on sest tromp de ligne, il est toujours possible dannuler laffectation de la cl primaire sur un champ pour laffecter un autre en suivant la procdure lenvers. Par contre, une fois que la relation entre table matre et table esclave sera dfinie, il sera impossible denlever la proprit cl primaire du champ concern, puisque cest justement ce champ qui sera utilis dans la relation...

Dclarer un champ cl primaire


Pour dfinir quun champ est une cl primaire de la table ouverte en mode Cration, il suffit de slectionner le champ en cliquant dans la colonne grise juste gauche du nom de ce champ (comme nous le ferions pour slectionner un ligne sous tableur) et de cliquer sur le bouton Cl primaire (figure 726 pour Access 2007 et figure 727 pour Access 2003) ou bien de faire un clic droit puis choisir loption Cl primaire (Base).

142

Groupe Eyrolles, 2008

Figure 726

Le bouton Cl primaire Access 2007

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 727

Le bouton Cl primaire Access 2003

La cl primaire est maintenant dfinie et symbolise par une cl stylise juste ct du champ (figure 728). Notre table des Stagiaires 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.

Crer un champ ordinaire


Par champ ordinaire, il faut comprendre un champ qui nest pas cl primaire. Le mode opratoire pour crer un champ ordinaire est le suivant : 1 Saisissez le nom du champ dans la premire cellule disponible de la colonne Nom du champ. 2 Dfinissez son type dans la liste droulante de la colonne Type de
donnes.

3 ventuellement entrez une Description dans la colonne ddie. 4 Dfinissez dans la partie basse de la fentre de cration de champ ses
Proprits.

Illustrons cette procdure au travers de la cration des autres champs de la table Stagiaires.

Groupe Eyrolles, 2008

143

7 Oprations essentielles sur une base de donnes

DExcel Access

Crer un champ de type Texte


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Taille du champ Null interdit Chane vide autorise

Saisir la taille souhaite Oui Non Oui Non

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

Figure 730 Les proprits dun champ Texte sous Base :

ici, Longueur 20 et Saisie obligatoire

144

Groupe Eyrolles, 2008

ATTENTION Texte ou Mmo ?


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer un champ de type Date


Un champ de type Date/heure ne se gre videmment pas comme un champ numrique, il faut utiliser le type spcifique ddi. Pour crer un champ de type Date, suivez les tapes dcrites ci-dessus en slectionnant le type Date/heure lors de ltape 2. Les proprits principales dun champ Date/heure sont : Le Format. Vous avez le choix entre diffrents types, JJ/MM/AA, ou encore AA/MM/JJ et toutes ses variantes. Le Masque de saisie pour faciliter la saisie des donnes. La proprit Null interdit, qui doit tre fixe Oui si nous voulons imprativement collecter cette information. Concernant notre champ DateNaissanceStagiaire, nous avons choisi le format Date, abrg avec Access. Concernant la cration du masque de saisie, reportez-vous la section suivante.

BASE Le format Date


Le type de champ date est disponible dans la liste droulante des types de champ. Le format cherch (JJ/MM/AAAA) se trouve cach en bas de lcran dans la zone des proprits de champ sur la ligne Exemple de format : il faut cliquer sur les pointills ... pour accder la liste de choix des formats, vous y trouverez votre bonheur.

Crer un masque de saisie sous Access


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

145

7 Oprations essentielles sur une base de donnes

DExcel Access

ACCESS Installez les assistants


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 731 Linstallation de toutes les options dAccess

Pour crer un masque de saisie, slectionnez le champ en mode Cration de table. Dans la zone des proprits de champ, cliquez ensuite dans la ligne Masque de saisie. Lancez enfin lassistant Masque de saisie en 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

3 Le troisime cran propose de choisir lespace rserv, celui qui appa-

ratra dans le masque et qui sera remplac par la saisie de loprateur. Par exemple, le caractre rserv _ affichera __/__/____, loprateur devant remplacer les _ par des chiffres valides (par exemple le 29/03/1957) lors de la saisie. Testez les diffrentes options dans la zone Essayer. 4 Fermez lassistant. La figure 732 montre la fentre des proprits de champ pour notre champ DateNaissanceStagiaire. Le masque est cr, son code est 00/00/0000;0;_ : Dans la partie du code 00/00/0000 , les 8 0 vont obliger 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

COMPRENDRE Validation des donnes Type du champ et Masque de saisie


La validation des donnes se fait automatiquement partir du type de champ. Par exemple, il suffit de dterminer un champ de type Date pour que le SGBDR interdise la saisie de dates non valides comme le 30/02/2000 ou le 34/11/2009. Le masque de saisie ne fait que simplifier la saisie en offrant loprateur une aide visuelle.

Figure 732

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

Groupe Eyrolles, 2008

147

7 Oprations essentielles sur une base de donnes

DExcel Access

TESTEZ Essayer tous les masques de saisie de lassistant


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

0 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

Crer un champ de type tlphone


SOS Noubliez pas la possibilit
de tlcharger les exercices
Si vous navez pas russi programmer votre table, ou si vous souhaitez simplement vrifier votre travail, nous vous rappelons que vous pouvez tlcharger les exercices sur la fiche de ce livre sur le site des ditions Eyrolles. B www.editions-eyrolles.com

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).

slection des masques, le type

5 Fixez la proprit Null interdit Oui ou Non (Oui dans notre cas pratique).

148

Groupe Eyrolles, 2008

Figure 733

Le choix du masque de saisie ddi un numro de tlphone


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

NumeroStagiaire NomStagiaire PrenomStagiaire DateNaissanceStagiaire TelStagiaire

NumroAuto Texte Texte Date Texte

Oui Non Non Non Non 20 15 Oui Oui Oui Non Non Non Date abrge JJ/MM/AAAA __ __ __ __ __

Groupe Eyrolles, 2008

149

7 Oprations essentielles sur une base de donnes

DExcel Access

Crer une table par importation de donnes


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Caractristiques des donnes importer


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

Importer des donnes externes dans une table Access


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

150

Groupe Eyrolles, 2008

ACCESS 2003 Lancer lassistant Importation de feuille de calcul


Lassistant Importation se lance par le menu Fichier, options Donnes externes puis Importer. Slectionnez ensuite le type de fichier Excel dans la liste droulante, figure 734.

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

7 Oprations essentielles sur une base de donnes

DExcel Access

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

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

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

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

Figure 737

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

4 Spcifiez des informations sur les champs importer. partir du

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

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

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.

Importer dautres objets Access


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

Groupe Eyrolles, 2008

153

7 Oprations essentielles sur une base de donnes

DExcel Access

ACCESS 2003 Lancer lassistant


Importation Access 2003
Il faudra slectionner Access dans la zone du Type de fichiers sur la figure 734.

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.

ALLER PLUS LOIN Les options dimportation dobjets dans Access


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

Figure 740 Les options dimportation des objets dAccess en Access

154

Groupe Eyrolles, 2008

Importer des donnes et des programmes sous Base


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

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.

Groupe Eyrolles, 2008

155

7 Oprations essentielles sur une base de donnes

DExcel Access

Modifier la table rsultante aprs importation


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Manipuler les objets dune base de donnes


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

Comprendre lutilit des deux modes daffichage dun objet


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

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.

TERMINOLOGIE Le mode Contenu


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

Groupe Eyrolles, 2008

157

7 Oprations essentielles sur une base de donnes

DExcel Access

Ouvrir un objet directement dans le mode adquat


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

Figure 744

Double-cliquer sur la table Stagiaires louvre en mode Contenu (Access 2007). Remarquez que la famille Tables est slectionne dans le volet de navigation.
Tableau 76 Dans quel mode et comment ouvrir un objet de base de donnes relationnelle
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Si lon veut...

Il faut ouvrir lobjet correspondant en mode...

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

Cration (bauche pour Base)

Basculer dun mode daffichage lautre


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

Figure 745

Basculer du mode Cration au mode Contenu (Access 2007)

158

Groupe Eyrolles, 2008

Figure 746

Basculer du mode Contenu au mode Cration (Access 2007)

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

Fermer, supprimer et copier un objet


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Figure 747

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

Supprimer un objet se fait trs (trop ?) facilement. Il suffit de 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

7 Oprations essentielles sur une base de donnes

DExcel Access

ATTENTION Une seule base de donnes


et un seul objet la fois
Avec Access et Base, il nest pas possible douvrir deux bases de donnes en mme temps (sauf ouvrir deux fois le logiciel, ce que nous ne saurions vous conseiller, une base de donne est assez complique pour ne pas se sentir oblig de jongler sur deux bases la fois). Par contre, certains peuvent tre tents douvrir dans la mme base plusieurs objets simultanment. Cest notre avis une mauvaise pratique, pour la raison expose prcdemment : un objet la fois, cest bien assez. Ce sera mme parfois obligatoire : vous constaterez par exemple quen travaillant sur une requte en mode Cration, vous ne pourrez pas y insrer un champ dune table si cette dernire est ouverte, que cela soit en mode Cration ou en mode Contenu.

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

Synthse : oprations essentielles sur une base de donnes


Les toutes premires oprations que nous venons de raliser sur les bases de donnes montrent bien les spcificits du fonctionnement des SGBDR, tant sur le plan de la cration dune base de donnes vierge que sur celui de louverture dune base existante ou encore la cration dune nouvelle table dans une base. Vous aviez lhabitude de travailler sur un nouveau document tableur ou traitement de texte sans ncessairement lenregistrer tout de suite ? Un SGBDR ne lentend pas de cette oreille : vous devrez apprendre nommer et enregistrer toute nouvelle base de donnes avant mme de commencer y programmer quoi que ce soit. Si vous travaillez avec Access, la gestion des problmes de scurit va de plus vous obliger, si vous voulez viter des manipulations assez agaantes, crer un rpertoire spcifique scuris dans lequel vous stockerez vos bases de donnes. Les surprises ne sarrtent pas l ! Mme lcran daccueil dune base de donnes Access ou Base, avec son volet de navigation (qui regroupe les diffrents types dobjets que sont les tables, les requtes, les formulaires et les tats/rapports) et son volet daffichage, droute lutilisateur habitu un document texte ou une feuille de calcul. Enfin, la cration dune table, de ses champs et dune cl primaire en mode Cration/bauche ncessite ordre, mthode et structure : Pour chaque champ dune table, il faut dfinir son nom en respectant les rgles de graphie conseilles (NomDuChamp et pas Nom du champ), dfinir son type (texte, numrique, numro automatique, date/heure, oui/non, liste de choix, etc), lui attribuer ventuellement une description et, enfin, dfinir ses proprits.

160

Groupe Eyrolles, 2008

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

Double-clic Clic droit, et slectionner Mode Cration

Double-clic Bouton Modifier

Double-clic Bouton diter Fermer et rouvrir

Bouton en haut gauche du ruban Bouton en haut gauche de la barre doutils viter. Pour duplication. Par Ctrl+C et Ctrl+V.

Bien rflchir : aucune rcupration possible, toute suppression est dfinitive

Groupe Eyrolles, 2008

161

7 Oprations essentielles sur une base de donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

tablir les relations entre les tables


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

SOMMAIRE

B Crer toutes les tables

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.

de notre cas pratique

B tablir les relations


par liste de choix avec Access

B Paramtrer la fentre
des relations avec Access

B tablir les relations avec Base B Rsoudre les difficults lies


au paramtrage des relations MOTS-CLS

B Liste de choix manuelle B Valeur par dfaut B Cl primaire et cl trangre B Relation entre table matre et
table esclave

B Fentre des relations B Intgrit rfrentielle

Groupe Eyrolles, 2008

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

Crer toutes les tables de notre cas pratique


Nous ne pourrons bien tablir les relations entre nos tables quaprs les avoir toutes cres. Nous navons actuellement cr que la table Stagiaires. Selon le schma rel de la figure 81, nous devrions encore crer trois tables (Inscriptions, Activites et Guides).
Stagiaires
Figure 81
Num stagiaire Nom Prnom Date naissance Tlphone

Inscriptions
Date inscript. Num stagiaire Nom ac vit

Activites
Nom ac vite Num guide

Guides
Num guide Nom Prenom Bureau guides

Le schma rel de notre cas pratique avec ses quatre tables

Pourtant, une analyse approfondie des hypothses de dpart amne revenir sur un lment important recueilli dans le cahier des charges : lappartenance des guides un bureau des guides ! Rparer cet oubli oblige reformuler la phrase cl de notre cas pratique : les stagiaires sinscrivent des activits encadres par des guides qui appartiennent un bureau des guides . La partie en italique de cette 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).

Groupe Eyrolles, 2008

165

8 tablir les relations entre les tables

DExcel Access

AVANT-PREMIRE La liste de choix


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

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

Inscriptions Activites Guides (*)

NumeroStagiaire NomActivite NumeroGuide BureauGuide (*)

NumeroStagiaire NomActivite NumeroGuide BureauGuide (*)

Stagiaires Activites Guides BureauxGuides (*)

(*) Uniquement pour Base Nous sommes maintenant prts crer toutes les autres tables de notre cas pratique. Puisquon ne peut crer les tables dans nimporte quel ordre (il faut en effet respecter la hirarchie matre/esclave, voir page 134), nous vous proposons de crer successivement les tables Guides, Activites et Inscriptions (et galement BureauxGuides, uniquement pour les 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

Groupe Eyrolles, 2008

Crer la table des Guides


Le tableau ci-dessous liste les champs de cette table Guides :
Tableau 82 Table Guides: dtail des caractristiques des champs crer Nom du champ Type Format Autres caractristiques

NumeroGuide NomGuide PrenomGuide BureauGuides

Numro automatique Texte Texte Texte

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

La table des Guides en mode Cration

PRODUCTIVIT Crer la table des Guides par copie de celle des Stagiaires
Nous avons voqu la possibilit de crer un objet partir dun autre objet par copier/ coller puis modification de la copie. Cette manipulation est surtout intressante avec des requtes et des tats, mais elle peut aussi rendre service avec des tables. Nous 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.

Groupe Eyrolles, 2008

167

8 tablir les relations entre les tables

DExcel Access

Crer la table des Activites


RAPPEL Il est inutile de paramtrer
les proprits dune cl primaire
Les caractristiques dune cl primaire sont telles que, par dfaut, les proprits Null interdit et Sans doublon sont paramtres Oui (mme si laffichage des proprits du champ semblent prouver le contraire). Il suffit donc de cliquer sur licne Cl primaire pour affecter cette caractristique et toutes ses proprits un champ.

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.

Crer la table des Inscriptions


La table des Inscriptions doit comporter trois champs, un champ cl primaire, (DateInscription), et deux champs cl trangre (NumeroStagiaire pour crer la relation avec la table des Stagiaires et NomActivite pour crer la relation avec la table des Activites).

Figure 86

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

168

Groupe Eyrolles, 2008

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

Crer la table des BureauxGuides avec Base


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

Figure 87

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

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

Groupe Eyrolles, 2008

169

8 tablir les relations entre les tables

DExcel Access

tablir les relations par liste de choix avec Access


RAPPEL Pas de saisie avant
davoir tabli les relations
Ltablissement des relations permet dassurer lintgrit des donnes et le bon fonctionnement des tables de la base. Il est donc essentiel de ne rien saisir dans les tables avant davoir mis en place ces relations.

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.

Paramtrer une liste de choix manuelle avec Access


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Utiliser lassistant Liste de choix manuelle


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

Groupe Eyrolles, 2008

171

8 tablir les relations entre les tables

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

Groupe Eyrolles, 2008

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.

ALLER PLUS LOIN Les options du dernier cran


de lassistant liste de choix
Access attribue votre liste de choix ltiquette correspondant au nom de votre champ. Cest une trs bonne initiative, non ? La case cocher Autoriser plusieurs valeurs permet de grer une liste de choix deux colonnes ou plus. Nous vous dconseillons cette option, une liste de choix par rapport une table est bien plus facile dutilisation.

Figure 813

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

Vrifier et scuriser la liste de choix avec Access


Notre liste de choix est paramtre. Pour le vrifier, il suffit de cliquer sur longlet Liste de choix de la zone Proprits de notre champ Bureauguide (figure 814) : nous retrouvons bien sur la ligne Contenu les diffrentes entres de notre liste, entre guillemets et spars par des points virgules. Reste maintenant modifier la proprit Limiter liste de notre champ BureauGuides. Elle est fixe par dfaut Non, ce qui signifie concrtement que loprateur de saisie aura toujours la possibilit de saisir une
Groupe Eyrolles, 2008

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

8 tablir les relations entre les tables

DExcel Access

LOGIQUE Null interdit et listes de choix


Avec le paramtre Limiter liste Oui, il est impossible de ne rien saisir dans ce champ. Spcifier Null interdit Oui est donc superflu mais le spcifier nest pas interdit. Faites comme vous voulez.

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

Assigner une valeur par dfaut dans une liste de choix


Dans une liste de choix, manuelle ou par rapport une table, il arrive souvent quune mme valeur soit plus frquente quune autre. Dans une socit franaise, le personnel est probablement plus souvent de nationalit franaise. Dans un club de danse les femmes sont peut-tre surreprsentes par rapport aux hommes (et inversement dans un club de rugby). Il est donc souvent utile de paramtrer dans une liste de choix une valeur par dfaut, par exemple Franais, Femme ou Homme. Ou encore Chamonix pour le champ BureauGuides de notre table des Guides, puisque Chamonix est le plus grand bureau de la valle. Voici comment procder pour paramtrer une valeur par dfaut : 1 Dans la table en mode Cration, slectionnez le champ considr. 2 Dans les proprits du champ, dans longlet Gnral, saisissez la valeur souhaite sur la ligne Valeur par dfaut (figure 815).

PRODUCTIVIT Valeur par dfaut


La proprit Valeur par dfaut ne sapplique videment pas exclusivement aux champs aliments par une liste de choix manuelle. Elle sutilise avec profit pour les listes de choix par rapport une table ou mme pour un champ sans liste de choix. Le seul critre pour utiliser une valeur par dfaut est la sur-reprsentation dune valeur particulire pour un champ.

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.

RAPPEL Cl primaire et cl trangre


Le champ NumeroGuide de la table esclave Activites est cl trangre de cette table puisquil fait rfrence par liste de choix aux valeurs correspondantes du champ quivalent NumeroGuide, cl primaire de la table matre Guides.

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.

Groupe Eyrolles, 2008

175

8 tablir les relations entre les tables

DExcel Access

Utiliser lassistant Liste de choix par rapport une table


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

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.

Groupe Eyrolles, 2008

177

8 tablir les relations entre les tables

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 liste de choix sera trie selon le Numro de guide.

ATTENTION La case Coonne cl cache


(recommande)
Access conseille de masquer le champ cl primaire de la table matre (ici, celle des Guides). Cela ne nous parat pas tre une bonne ide, puisque ce champ est justement cl primaire de la table des Guides et quil permet donc de retrouver sans hsiter un guide parmi ses confrres. Nous vous conseillons donc de dcocher cette case.

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

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

La fentre de la figure 823 permet ensuite de choisir le champ stocker dans la table esclave. Il sagit bien videmment de la cl primaire de la table matre, ici NumeroGuide. 178
Groupe Eyrolles, 2008

Figure 823
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Confirmons que le champ NumeroGuide va assurer la relation entre Activites et Guides.

Cen est presque fini. Ne changez rien lcran de la figure 824 et 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

Ne rien changer cet cran et cliquer sur Terminer.

Figure 825

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

Groupe Eyrolles, 2008

179

8 tablir les relations entre les tables

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.

Figure 827 Les proprits dune cl primaire

Nous remarquons dabord que la proprit Null interdit a pour valeur Non. trange? Oui et non. Oui, parce que cette proprit devrait tre Oui (une cl primaire doit obligatoirement avoir une valeur). Mais en fait Non, parce que, mme si cette proprit est Non, Access considre en fait quelle est Oui (pour lui, une cl 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).

Figure 828 Le champ NomStagiaire est Index Oui avec

doublons pour permettre une recherche plus rapide selon le nom du stagiaire.

Groupe Eyrolles, 2008

181

8 tablir les relations entre les tables

DExcel Access

Paramtrer la fentre des relations avec Access


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 829

Le bouton Relations dAccess 2007

Sous Access 2003 : cliquez sur le bouton Relation de la barre doutils (figure 830), ou passez par le menu Outils et choisissez loption Relations.
Figure 830

Le bouton Relations dAccess 2003

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

Figure 831

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

182

Groupe Eyrolles, 2008

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

Anatomie de la fentre des relations avec Access


La fentre de relations de notre cas pratique de la figure 831 illustre clairement le fonctionnement des relations qui unissent nos tables : un stagiaire peut sinscrire une activit encadre par un guide. Nous remarquons que le premier champ de chaque table est signal par une cl, ce qui signifie, vous laviez devin, quil est cl primaire de la table. Chaque table a une et une seule cl primaire.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

ERGONOMIE Cl primaire Access 2003


La cl primaire de chaque table apparat en gras dans Access 2003, et non accompagne du symbole reprsentant la cl comme sous Access 2007.

Paramtrer lintgrit rfrentielle des relations avec Access


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

Groupe Eyrolles, 2008

183

8 tablir les relations entre les tables

DExcel Access

Figure 832

Le paramtrage de lintgrit rfrentielle

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

Les relations de un plusieurs

Dans le sens de 1 : un stagiaire peuvent correspondre plusieurs inscriptions. une activit peuvent correspondre plusieurs inscriptions. un guide peuvent correspondre plusieurs activits. Dans le sens 1 : Chaque inscription ne concerne quun et un seul stagiaire, ainsi quune et un seule activit. Chaque activit est encadre par un et un seul guide. Ici sachve le paramtrage des relations sous Access. Nous sommes maintenant prts passer ltape suivante dans la construction de notre 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.

LEXICOLOGIE Pouvoir et devoir


Pouvoir nest pas devoir : dire quun guide peut encadrer plusieurs activits ne signifie pas quil doit en encadrer plusieurs. Par contre, dire quune activit doit tre encadre par un guide signifie que non seulement elle le peut, mais que cest obligatoire.

184

Groupe Eyrolles, 2008

ALLER PLUS LOIN Les autres options de lintgrit rfrentielle


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

tablir les relations avec Base


Avec Base, tablir des relations entre les tables ne se fait pas comme avec Access par le paramtrage de listes de choix, puisque cette fonctionnalit nest pas disponible. Les relations entre tables matres et tables esclaves avec Base se programment directement dans la fentre des relations. Pour pouvoir suivre cette dmonstration, qui prend comme fil conducteur notre cas pratique, assurez-vous davoir cr dans votre base toutes les tables ncessaires, savoir Stagiaires, Inscriptions, Activites, Guides, et surtout la table complmentaire BureauxGuides (rappelons que la prsence de cette dernire table nest due qu labsence de listes de choix manuelles sous Base). Aprs avoir dcouvert le fonctionnement de la fentre des relations Base, nous verrons comment paramtrer une relation.
BASE Les listes de choix
Si les listes de choix ne sont pas disponibles en mode bauche de tables, elles le sont avec les formulaires, voir page 210. Concrtement, les utilisateurs de Base disposeront donc du mme confort de saisie des donnes que ceux dAccess.

Fonctionnement de la fentre des relations avec Base


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

185

8 tablir les relations entre les tables

DExcel Access

Figure 834

La liste des tables disponibles pour la fentre des relations


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 835

Premier affichage de la fentre des relations

INDISPENSABLE Licne cl primaire pour


chaque table de la fentre des relations
Le champ cl primaire de chaque table de la figure 836 sorne de licne correspondant, une cl stylise.

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

Les tables de la fentre des relations saffichent dans lordre logique

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

186

Groupe Eyrolles, 2008

Paramtrer une relation dans la fentre des relations avec Base


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

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 :

Guides Activites Inscriptions

BureauGuides NumeroGuide NumeroStagiaire NomActivite

BureauGuides BureauGuides NumeroStagiaire NomActivite

BureauxGuides Guides Stagiaires Activites

Groupe Eyrolles, 2008

187

8 tablir les relations entre les tables

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

Une chane ininterrompue de relations de 1 n

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?

Figure 839 Le dtail dune relation avec les options

Options de mise jour et Options de suppression

188

Groupe Eyrolles, 2008

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.

Rsoudre les difficults lies au paramtrage des relations


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Des donnes ont t saisies avant le paramtrage des relations


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

Figure 840

Alerte ! Lintgrit rfrentielle ne peut tre applique...

Groupe Eyrolles, 2008

189

8 tablir les relations entre les tables

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

Il manque une cl primaire pour une table


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

Figure 841

Table sans cl primaire : danger !

Une table contient une cl primaire inattendue


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

Figure 842

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

190

Groupe Eyrolles, 2008

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).

Groupe Eyrolles, 2008

191

8 tablir les relations entre les tables

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

Synthse : le verdict des relations


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

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

Programmation des tables

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Programmation des relations (sous Access)

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

Programmation des relations (sous Base)

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.

Groupe Eyrolles, 2008

193

8 tablir les relations entre les tables

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

Crer un formulaire et saisir les donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

SOMMAIRE

B quoi sert un formulaire ?

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 Crer un formulaire de saisie


simple

B Aller plus loin avec


les formulaires

B Saisir et modifier les donnes


MOTS-CLS

B Formulaire et sous-formulaire B Assistant Cration de formulaire B Modification de formulaire B Menu daccueil B Saisie des donnes

Groupe Eyrolles, 2008

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.

quoi sert un formulaire ?


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

196

Groupe Eyrolles, 2008

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

Le formulaire correspondant est bien plus clair et efficace !

En conclusion, un formulaire est une interface ergonomique et efficace dassistance la saisie, la modification et la consultation des donnes. Il fiabilise et acclre la saisie des donnes. Et en plus, comme nous allons le voir dans ce chapitre, il est trs simple crer !

Groupe Eyrolles, 2008

197

9 Crer un formulaire et saisir les donnes

DExcel Access

Crer un formulaire de saisie simple


TECHNIQUE Mode Cration et assistant
Ces deux modes ne sont pas incompatibles : lun peut prendre le relais de lautre. Il sera toujours possible de modifier en mode Cration un formulaire cr par un assistant afin, par exemple, de le perfectionner. Cest dailleurs ce que nous ferons.

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

Crer un formulaire avec lassistant


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

Figure 93

Afficher les formulaires disponibles dans le volet de navigation Access 2007

198

Groupe Eyrolles, 2008

Figure 94

Lancer lassistant Formulaire Access 2007


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Sous Access 2003 : dans le volet de navigation, slectionnez la famille Formulaires. Double-cliquez ensuite sur Crer un formulaire laide de lassistant (figure 95).

Figure 95

Lancer lassistant Formulaire Access 2003

Sous Base : cliquez sur Formulaire dans le volet de navigation. Double-cliquez ensuite sur Utiliser lassistant de cration de formulaire (figure 96). 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.

BASE Un assistant de cration plus riche


Lassistant Formulaire de Base comporte plus de possibilits et plus dtapes que son alter ego Access. Nous avons choisi de calquer notre prsentation sur le droul de lassistant Access. Les utilisateurs de Base se reporteront le cas chant aux aparts spcifiques.

Groupe Eyrolles, 2008

199

9 Crer un formulaire et saisir les donnes

DExcel Access

Figure 96
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Lancer lassistant Cration de formulaire Base

Dterminer la table et les champs du formulaire


Nous voulons crer un formulaire pour saisir les donnes de la table des Stagiaires. Il faut donc slectionner cette table avec tous ses champs. Voici comment faire selon le logiciel que vous utilisez. Avec Access : 1 Dans la liste droulante des tables disponibles, slectionnons la table
Stagiaires.

2 Tous les champs de cette table apparaissent dans la zone Champs


disponibles. Faisons-les tous basculer dans la zone Champs slectionns par le double chevron vers la droite >> (figure 97). 3 Cliquons sur Suivant.

Figure 97

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

200

Groupe Eyrolles, 2008

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.

Groupe Eyrolles, 2008

201

9 Crer un formulaire et saisir les donnes

DExcel Access

Choisir laspect du formulaire


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 99

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

BASE Paramtrer ce que devra faire le formulaire


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

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

202

Groupe Eyrolles, 2008

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.

Le formulaire en mode Contenu


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

203

9 Crer un formulaire et saisir les donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure 913

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

Figure 914

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

204

Groupe Eyrolles, 2008

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 !

Groupe Eyrolles, 2008

205

9 Crer un formulaire et saisir les donnes

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

Le formulaire Stagiaires en mode Cration sous Access 2007

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

Groupe Eyrolles, 2008

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

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

Groupe Eyrolles, 2008

207

9 Crer un formulaire et saisir les donnes

DExcel Access

ACCESS 2003 Modifier un formulaire


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

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

Basculer un formulaire en mode Page

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

Groupe Eyrolles, 2008

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.

Modifier ltiquette dun contrle de formulaire


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

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 920 Ltiquette modifier est slectionne (liser orange pais).

Figure 921 Le texte de ltiquette

est modifiable (liser noir normal).

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.

Dplacer et redimensionner un contrle dun formulaire


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

Groupe Eyrolles, 2008

209

9 Crer un formulaire et saisir les donnes

DExcel Access

INFO Les contrles se rencontrent


aussi sur les tats/rapports
Les tats (ou rapports sous Base), dont nous parlerons au chapitre 13, sont des objets qui permettent dobtenir, comme leur nom lindique, des prsentations impeccables des tables ou des requtes dune table. Comme les formulaires, ils se crent trs facilement avec les assistants. Comme les formulaires, ils donnent souvent satisfaction du premier coup. Comme les formulaires, modifier leur apparence est dlicat (car il sagira de dplacer ou redimensionner des contrles).

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

Figure 924 La ligne Arrt tabulation

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.

Crer un formulaire avec liste de choix sous Base


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

210

Groupe Eyrolles, 2008

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.

2 Supprimer le contrle considr (ici, BureauGuides) en le slection-

nant et en appuyant sur la touche Suppression de votre clavier. 3 Insrer le contrle de formulaire Zone de liste pour recrer le contrle (ici, BureauGuides), avec cette fois-ci une liste de choix, et insrer une tiquette pour indiquer le nom du champ. Dtaillons la dernire tape, linsertion et le paramtrage du contrle de formulaire Zone de liste et linsertion dune tiquette.

Insrer la liste de choix


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

Figure 925

Loutil Zone de liste permet dinsrer un contrle de zone de liste dans un formulaire en mode bauche.

Groupe Eyrolles, 2008

211

9 Crer un formulaire et saisir les donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure 926

Le contrle Zone de liste se dimensionnera selon cette plage.

Figure 927

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

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

champ devant safficher dans la liste de choix. Dans notre exemple, il sagit de BureauGuide, figure 928. Attention, ce champ est 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

Slection du champ de la liste droulante

Figure 929

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

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

Groupe Eyrolles, 2008

213

9 Crer un formulaire et saisir les donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure 930

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

Insrer ltiquette de la liste de choix


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

Figure 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

Groupe Eyrolles, 2008

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.

Aller plus loin avec les formulaires


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

Crer un formulaire pour agir sur deux tables la fois


Un formulaire avec un sous-formulaire permet de saisir, modifier et visualiser les donnes de deux tables la fois. Imaginons par exemple que nous voulions afficher simultanment les informations de la table des Stagiaires et des Inscriptions, pour pouvoir notamment la fois visualiser et modifier les donnes relatives au stagiaire et ses inscriptions. cet effet, il suffit de crer un nouveau formulaire avec lassistant cration de formulaire. La procdure ci-dessous dcrit alors les tapes suivre avec Access 2007 et 2003 aprs avoir lanc lassistant de cration de formulaire (les utilisateurs de Base se reporteront lapart spcifique).
Groupe Eyrolles, 2008

215

9 Crer un formulaire et saisir les donnes

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

Les champs slectionns pour le formulaire avec sous-formulaire

ALLER PLUS LOIN Formulaire attach


Loption Formulaire attach va afficher sur le formulaire principal un bouton sur lequel il faudra cliquer afin douvrir le sous-formulaire. Cest notre avis moins pratique que loption Formulaire avec sous-formulaire dans laquelle les deux formulaires souvrent lun dans lautre. Mais rien ne vous empche de vous faire votre opinion.

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

Groupe Eyrolles, 2008

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

Figure 936 Ne pas oublier de nommer le formulaire et le sous-formulaire

(ici, avec le mme nom que le formulaire, SF signifiant sous-formulaire)

Le formulaire est termin, vous obtenez un rsultat proche de la figure 937. Il est constitu dun formulaire (pour les stagiaires) incluant un autre formulaire (pour les inscriptions), la manire des poupes russes, chacun dentre eux fonctionnant exactement comme tous les autres formulaires.

Figure 937

Des formulaires gigognes permettant dagir sur plusieurs tables simultanment

Groupe Eyrolles, 2008

217

9 Crer un formulaire et saisir les donnes

DExcel Access

BASE Formulaire et sous-formulaire


La mthodologie de cration dun couple formulaire/sous-formulaire sous Base est trs semblable la mthode adapte Access, quelques dtails dergonomie prs. Elle passe par lAssistant formulaire : 1. Slectionnez la premire table (celle devant figurer dans le formulaire principal) et les champs souhaits (ici, tous les champs de cette table). 2. Slectionnez successivement la deuxime tape de lassistant Ajouter un sous-formulaire, Sous-formulaire bas sur une relation existante et enfin la relation concerne (ici, Inscriptions), figure 938. 3. Ajoutez les champs du sous-formulaire (ici, les 2 champs NumeroInscription, NomActivite, lexclusion de NumeroStagiaire dj inclus dans le formulaire principal). 4. partir de ce moment, le paramtrage du sous-formulaire tant effectif, lassistant droule les mmes tapes que pour un formulaire ordinaire.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 938 Ne pas sauter ltape Ajouter un sous-formulaire si on veut en obtenir un !

Crer un menu douverture pour nophyte avec Access


PRODUCTIVIT Un menu permet dviter
douvrir un objet inappropri
Nous venons de crer un formulaire avec sousformulaire. Ce sous-formulaire na pas dutilit sans son formulaire. Or un oprateur non inform pourrait parfaitement louvrir seul, puisquil apparat dans le volet de navigation. Crer un menu permet donc de ne pas laisser loprateur la possibilit de se tromper.

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.

Crer le formulaire de menu


Un formulaire de menu est un formulaire ordinaire, la nuance prs quil ne contient aucun contrle daccs aux champs dune table, mais unique218
Groupe Eyrolles, 2008

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

Le choix de laction effectuer par un bouton daction de formulaire menu

4 Slectionnez lobjet souhait (ici, le formulaire des Stagiaires),

figure 940.

Figure 940

Le choix de lobjet ouvrir sur un formulaire menu

Groupe Eyrolles, 2008

219

9 Crer un formulaire et saisir les donnes

DExcel Access

5 Lassistant propose alors douvrir le formulaire pour rechercher un enre-

gistrement spcifique ou pour accder tous les enregistrements. Nous avons choisi la seconde option (celle par dfaut) sur la figure 941.

Figure 941
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Le formulaire aura accs tous les enregistrements de la table.

6 Prfrez laffichage dun bouton avec du texte et modifiez le texte par

dfaut, comme sur la figure 942.

Figure 942

Bien penser modifier le nom du bouton

7 Ltape finale de lassistant vous propose de nommer votre bouton,

pour pouvoir vous y retrouver aprs. Modifiez si vous le souhaitez ce nom, et cliquez sur Terminer. Cest fait. Il ne reste qu enregistrer ce formulaire en le nommant Menu par exemple. Pour tester ce formulaire, ouvrez-le en mode Contenu. Cliquez sur le bouton que nous venons de crer, il excute alors laction programme (ici, louverture de notre formulaire Stagiaires). Reste maintenant automatiser laffichage de ce formulaire lors de louverture de la base, et la cration de notre menu ouverture automatique sera termine.

220

Groupe Eyrolles, 2008

ACCESS 2003 Afficher les contrles de formulaire


Appelez le menu Affichage, puis slectionnez loption Bote outils, figure 943.

Figure 943 Les diffrents contrles de la bote outils de formulaire (Access 2003).

Le bouton daction est encadr.

Automatiser louverture dun formulaire


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

STOP Vous ne voulez plus du menu


ouverture automatique
Si vous en avez assez du menu ouverture automatique, vous pouvez trs bien le fermer en cliquant en haut droite sur le bouton de fermeture Windows. Vous pouvez aussi effectuer les oprations dautomatisation douverture decrites cicontre lenvers

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

Le formulaire Menu souvrira automatiquement louverture de la base.

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.

Groupe Eyrolles, 2008

221

9 Crer un formulaire et saisir les donnes

DExcel Access

Saisir et modifier les donnes


Nous avons programm les tables de notre base selon notre schma rel. Nous avons cr tous les champs de chaque table, en dfinissant leurs proprits. Dans chaque table, et parmi ses champs, nous avons choisi une cl primaire. Nous avons tabli les relations entre les tables matres et les tables esclaves et paramtr lintgrit rfrentielle. Nous avons cr tous les formulaires ncessaires la saisie de nos donnes. Nous pouvons maintenant saisir les donnes de notre base. Elles peuvent tre saisies ou modifies via les formulaires, ou directement dans les tables. part quelques dtails dergonomie auxquels vous allez vite vous habituer, la manire de saisir les donnes ne devrait pas vous perturber : on sy fait assez vite. Cependant, deux particularits importantes diffrencient cette saisie dans une base de donnes relationnelle celle dans un tableur ou un traitement de texte. Nous les aborderons ci-dessous.

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 !

Les contraintes dintgrit rfrentielle


Les tables ne peuvent tre cres dans nimporte quel ordre. Il est indispensable de respecter la hirarchie matreesclave. La mme exigence subsiste lors de la saisie des donnes. La table matre sera toujours la premire servie : comment envisager la saisie dune activit avant que son guide titulaire ait lui-mme t saisi ?

222

Groupe Eyrolles, 2008

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

Les donnes sont enregistres immdiatement


Sous tableur ou traitement de texte, tant que le fichier correspondant nest pas enregistr, les donnes ne sont pas dfinitivement modifies. On peut toujours utiliser le bouton Annuler pour revenir en arrire sur la saisie. On peut aussi fermer le fichier en cours, sans lenregistrer, et rouvrir la version prcdente. Sous SGBDR, la logique est totalement diffrente. Le logiciel teste la validit des donnes (doublons, proprits, format, valeurs autorises...) et, si elles sont valides, il les enregistre automatiquement dans la table, comme sur la figure 945. Cette caractristique (perturbante au dbut, mais on sy habitue trs vite) a plusieurs consquences quil faut bien avoir en tte : Toute saisie est enregistre immdiatement. Toute modification de donnes est immdiatement prise en compte. Toute suppression de donnes est immdiatement excute. Il est inutile denregistrer la base aprs saisie pour enregistrer les donnes.
Groupe Eyrolles, 2008

IMPORTANT Le message Voulez-vous


enregistrer les modifications apportes ?
Parfois, par exemple en fermant un formulaire ou une table, le message Voulez-vous enregistrer les modifications apportes ? saffiche. Ce message ne concerne pas les donnes saisies, nous vous confirmons quelles sont dj enregistres. Il napparat en fait que si vous avez modifi la structure du formulaire ou de la table (par exemple, vous avez effectu un tri de la table) ; dans ce cas, le message denregistrement ne concerne que cette modification de structure.

223

9 Crer un formulaire et saisir les donnes

DExcel Access

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 945

Les donnes valides sont enregistres automatiquement dans la base de donnes.

Les figures 946 949 reprsentent les donnes que nous vous proposons de saisir dans votre base dcole dalpinisme.

Figure 946

Les donnes de la table Stagiaires

Figure 947

Les donnes de la table Guides

Figure 948 Les donnes de la table Activites

Figure 949 Les donnes de la table Inscriptions

224

Groupe Eyrolles, 2008

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).

PRCISION Ne pas saisir les champs


numrotation automatique
Les donnes gnres par lordinateur (cls primaires numrotation automatique) ne sont videmment pas saisir : champs NumeroStagiaire, NumeroGuide, DateInscription (Access) ou NumeroInscription (Base).

Saisir, modifier et supprimer des donnes


Cette section va voquer lessentiel savoir en matire de cration, de modification et de suppression denregistrement, en commenant par le choix de la technique de saisie, via un formulaire ou directement dans la table.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Saisir un formulaire ou directement dans la table


Les donnes peuvent se visualiser, se saisir, se modifier ou se supprimer en passant par un formulaire ou directement dans la table en mode Contenu. Chaque technique prsente des avantages et des inconvnients. Difficile de vous conseiller en la matire, tant les prfrences personnelles de chacun ont dimportance.Cependant, les caractristiques principales de chaque technique peuvent dgager des rgles gnrales de choix, vous de choisir : Un formulaire donne une vision claire dun seul enregistrement la fois. Utiliser un formulaire est donc en gnral plus confortable. On y perd par contre la vision globale de la table puisquon ne voit quun seul enregistrement. Inversement, saisir directement dans une table apporte une vision globale de tous les enregistrements, mais trs compacte et plus fouillis. La visualisation des dtails dun enregistrement est donc plus dlicate, mais la vision globale de la table est meilleure. Puisquen gnral la saisie est tout de mme facilite par les formulaires, tudions cette technique en premier.

Saisir des donnes avec un formulaire


Pour ouvrir un formulaire en mode Contenu, cest dire pour visualiser, ajouter, modifier ou supprimer des enregistrements, il suffit de doublecliquer sur le nom du formulaire dans lcran daccueil de la base (ou cliquer sur le bouton appropri du menu daccueil). Ce mode est assez intuitif, peu de temps suffit pour sy habituer : On se dplace de champ en champ par les touches Tabulation (et Shift + Tabulation pour se dplacer en marche arrire) ou par les touches de dplacement en bas de lcran, comme sur la figure 950.
Groupe Eyrolles, 2008

TRUC Crer un nouvel enregistrement


Quand le curseur est positionn dans le dernier champ du dernier enregistrement, appuyer sur Tabulation le positionne dans le premier champ dun nouvel enregistrement.

225

9 Crer un formulaire et saisir les donnes

DExcel Access

On cre un nouvel enregistrement en cliquant en bas du formulaire sur licne Nouvel enregistrement, comme sur la figure 950.

Figure 950 Les boutons de dplacement dans un formulaire. De gauche droite,

premier enregistrement, enregistrement prcdent, compteur denregistrement, enregistrement suivant, dernier enregistrement, nouvel enregistrement

ACCESS ET BASE Les champs numrotation


automatique ne dmarrent pas de la mme valeur
Les champs numrotation automatique sincrmentent automatiquement la saisie. Il ne faut videmment pas les saisir (dailleurs ce sera impossible). Avec Access la numrotation commence 1 et 0 avec Base.

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

Saisir des donnes directement dans une table


Le formulaire ntant quune aide la saisie, rien ninterdit de saisir les donnes directement dans les tables. Il suffit douvrir la table en mode Contenu.
ACCESS 2007 ET 2003 La liaison entre tables matre et esclave
est visualise en mode Contenu de la table Les enregistrements dune table matre sont prcds du symbole +. Cliquer sur + permet de visualiser les enregistrements lis, figure 951. Cette option nest pas disponible avec Base.

Figure 951 Lactivit dpendant du guide n4, Eddy D.

Une table en mode Contenu ressemble trangement une feuille de calcul dun tableur, avec des lignes (correspondant des enregistrements) et des colonnes (reprsentant les champs). La ligne vierge en bas de tableau reprsente un nouvel enregistrement. Il suffit de passer de cellule en cellule et dalimenter les champs. Les listes de choix ventuellement 226
Groupe Eyrolles, 2008

paramtres sont disponibles. Les figures 946 949 page 224 illustrent des tables en mode Contenu.

Modifier et supprimer des donnes


Rappelons ce principe fondamental : toute modification ou suppression de donnes est dfinitive, il nest pas possible dy revenir (sauf, bien entendu, si lon ressaisit les donnes dorigine). En particulier, les outils Annuler ou les combinaisons Ctrl + Z sont inoprants dans ce cas. Pour modifier un enregistrement, il faut se positionner sur lenregistrement et le champ souhaits, et le modifier. La modification sera son tour teste selon les rgles de validation et enregistre automatiquement.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

TRUC Modifier ou supprimer un enregistrement en mode Contenu dune table


Visualiser une table en mode Contenu permet davoir une vue gnrale de son contenu. Il est donc souvent plus facile de rechercher et de modifier/supprimer un enregistrement par ce biais plutt que par un formulaire qui ne donne que la vision dun seul enregistrement et avec lequel on peut trs bien se tromper denregistrement par mgarde.

Figure 952

Le message avertissant quune suppression denregistrement est dfinitive

Concernant la suppression denregistrement, en dehors du fait que toute suppression est toujours dfinitive, deux remarques essentielles sont faire : Le message de la figure 953, Suppression impossible apparat 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

9 Crer un formulaire et saisir les donnes

DExcel Access

PARALLLE La non rutilisation dune valeur annule de cl primaire


Le numro dimmatriculation dune voiture ne peut galement tre rattribu, chaque vhicule ayant sa propre identit. Ou encore le numro de scurit sociale, aprs dcs de son titulaire, nest plus utilis.

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).

viter les difficults lies la saisie de donnes


Les contraintes de proprits de champ (texte, masque de saisie, format date, liste de choix) vont interdire certaines manipulations. Lobjet de cette section est de vous en prsenter les principales, accompagnes des messages davertissement.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Il faut respecter les proprits du champ


Le non respect des proprits de champ est la cause la plus frquente derreur lors de la saisie de donnes. Par exemple : Vous navez rien saisi dans un champ de type Null Interdit, figure 954.

Figure 954

Vous tes invit saisir une valeur pour ce champ Null Interdit.

Vous ne respectez pas le format du champ, par exemple en tentant dentrer une date non valide, figure 955.
Figure 955

Le format de lentre ne correspond pas au format attendu pour ce champ.

Vous tentez de crer un doublon dans un champ Cl primaire, par exemple en tentant de crer une activit portant le mme nom quune activit existante, figure 956.

Figure 956

Tentative de cration dun doublon dans un champ cl primaire

228

Groupe Eyrolles, 2008

Il faut respecter le principe dintgrit rfrentielle


Le principe mme des bases de donnes relationnelles impose le respect de lintgrit rfrentielle. Par exemple, vous aurez un message derreur si vous tentez daffecter une activit un numro de guide qui nexiste pas dans la table des Guides, figure 957.
Figure 957

Problme dintgrit rfrentielle : la cl primaire de la table matre Guides nexiste pas.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

ACCESS 2003 ET BASE Les messages derreur


Access 2007 a fait de gros efforts en matire de clart des messages derreur, ne vous attendez pas tre aussi bien traits avec Access 2003 ou Base. Les figures 9-58 et 9-59 reprsentent par exemple les messages obtenus avec Base et Access 2003 quand un champ valeur requise nest pas aliment.
Figure 958 Le mme message Base que pour la figure 959 Access (cest dj moins clair...)

Figure 959 Le message Access 2003 spcifiant quune valeur est requise pour le champ PrenomGuide de la table des Guides (remarquez le franglais).

Il existe bien dautres causes derreur de saisie. Il nest bien videmment pas possible de les lister toutes. Nos conseils en la matire, outre de suivre scrupuleusement ceux qui prcdent, se rsument sen remettre au bon sens : toujours bien observer son cran ; lire attentivement les messages (parfois abscons) et les dcoder ; agir en consquence.

Groupe Eyrolles, 2008

229

9 Crer un formulaire et saisir les donnes

DExcel Access

Synthse : les formulaires et la saisie des donnes


Un formulaire est probablement le meilleur moyen pour saisir des donnes dans une base. Lalternative consistant utiliser directement les tables en mode Cration offre en effet moins de scurit et de confort, le risque de confusion entre les diffrents enregistrements tant plus important. Vous pouvez crer un formulaire trs simplement en utilisant lassistant Cration de formulaire. Il est mme possible de crer des formulaires agissant sur plusieurs tables la fois, ainsi que de paramtrer un menu convivial daccs aux objets de la base de donnes. Par contre, la modification manuelle dun formulaire peut parfois tre dlicate ; heureusement elle nest jamais indispensable, sauf exception. La saisie de donnes recle quelques surprises. Bien videmment, lexistence de relations entre les tables impose de bien garder en mmoire le principe dintgrit rfrentielle dans lajout et la suppression de donnes. Mais surtout la validation et lenregistrement automatique de la saisie, de la modification ou de la suppression de donnes vont surprendre loprateur venant du monde des tableurs ou traitements de texte. Le tableau ci-dessous resitue cette phase dans lensemble de la procdure menant la construction dune base de donnes relationnelle complte. Nous voici maintenant prts passer la phase certainement la plus intressante de notre projet : lexploitation de nos donnes avec les requtes.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

230

Groupe Eyrolles, 2008

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

Programmation des tables

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Programmation des relations (sous Access)

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

Groupe Eyrolles, 2008

231

9 Crer un formulaire et saisir les donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

10

Exploiter les donnes avec une requte simple


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

SOMMAIRE

B Quest-ce quune requte ?

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.

B Crer une requte simple B Comprendre les rsultats dune


requte en mode Contenu

B Sexercer crer des requtes B Faciliter la saisie des donnes


avec une requte MOTS-CLS

B Requte B Assistant Cration de requte B Requte en mode


Cration/bauche et Contenu

B Formulaire bas sur une requte B Proprits Arrt tabulation


et TabStop dun formulaire

Groupe Eyrolles, 2008

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

Quest-ce quune requte ?


Une requte est un type dobjet Access ou Base (avec les tables, formulaires et tats/rapports) dont le rle au sein dune base de donnes est de manipuler les donnes prsentes dans les tables afin den faciliter lanalyse.

Figure 101

La table des Inscriptions est trie selon les valeurs croissantes du champ NomActivite. On ny voit que les numros des stagiaires, et non leurs noms stocks dans une autre table. Cette liste nest donc pas trs parlante...

TECHNIQUE Trier une table


Pour trier une table en mode Contenu, slectionnez le champ souhait puis, par un clic droit, appelez loption Trier. Attention : quand vous fermerez la table, Access et Base vous demanderont si vous souhaitez enregistrer les modifications. Les modifications dont il sera alors question concernent le tri des donnes et non les donnes en elles-mmes (qui dailleurs nont pas t modifies par le tri).

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

Plusieurs types de requtes


Le principe de base dune requte est donc dutiliser des champs dune ou de plusieurs tables et den raliser : soit une simple synthse (par exemple, lister tous le stagiaires en fonction de lactivit laquelle ils se sont inscrits) ; soit une slection denregistrements (par exemple, lister tous les stagiaires dune activit particulire), on parle alors de requte slection ; soit une analyse pousse par la cration de nouvelles donnes (par exemple, calculer le montant d par chaque stagiaire en fonction de ses inscriptions et de ses rglements antrieurs), on parle alors de requte calcul. Nous venons de citer quelques exemples. Nous pourrions en citer dautres dans une base de donnes de commande/facturation dentreprise : lister par client les produits commands et livrs ; lister les commandes effectues par tel client entre telle et telle date (requte slection) ; calculer le total d par client en fonction des quantits livres, des caractristiques des produits (prix unitaire, etc) et des conditions particulires du client (taux de remise, etc) ; il sagira alors dune requte calcul. Les requtes constituent donc le cur dun SGBDR en ce sens quune base de donnes dpourvue de requtes ne sert rien : les donnes y sont bien stockes, mais on ne peut rien en faire, en dehors de lister linformation des tables telles quon les a saisies, sans aucune plus value. Ce chapitre traite de la cration des requtes de base, les deux suivants vont voquer la construction de requtes slection et calcul plus volues.

Groupe Eyrolles, 2008

235

10 Exploiter les donnes avec une requte simple

DExcel Access

Rflexions pralables la cration dune requte


Avant de crer une requte et de choisir le bon outil pour le crer, il faut tout dabord dterminer les champs devant y participer.

Choisir les champs participant une requte


Crer une requte va consister, un peu comme au restaurant, choisir parmi les plats de la carte afin dobtenir un repas quilibr, complet et digeste : en fonction de ce que devra faire la requte, il faudra slectionner les champs ncessaires dans les tables disponibles. Prenons un exemple simple. Dans notre cas pratique, en observant la table Inscriptions, nous avons constat que nous ne sommes pas capables de comprendre clairement qui est inscrit quoi (parce que le stagiaire ny est reprsent que par son numro et que nous ne connaissons pas par cur la correspondance entre ces numros et les noms des stagiaires). Il nous faut donc crer une requte pour connatre les stagiaires inscrits aux diffrentes activits. Ce sera lobjet de ce chapitre. Cette requte va contenir les champs suivants : Le champ NomActivite de la table Activites ; Les champs NumeroStagiaire, NomStagiaire et PrenomStagiaire de la table Stagiaires. Ce choix, car il sagit toujours dun choix, nest pas fait au hasard. Tout dabord, nous navons besoin, stricto sensu, que des champs NomActivite, Nom Stagiaire et PrenomStagiaire. Pourquoi donc avons-nous rajout le champ NumeroStagiaire de la table Stagiaires ? Il ne semble pas rellement indispensable, puisque noms et prnoms peuvent trs bien suffire. Mais ce raisonnement nest pas complet. Ce champ NumeroStagiaire est en effet cl primaire de la table Stagiaires et sa prsence dans la requte nous simplifiera grandement la vie, parce quil permettra de lever lambigut en cas de doublons et parce que lutilisation pratique de la requte en sera grandement facilite (recherche denregistrements et tris seront beaucoup plus efficaces).
ATTENTION Ne pas intgrer cl primaire et cl trangre dans la mme requte
Nous venons dexpliquer quil est prfrable de choisir la cl primaire de la table matre plutt que la cl trangre de la table esclave. Il ne faut bien videmment pas intgrer les deux dans la mme requte, cela ne servirait absolument rien !

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

Choisir le mode de cration de la requte


Il existe deux faons de btir une requte : soit en utilisant lassistant , soit en utilisant le mode Cration (bauche pour Base) : Lassistant Cration de requte Access fonctionnant trs bien, nous vous conseillons de lutiliser sans rserve. Par contre, dans Base, ds que la requte crer manipule plus dune table, ce qui est le cas le plus frquent, lassistant gnre une requte qui doit tre modifie manuellement en mode bauche (parce que Base, ne prend pas en compte les relations existant entre les tables, tort). Il vaut donc mieux, dans ce cas, utiliser le mode bauche ds le dbut. En conclusion, pour crer une requte, utilisez de prfrence lassistant Cration de requte avec Access et le mode bauche avec Base.

ALLER PLUS LOIN Requtes ajout et suppression de donnes


En dehors des requtes voques ci-contre, on peut parler des requtes ajout et suppression de donnes : Les requtes ajout servent, comme leur nom lindique, ajouter des donnes dans des tables. On va par exemple utiliser une requte ajout pour ajouter dans une table des mouvements bancaires les enregistrements du mois tlchargs sur Internet. Les requtes suppression, elles, suppriment des enregistrements selon certains critres. Combines une requte ajout, on les utilisera en particulier pour archiver des donnes anciennes (la premire requte suppression slectionnera les enregistrements antrieurs la date darchivage et la seconde requte ajout les ajoutera une table Archives).

Crer une requte simple


Une requte simple se cre sous Access avec lassistant ddi (page 238) et sous Base directement en mode bauche (page 241).

Groupe Eyrolles, 2008

237

10 Exploiter les donnes avec une requte simple

DExcel Access

Crer une requte avec lassistant Access


Lassistant Cration de requte dAccess est particulirement simple et efficace pour crer tout type de requte, dont celui qui nous intresse ici. Pour lancer cet assistant : Sous Access 2007 : dans longlet Crer, groupe Autre, cliquez sur loutil Assistant requte. Choisissez ensuite loption Assistant requte simple et cliquez sur OK. Sous Access 2003 : cliquez sur la famille Requte du volet de navigation et double-cliquez sur loutil Crer une requte laide de lassistant.

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.

Slectionner les champs de la requte (tape 1 de lassistant)


RAPPEL Les boutons >, >>, <, <<
> : Dplace dans la colonne de droite le champ slectionn dans la colonne de gauche; >> : Idem pour tous les champs de la colonne de gauche; < : Dplace dans la colonne de gauche le champ slectionn dans la colonne de droite; << : Idem pour tous les champs de la colonne de droite.

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

Groupe Eyrolles, 2008

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 !

Choisir le type de requte (tape 2 de lassistant)


Access propose ensuite comme sur la figure 104 le choix entre une requte dtaille ou de synthse : Une requte de synthse permet deffectuer des totalisations sur des champs numriques. Elle est lquivalent, pour une base de donnes, de la fonction sous-total dune liste de donnes (page 60) : partir dune liste dtaille de ventes par reprsentant, elle va effectuer la totalisation de ces ventes par reprsentant (elle pourra dailleurs en effectuer aussi la moyenne, en extraire la vente du montant le plus lev, etc.). La requte dtaille se contente de lister les enregistrements des tables concernes, sans effectuer de totalisation.

Groupe Eyrolles, 2008

239

10 Exploiter les donnes avec une requte simple

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

Lalternative entre requte dtaille ou de synthse

Enregistrer la requte (tape 3 de lassistant)


Notre requte est termine, il ne reste plus qu lenregistrer et choisir sous quel mode on souhaite la visualiser comme le montre la figure 105.

Figure 105

Ne jamais oublier de modifier le nom de la requte

Observez quAccess propose de nommer la requte du nom de la 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 requte StagiairesParActivites en mode Contenu

La section suivante traite de la cration de requte en mode Cration et non plus laide de lassistant comme nous venons de le faire. Pour plus dinformations sur le mode Contenu dune requte, reportez-vous directement la page 244

Crer une requte en mode Cration/bauche


Le mode Cration (bauche pour Base) est, avec le mode Assistant, le deuxime mode de cration dune requte. Rappelons quil est le seul vritablement oprationnel avec Base. Les utilisateurs dAccess ont pourtant intrt lexprimenter, ne serait-ce que pour le comparer avec le mode Assistant et choisir ainsi leur mode prfr... De plus, ainsi que nous le verrons, le mode Cration est celui utiliser pour modifier une requte dj cre. Nous allons exprimenter ce mode au travers de la cration de la requte listant comme prcdemment les activits et les stagiaires y participant. Il y aura globalement trois tapes suivre : 1 Crer une nouvelle requte en mode Cration bauche ; 2 Insrer les tables concernes ; 3 Insrer les champs concerns.
Groupe Eyrolles, 2008

241

10 Exploiter les donnes avec une requte simple

DExcel Access

Crer une nouvelle requte en mode Cration/bauche


Pour crer une nouvelle requte (vierge) en mode Cration/bauche : Sous Access 2007 : cliquez sur le bouton Cration de requte dans longlet Crer, groupe Autre. Sous Access 2003 : cliquez sur Requtes dans le volet de navigation, puis double-cliquez sur Crer une requte en mode Cration. Sous Base : cliquez sur Requtes dans le volet de navigation, puis cliquez sur Crer une requte en mode bauche. Nous sommes maintenant prts paramtrer notre requte en y intgrant les champs dsirs. Puisque ce mode de cration de requte sera surtout utilis par les amateurs de Base, nous allons axer notre dmonstration sur ce logiciel (Access offre des crans quasiment identiques et nappelle pas de remarque particulire).

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Insrer les tables participant la requte


Il sagit ici de spcifier les tables dans lesquelles les champs de la requte seront slectionns. Base (et Access) proposent demble le choix dajouter des tables parmi celles de notre base de donnes relationnelle, figure 107. Il sagit maintenant de slectionner celles dont nous avons besoin.

Figure 107

Il faut slectionner toutes les tables de la relation matre/esclave.

Nous navons stricto sensu besoin que des tables Activites et Stagiaires. Mme si cest logiquement exact (car ces deux tables sont en relation via la table des Inscriptions), cela ne fonctionnera pas ; Base et Access vont en effet exiger que la table ralisant la relation (celle des Inscriptions) soit galement prsente dans la liste des tables de la requte. Il faut donc slectionner les trois tables Stagiaires, Inscriptions et Activites, soit en double-cliquant sur chaque table, soit en les slectionnant et en cliquant sur Ajouter. Le rsultat de cette slection est illustr par la figure 108, sur laquelle on constate la matrialisation des relations entre la table esclave Inscriptions et ses tables matres Stagiaires et Activites. 242
Groupe Eyrolles, 2008

Figure 108

Il faut slectionner toutes les tables de la relation matre/esclave.

Insrer les champs participant la requte


Il sagit maintenant dinsrer les quatre champs devant participer notre requte, NomActivite (de la table Activites) et NumeroStagiaire, NomStagiaire et PrenomStagiaire (de la table Stagiaires). Dans la partie basse de lcran de requte en mode Cration/bauche, nous allons placer les noms de ces champs cte cte sur la premire ligne nomme Champ. Pour cela, nous disposons de deux techniques : Le cliquer-glisser : slectionnez le champ souhait dans la table (partie haute de lcran) et faites-le glisser dans la cellule souhaite. La slection dans une liste de choix : cliquez dans la cellule souhaite et slectionnez le champ dans la liste de choix. La figure 109 montre la slection de Activites.NomActivites (ce qui signifie champ NomActivite de la table Activites )

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

Groupe Eyrolles, 2008

243

10 Exploiter les donnes avec une requte simple

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

Tous les champs de la requte StagiairesparActivites en mode bauche

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.

Comprendre les rsultats dune requte en mode Contenu


Une requte en mode Contenu permet den visualiser les rsultats, cest dire dans notre exemple de lister les activits de lcole et les stagiaires qui y sont inscrits. 244
Groupe Eyrolles, 2008

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

ACCESS 2007 Des possibilits de filtre


dans les requtes
Cliquer sur la flche ct dun nom de champ offre la possibilit dexcuter des filtres sur le contenu de la colonne, exactement comme le ferait un filtre de liste de donnes, figure 1011.

Notre requte semble tre trie au hasard, mais il nen est rien : elle est trie par dfaut selon lordre des Inscriptions, table reliant Stagiaires et Activites. Il est bien entendu possible de la trier dans tout autre ordre : il suffit de slectionner une colonne et de trier avec loutil adquat, par exemple par un clic droit suivi de loption Trier. Notez dans ce cas que le tri ne sera effectif que pour cette session, le programme de la requte ntant pas modifi.
Figure 1011 Les possibilits de filtre

dans un requte Access 2007

Figure 1012

La requte StagiairesParActivites en mode Contenu

ACCESS La ligne Nouv.() utiliser avec prcaution


Vous avez certainement remarqu avec Access la dernire ligne de notre requte en mode Contenu, la ligne Nouv.(). Elle nous permet de dcouvrir une particularit tonnante des requtes avec Access. Une requte utilise les donnes des tables. Mais elle permet galement de les modifier et mme dajouter des enregistrements. Cest la signification de cette ligne : lutiliser va permettre, non plus de lister les donnes des tables, mais dentrer directement des donnes dans les tables. Disons-le tout net : cette possibilit mlange les genres et risque dtre source de confusion. Pour saisir des donnes dans les tables, nous disposons de formulaires patants (ou mme de tables en mode Contenu), utilisons-les systmatiquement cet usage. Et rservons les requtes exclusivement la manipulation des donnes et jamais leur modification.

Groupe Eyrolles, 2008

245

10 Exploiter les donnes avec une requte simple

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.

Sexercer crer des requtes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

La requte ActivitesParStagiaires en mode Cration bauche

246

Groupe Eyrolles, 2008

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

La requte StagiairesParActivitesParGuides en mode Cration bauche

Figure 1015

La requte ActivitesParStagiaires en mode Contenu trie par NumeroStagiaire

Figure 1016

La requte StagiairesParActivitesParGuides en mode Contenu trie par NumeroGuide

Bien entendu, ces corrections ne sont que des propositions. Noubliez jamais quune requte, cest toujours du sur mesure et jamais du prt-porter. Remarquez toutefois quelles respectent les rgles que nous avions voques page 236, par rapport au choix des champs : Toujours intgrer dans une requte la cl primaire de chaque table participant la requte. Toujours prfrer la cl primaire de la table matre la cl trangre de la table esclave. Se limiter aux champs ncessaires et suffisants la requte concerne.

Groupe Eyrolles, 2008

247

10 Exploiter les donnes avec une requte simple

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.

Faciliter la saisie des donnes avec une requte sous Access


Cette section ne concerne que les utilisateurs dAccess.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

RAPPEL Une requte Access sert aussi


ajouter des donnes
Nous avons vu page 245 quune requte Access ne se contente pas dafficher les donnes des tables. Elle permet galement de les modifier. Nous vous avons mis en garde contre le mlange des genres une requte devant, notre sens, ntre utilise que pour la manipulation des donnes. Nous nutilisons ici cette possibilit de modification des donnes par une requte, en contradiction apparente avec ce conseil, que parce que celle-ci ne sera utilise quau travers dun formulaire. Et aussi titre dillustration de cette capacit tonnante des requtes.

Crer la requte source


La cration de la requte source ne pose aucune difficult aux experts que nous sommes. Il faut y insrer dans lordre les champs DateInscription et NumeroStagiaire (de la table des Inscriptions), NomStagiaire et PrenomStagiaire (de celle des Stagiaires) et enfin NomActivite (de la table des Inscriptions).

248

Groupe Eyrolles, 2008

OBSERVONS Lordre et lorigine des champs de la requte source du formulaire


Le choix des champs et leur ordre dapparition dans la requte nest videmment pas alatoire. Il ne faut pas oublier que cette requte nest faite que pour enregistrer de nouvelles inscriptions. Cest pourquoi nous avons choisi les champs cl trangre de la table des Inscriptions (NumeroStagiaire et NomActivite) et non les cls primaires des tables matres correspondantes. Ce dernier choix, erron, aurait amen crer de nouveaux enregistrements dans les tables des Stagiaires et des Activites. Enfin, vous avons insr NomStagiaire et PrenomStagiaire juste aprs le champ NumeroStagiaire, avant le champ NomActivite, afin de coller ltat civil du stagiaire son numro.

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

La requte SaisieInscriptions en mode Cration.

Crer le formulaire bas sur la requte


Il suffit de crer le formulaire avec tous les champs de notre requte selon la mthode expose au chapitre 9. Il faut simplement bien spcifier que le formulaire doit chercher les donnes dans une requte. Nommez le formulaire SaisieInscriptions, du nom de la requte source. Reste enfin modifier un dtail (important) sur ce formulaire. Les champs NomStagiaire et PrenomStagiaire qui y apparaissent ny sont que purement indicatifs, ils ne sont pas faits pour tre modifis (ces informations sont grer dans la table des Stagiaires). Il faut donc interdire leur modification loprateur de saisie. Une des techniques les plus faciles mettre en uvre va consister interdire larrt du pointeur sur ces champs en mode Contenu du formulaire ; en cours de saisie des donnes, loprateur qui utilise la touche de tabulation pour aller de champ en champ naura pas accs ceux-ci.

Groupe Eyrolles, 2008

249

10 Exploiter les donnes avec une requte simple

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

La proprit Arrt tabulation dun contrle de formulaire Access 2007

ALLER PLUS LOIN Affecter les proprits Arrt tabulation (TabStop) Non aux champs grs par le SGBDR
Nous vous avons conseill de laisser le plus 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.

Figure 1019 La proprit TabStop dun contrle de formulaire Base

250

Groupe Eyrolles, 2008

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).

Figure 1020 Le formulaire de saisie

des inscriptions en mode Contenu

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.

Groupe Eyrolles, 2008

251

10 Exploiter les donnes avec une requte simple

DExcel Access

Synthse : exploiter les donnes avec une requte simple


Une requte est un type particulier dobjet Access qui va servir prsenter, manipuler et analyser les donnes prsentes dans les tables dune base de donnes relationnelle. Une des premires utilisations des requtes va tre de regrouper des donnes clates en plusieurs tables afin, par exemple, de lister les stagiaires de notre cole dalpinisme avec les activits auxquelles ils sont inscrits et les guides qui les encadrent. Le mode de cration de requte conseill est le mode Assistant avec Access et bauche avec Base. Le mode Contenu permet den visualiser les rsultats.

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

Groupe Eyrolles, 2008

Tableau 101 tapes de cration de requte en mode Cration/bauche Phase tape Dtail/remarque

Cration dune nouvelle requte en mode Cration/bauche

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).

Paramtrage des tables et des champs

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.

Groupe Eyrolles, 2008

253

10 Exploiter les donnes avec une requte simple

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

11

Isoler des enregistrements particuliers dans une base de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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...

assistant et SQL : sorienter

B Raliser des slections


denregistrements

B Identifier des enregistrements


sans correspondance

B Identifier les doublons


dans une table MOTS-CLS

B Mode SQL B Requte slection B Critres de slection B Caractres gnriques B Critres Et et Ou B Requte de non-correspondance B Requte de recherche
de doublons

B Modification dune requte


existante

Groupe Eyrolles, 2008

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

RFRENCES Apprendre SQL


De nombreux sites web vous familiariseront avec ce langage si vous le souhaitez. En voici quelquesuns parmi les plus intressants : B http://fr.wikipedia.org/wiki/ Structured_Query_Language B http://sqlpro.developpez.com/ B http://www.commentcamarche.net/sql/ sqlintro.php3 B http://www.laltruiste.com/courssql/ sommaire.html B http://sql.1keydata.com/fr/ Vous pourrez aussi trouver aux ditions Eyrolles louvrage suivant qui vous permettra de vous former SQL :

Modes cration/bauche, assistant et SQL : sorienter


Prenons quelques instants pour dfinir les termes Assistant, mode Cration/bauche et mode SQL dont il est souvent question en matire de requte. SQL, pour Structured Query Language (langage structur de requte) est, comme son nom lindique, le langage informatique de programmation des requtes, aussi bien pour Access que pour Base. Les assistants (Access) et les modes Cration (Access) et bauche (Base) appliqus aux requtes ne sont que des interfaces dveloppes pour permettre lutilisateur de programmer des requtes sans avoir apprendre ce langage SQL. Notre objectif nest pas ici de nous initier ce langage complet et touffu, des ouvrages entiers y sont consacrs. Au cours de ce chapitre nous ne lvoquerons que pour programmer sous Base les requtes que nous allons dvelopper avec les assistants Access et dont Base ne dispose pas.

Apprendre SQL avec MySQL, Christian Soutou, 2006, 398 pages.

256

Groupe Eyrolles, 2008

Raliser des slections denregistrements


Slectionner des enregistrements particuliers parmi tous les enregistrements dune base est la premire tape menant lanalyse des donnes. Connatre les reprsentants ayant ralis des ventes dans telle rgion, isoler les produits dont les ventes cumules excdent un millier deuros, ou encore identifier les activits qui comportent le plus dinscrits permet au responsable de mieux analyser la ralit et donc dagir au plus prs des intrts de son organisation. Nous apprendrons dans cette section crer des requtes slection simples, puis des requtes slection interactives. Nous terminerons par ltude des combinaisons de critres.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer une requte slection


Une requte slection permet, comme son nom lindique, de raliser des slections parmi les enregistrements de la base de donnes. Par exemple pour retrouver les ventes ralises par tel reprsentant ou encore les commandes passes entre telle et telle date. Elle est en quelque sorte lquivalent pour une base de donnes dun filtre pour une liste de donnes sous tableur. Nous allons illustrer son mode de cration par la ralisation dune requte permettant de lister les participants une activit particulire, par exemple lactivit Neige. Autant le savoir tout de suite, les assistants Access qui nous ont grandement aid jusqu prsent ne nous seront maintenant plus daucune utilit : lensemble des oprations lies la dfinition de critres de slection ne peuvent seffectuer quen mode Cration/bauche dune requte. bien y rflchir, cette requte nest quune variante de la requte StagiairesParActivites que nous avons dj cre : il ne sagit que de lui ajouter le critre de slection permettant de ne lister que les participants lactivit Neige. Le plus simple et le plus rapide sera donc de mettre en application une technique que nous vous avions suggre, celle consistant travailler partir de copie dobjets. Nous allons ainsi copier cette requte source StagiairesParActivites et paramtrer les critres de slection sur cette copie : 1 Slectionnez la requte StagiairesParActivites dans le volet de navigation de la base ; 2 Copiez-la par Ctrl + C, puis collez-la avec Ctrl + V ; 3 Modifiez le nom de la copie en lappelant par exemple StagiairesNeige.

Groupe Eyrolles, 2008

257

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

Reste entrer le critre de slection des enregistrements. Il suffit cet effet douvrir la requte modifier en mode Cration/bauche, puis de saisir le ou les critres sur la ligne Critre dans la colonne du champ souhait. La figure 11-1 montre le critre ncessaire notre requte StagiairesNeige.

Figure 111

Le critre Neige est saisi pour le champ NomActivite.

BASE Alias, ksaco ?


En mode bauche, lors de la cration dune requte, Base autorise pour chaque champ la saisie dun alias. Il sert simplement obtenir un libell plus lisible que le nom du champ lors de lexcution de la requte (par exemple, NomStagiaire peut avoir comme alias Nom du stagiaire).

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

Les trois participants lactivit Neige

Crer une requte slection paramtre


PRODUCTIVIT Multiplier les requtes partir dun modle
Pour crer les variantes de la requte StagiairesNeige, il suffit den prendre une copie, puis dy modifier manuellement le critre correspondant une autre activit.

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

Groupe Eyrolles, 2008

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

La saisie du critre paramtr Access


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

BASE La programmation du paramtre


La syntaxe est lgrement diffrente pour Base : saisir =:Entrez_le_nom_de_l_activit_souhaite, comme sur la figure 11-4. Le signe = va disparatre quand vous allez valider, cest normal (il permet simplement dviter que la chane de caractres soit considre comme une constante et sencadre de guillemets).

Figure 114 La saisie du critre paramtr Base

Lors de lexcution de la requte, Access ou Base affichent dans une bote de dialogue le message prcdemment saisi entre crochets, dans notre exemple Entrez le nom de lactivit souhaite SVP . Entrez alors le nom de lactivit pour laquelle vous souhaitez connatre les inscrits dans la zone de saisie (figure 11-5) et validez, les rsultats saffichent comme souhait.

Figure 115

La saisie dun paramtre dune requte

Nous allons maintenant conclure cette tude des critres de slection dans une requte avec quelques prcisions concernant les critres logiques ET et OU.
Groupe Eyrolles, 2008

259

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

ALLER PLUS LOIN Trier une requte


Il est en gnral souhaitable de trier les rsultats dune requte selon un ordre fixe, afin den faciliter la lecture et lanalyse. Un tri se paramtre trs facilement en mode Cration/bauche : il suffit de choisir loption Croissant ou Dcroissant sur la ligne Tri de la colonne du champ souhait. La figure 11-6 illustre sous Base le tri de notre requte StagiairesNeige selon le champ NumeroStagiaire.

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 les critres de slection


RAPPEL ET et OU
Lacception habituelle de ET et de OU ne correspond pas toujours son quivalent logique. Nous lavions voqu lors de ltude des filtres de slection de listes de donnes au chapitre 3. En particulier, nous avions voulu lister les ventes ralises par Jean et Pierre ; mais nous avions fini par constater quaucune vente navait pu tre ralise la fois par Jean ET Pierre, et que la logique voulait quon recherche dans ce cas les ventes de Pierre OU celles de Jean. Voyez page 51 pour plus de dtails.

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

Le paramtrage de critres sur plusieurs champs en parallle.

Les combinaisons de plusieurs critres sur plusieurs champs reclent quant eux quelques piges : il faut dans ce cas bien penser rpter si ncessaire lensemble des critres de tous les champs pour chaque ligne Ou utilise. Par exemple : Les paramtres de la figure 11-9 listent les stagiaires des deux 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

Figure 1110 Lomission dun critre sur une ligne Ou

Groupe Eyrolles, 2008

261

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

EXHAUSTIF Lister tous les critres


de slection disponibles
Nhsitez pas consulter laide en ligne de vos logiciels prfrs : Access : taper dans laide les mots cls Exemple de critres de requte. Base : taper dans laide le mot Critres puis choisir la rubrique bauche de requte.

Utiliser les critres de slection volus


Les SGBDR proposent toute une panoplie de critres volus permettant daffiner nos recherches. Il est impossible de tous les lister, tant ils sont nombreux. Le tableau ci-dessous en donne les principaux pour Access, juste pour vous donner une ide de ce quil sera possible de faire avec de tels critres.
Tableau 111 Slection de quelques critres de slection volus (Access)

Famille

Critre

Explication

Exemple dans la base dalpinisme

Divers Texte
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Est Null Pas comme N* NbCar([NomStagiaire])<=7

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

<=500 En (500, 600) Comme"*,99"

Date

#23/03/1980# PartDate("m", [DateNaissanceStagiaire]) = 3

Renvoie les enregistrements des anniversai- Appliqu au champ DateNaissanceStagiaire, renres survenant en mars (troisime mois de voie lenregistrement de Dupont Albert lanne)

Identifier des enregistrements sans correspondance


CNIL Informatique et libert
Les quelques exemples donns ci-contre illustrent clairement ce quun utilisateur mal intentionn peut faire avec une base de donnes relationnelle. Consultez cet effet lannexe spcifique, page 342.

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

Groupe Eyrolles, 2008

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).

Crer la requte de non-correspondance avec lassistant Access


Nous allons ici apprendre excuter lassistant Access ddi aux requtes de non-correspondance pour isoler les guides de secours des autres guides de la table des Guides.

Groupe Eyrolles, 2008

263

11 Isoler des enregistrements particuliers dans une base de donnes

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

Louverture de lassistant Requte de non-correspondance sous Access 2003

Nous sommes maintenant sous le contrle de lassistant qui va nous mener bon port, condition videmment de rpondre judicieusement aux questions qui vont nous tre poses... La premire tape de lassistant consiste choisir la table dont on 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

La slection de la table source dans lassistant Requte de non-correspondance


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1114

La slection de la table de non-correspondance

Figure 1115

La slection du champ de non-correspondance

Groupe Eyrolles, 2008

265

11 Isoler des enregistrements particuliers dans une base de donnes

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

Tous les champs de la table source Guides sont slectionns.

Lassistant se termine par lcran classique qui permet denregistrer la requte et den choisir le mode douverture, Cration ou Contenu. Le nom propos par dfaut par Access pour notre requte, Guides et Activits sans correspondance est exact, mais pas forcment trs explicite, il vaut mieux lui substituer le nom GuidesDeSecours, parfaitement clair. Choisissons ensuite de visualiser les rsultats de la requte comme sur la figure 11-17 et cliquons sur Terminer.

Figure 1117

La fin de lassistant Requte de non-correspondance (le nom de requte a t modifi)

266

Groupe Eyrolles, 2008

Le rsultat de la requte de non-correspondance saffiche, figure 11-18. Nous constatons que seul Pierre Tairraz, du bureau de Chamonix, na pas daffectation en cours. Il est donc le seul guide de secours.

Figure 1118

Seul Pierre Tairraz nencadre pas dactivit

AUTRE EXEMPLE Requte Stagiaires sans Inscription


La requte de non-correspondance entre Stagiaires et Inscriptions (selon le champ NumeroStagiaire) ne doit afficher aucun enregistrement (puisquil nexiste aucun stagiaire ntant inscrit aucune activit). Vrification, figure 11-19 : la requte de non-correspondance est vide, il ny a donc aucun stagiaire qui ne soit inscrit aucune activit.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1119 Il nexiste aucun stagiaire inscrit aucune activit.

Comment le vrifier ? Son NumeroGuide (dans la table des Guides) est le 2. Il suffit douvrir la table Activites en mode Contenu et de constater que seule la valeur 2 nest pas prsente dans la colonne NumeroGuide, figure 11-20. Ce qui confirme bien que seul ce guide nencadre pas dactivit.
Figure 1120

Seuls les numros de guide 1, 3 et 4 sont prsents dans la table Activites. Le guide 2 est donc guide de secours.

Comment, sur le plan technique, fonctionne une requte de 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.

Visualiser la requte de non-correspondance


Lassistant nous a aid construire notre requte de non-correspondance. Nous pouvons parfaitement la visualiser, non plus en mode Con Groupe Eyrolles, 2008

267

11 Isoler des enregistrements particuliers dans une base de donnes

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.

Le mode Cration de la requte de non-correspondance


AU CHOIX Afficher ou non certains champs dune requte
Tous les champs prsents dans une requte en mode Cration participent son excution. Par contre, on peut trs bien nafficher que certains de ses champs en mode Contenu avec cette case Afficher. Imaginons par exemple une requte devant effectuer des calculs complexes ; pour des raisons pratiques, nous avons dcompos ce calcul en plusieurs tapes, donc en plusieurs champs. Nous navons rellement besoin que dafficher les rsultats de ce dernier champ, et nous pouvons donc dcocher cette case Afficher pour les champs intermdiaires. Voyez le chapitre 12 pour plus de prcisions sur les calculs dans les requtes.

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

Le paramtrage de la requte de non-correspondance en mode Cration

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.

Le mode SQL de la requte de non-correspondance


SQL est, comme nous lavons spcifi, le langage informatique utilis en arrire plan par Access et Base. Mme si ici notre but nest pas dapprendre ce langage assez complexe, rien ne nous empche de visua268
Groupe Eyrolles, 2008

liser notre requte de non-correspondance en mode SQL, ne serait-ce que pour voir (encore que ce code SQL nous sera utile pour crer cette requte de non-correspondance sous Base, voyez ci-dessous). Pour afficher une requte existante en mode SQL, slectionnez la requte dans le volet de navigation puis, par un clic droit, loption mode SQL, ou bien cliquez sur loutil Affichage puis sur loption mode SQL. La figure 11-22 prsente notre requte GuidesDeSecours en mode SQL.

Figure 1122

La requte GuidesDeSecours en mode SQL

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))

Le tableau ci-dessous en dcompose les lments :


Tableau 112 Code SQL de la requte de non-correspondance entre Guides et Activites (Access) Code
SELECT Guides.NumeroGuide, Guides.NomGuide, Guides.PrenomGuide, Guides.BureauGuide

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.

FROM Guides LEFT JOIN Activites ON Guides.NumeroGuide = Activites.NumeroGuide

WHERE (((Activites.NumeroGuide) Is Null))

Groupe Eyrolles, 2008

269

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

Crer la requte de non-correspondance en mode SQL avec Base


Le langage SQL est le langage informatique de base de donnes relationnelle utilis en arrire-plan aussi bien par Access que par Base. Nous venons de crer au chapitre prcdent une requte de non-correspondance laide de lassistant Access. Pour obtenir son quivalent Base (qui ne dispose pas de cet assistant), la seule solution est de crer le code SQL correspondant et de lutiliser dans une requte Base en mode SQL. Dans notre cas, nous allons nous contenter dutiliser le code SQL gnr par lassistant Access. Cette section est bien videmment calibre pour les utilisateurs de Base. Ceux dAccess pourront malgr tout sy rfrer, les procdures sont trs semblables. La syntaxe dun code SQL Base diffre lgrement de celle de son homologue Access. Nous allons donc commencer par rcrire le code SQL de notre requte de non-correspondance avant de lappliquer une requte vierge en mode SQL.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer le code SQL de requte de non-correspondance


Nous venons de dtailler le code SQL gnr sous Access par lassistant requte de non-correspondance entre les tables Guides et Stagiaires. Quelques diffrences de dtail distinguent la syntaxe SQL Base de SQL Access. En particulier, il faut, sous Base, sparer les noms de champs des noms de tables par des ". Le code correspondant au SQL Access SELECT
Guides.NumeroGuide, Guides.BureauGuide Guides.NomGuide, Guides.PrenomGuide, "Guides"."NumeroGuide",

est, pour Base,

SELECT

"Guides"."NomGuide", "Guides"."PrenomGuide", "Guides"."BureauGuides".

Par consquent, le code SQL de notre requte de non-correspondance dvelopp sous Access devient pour Base :
SELECT "Guides"."NumeroGuide", "Guides"."NomGuide", "Guides"."PrenomGuide", "Guides"."BureauGuides" FROM "Guides" LEFT JOIN "Activites" ON "Guides"."NumeroGuide" = "Activites"."NumeroGuide" WHERE ( ( ( "Activites"."NumeroGuide" ) IS NULL ) )

Nous allons maintenant crer une requte Base en mode SQL pour y placer ce code. Et le tour sera jou...

270

Groupe Eyrolles, 2008

Crer la requte de non-correspondance en mode SQL


partir du moment o le code SQL est crit, crer une requte en mode SQL est un jeu denfant : 1 Crez une nouvelle requte en mode SQL. 2 Saisissez le code SQL. 3 Enregistrez et nommez la requte. Le mode opratoire pour Base, appliqu notre requte de non-correspondance entre les tables Guides et Activites, est trs simple. Commencez par crer un nouvelle requte en mode SQL en slectionnant la famille Requtes dans le volet de navigation puis en cliquant sur loutil Crer une requte en mode SQL. Une nouvelle requte souvre, il suffit dy saisir le code SQL souhait au clavier ou par copier/coller. La figure 1123 illustre le code saisi avec Base. Il ne reste plus qu enregistrer la requte et lexcuter. Ses rsultats sont exactement conformes ceux de son homologue Access.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1123 Le code SQL de requte de non-correspondance (Base)

ACCESS Crer une requte en mode SQL


Voici comment crer sous Access une requte en mode SQL. Avec la version 2007 : 1. Crez une nouvelle requte en mode Cration (dans longlet Crer, groupe Autre, cliquez sur loutil Cration de requte). 2. Fermez la bote de dialogue Ajouter une table. 3. Basculez en mode SQL par le bouton Affichage, option mode SQL. Avec la version 2003 : 4. Crez une nouvelle requte en mode Cration (cliquez sur Requtes dans le volet de navigation, double-cliquez sur Nouveau, choisissez loption Mode Cration). 5. Fermez la bote de dialogue Ajouter une table. 6. Basculez en mode SQL par le bouton Affichage, option mode SQL.

Identifier les doublons dans une table


Il y a doublon sur un champ quand la mme valeur est prsente dans ce champ pour plus dun enregistrement de cette table. Rechercher des doublons sur un champ dans une table permet de trouver par exemple : Les salaris homonymes dune entreprise (il y a alors doublon sur le champ Nom de la table des Salaris).
Groupe Eyrolles, 2008

271

11 Isoler des enregistrements particuliers dans une base de donnes

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

ALLER PLUS LOIN Doublon sur le champ


NomActivite de la table des Inscriptions
Si nous recherchons les doublons dans le champ NomActivite de la table des Inscriptions, nous dtecterons les activits pour lesquelles il y a plus dun inscrit ; dans la figure 1124, il y a par exemple trois inscrits lactivit Neige (les stagiaires dont le numro est le n 1, 3 et 4).

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

Crer une requte de recherche de doublons avec lassistant Access


Le lancement de lassistant correspondant est trs facile : Sous Access 2007 Cliquez sur loutil Assistant requte dans longlet Crer, groupe Autre, puis slectionnez loption Assistant requte trouver les doublons. Cliquez sur Suivant. Sous Access 2003 Cliquez sur la famille Requtes du volet de navigation, puis sur le bouton Nouveau et choisissez Assistant requte trouver les doublons. Cliquez sur Suivant. Nous sommes maintenant sous le contrle de lassistant : 1 Dsignation de la table susceptible de contenir des doublons Nous avons dtermin dans notre exercice quil sagit de la table des Inscriptions. Slectionnons-la dans la liste droulante, figure 11-25. Cliquons sur Suivant.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1125

Choix de la table Inscriptions qui est susceptible de contenir des doublons

2 Choix du champ susceptible de contenir des doublons Nous avons

dtermin dans notre exercice quil sagit du champ NumeroStagiaire, figure 11-26. Cliquons sur Suivant. 3 Ajout ventuel dautres champs Access propose dajouter des champs parmi les autres champs de la table. Slectionnons-les tous, figure 11-27. Cliquons sur Suivant. 4 Fin de lassistant Access propose de nommer la requte Rechercher les doublons pour [nom de la table source]. Pourquoi pas, mais ce nest pas trs clair... StagiairesMultiActivites sera plus parlant. Par ailleurs, nous retrouvons la possibilit douvrir la requte en mode Contenu ou en mode Cration. Choisissons le mode Contenu pour visualiser tout de suite le rsultat de la requte, figure 11-28, et cliquons sur Terminer.
Groupe Eyrolles, 2008

273

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

Figure 1126
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Le champ NumeroStagiaire de la table Inscriptions contient les doublons

Figure 1127

Lassistant propose de rajouter les autres champs de la table source

Figure 1128

Ne jamais oublier de changer le nom par dfaut dune requte. Noter que loption Modifier la structure est coche.

274

Groupe Eyrolles, 2008

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...

RAPPEL Les champs dune requte sont modifiables


Cliquer sur une cellule de la requte disposant dune liste de choix, figure 11-30, met en vidence le fait quil soit possible de modifier les donnes de la requte. Nous en avonc dj parl (page 245), mais il faut le rpter : utiliser une requte pour modifier les donnes est trs dangereux et ne doit tre rserv qu des cas exceptionnels, comme la requte spcifique de saisie des inscriptions que nous avons dveloppe au chapitre .

Figure 1130 Un requte peut aussi modifier les donnes source

Modifier une requte existante


Notre requte issue de lassistant manque de lisibilit. Nous allons lui ajouter les champs NomStagiaire et PrenomStagiaire. Lajout de champs dans une requte dj existante nest quune variante de la cration dune requte en mode Cration/bauche que nous avons abord au chapitre 10, page 243. Il va sagir dafficher la requte en mode Cration/bauche, dajouter ventuellement les tables requises et enfin dinsrer les champs souhaits parmi les champs dj utiliss par la requte.

Groupe Eyrolles, 2008

275

11 Isoler des enregistrements particuliers dans une base de donnes

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

Groupe Eyrolles, 2008

Figure 1133

Loutil Ajouter une table dAccess 2003

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.

TRUC Dplacer les colonnes dune requte


Pour dplacer les colonnes dune requte, il suffit, comme avec un tableur, de cliquer sur len-tte de la colonne (donc du champ) et de la glisser o lon veut.

Figure 1134 La requte dfinitive Rechercher les doublons. Remarquez le critre de slection pour le champ NumeroStagiaire.

Figure 1135

Les trois stagiaires inscrits plusieurs activits.

Groupe Eyrolles, 2008

277

11 Isoler des enregistrements particuliers dans une base de donnes

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.

Crer une requte de recherche de doublons en mode SQL


Rappelons que le mode SQL est le seul permettant de crer une requte de recherche de doublons avec Base, ce logiciel ne possdant pas lassistant correspondant. Il va sagir alors, comme avec la requte de non-correspondance de la section prcdente, dadapter le code SQL gnr par Access et de lappliquer une requte Base en mode bauche. Concernant ladaptation du code SQL Access en code SQL Base, nous savons dj que Base utilise des " comme sparateur de champ, voir page 263. Nous savons de plus que le champ DateInscription (utilis dans la base dcole dalpinisme Access) a comme quivalent le champ NumeroInscription sous Base. Le code SQL adapt Base est donc :
SELECT "Inscriptions"."NumeroStagiaire", "Stagiaires"."NomStagiaire", "Stagiaires"."PrenomStagiaire", "Inscriptions"."NumeroInscription", "Inscriptions"."NomActivite" FROM "Stagiaires" INNER JOIN "Inscriptions" ON ("Stagiaires"."NumeroStagiaire" = "Inscriptions"."NumeroStagiaire") AND ("Stagiaires"."NumeroStagiaire" = "Inscriptions"."NumeroStagiaire") WHERE ((("Inscriptions"."NumeroStagiaire") In (SELECT "NumeroStagiaire" FROM "Inscriptions" As Tmp GROUP BY "NumeroStagiaire" HAVING Count(*)>1 ))) ORDER BY "Inscriptions"."NumeroStagiaire";

Il nous suffit maintenant de copier ce code dans une requte Base en mode bauche et de lexcuter pour obtenir son rsultat, figure 11-36.

278

Groupe Eyrolles, 2008

Figure 1136

La requte Base cre en SQL donne les mmes rsultats que celle de la figure 11-35.

Synthse : rechercher des enregistrements particuliers dans une base de donnes


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Groupe Eyrolles, 2008

279

11 Isoler des enregistrements particuliers dans une base de donnes

DExcel Access

Tableau 113 tapes pour la cration dune requte de non-correspondance (Access) Phase tape Illustration dans notre cas pratique de recherche des guides qui nencadrent pas dactivits

Lancer lassistant Requte de non-correspondance

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

Assistant Requte de non-correspondance


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Assistant Rechercher les doublons

Ajout manuel des champs en mode Cration

280

Groupe Eyrolles, 2008

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

Groupe Eyrolles, 2008

281

11 Isoler des enregistrements particuliers dans une base de donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

12

Effectuer des calculs et des synthses avec une requte


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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 !

une modification du cahier des charges

B Crer des champs calculs B Raliser des synthses


avec une requte

B Organiser son travail


avec les requtes MOTS-CLS

B Cascade de modifications B Requte calcul B Champ calcul B Oprateur arithmtiques B Concatnation de chane
de caractres

B Test logique VraiFaux() B Requte de synthse Somme,


Minimum, Maximum, Moyenne

Groupe Eyrolles, 2008

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

Prendre en compte une modification du cahier des charges


Comme nous lavons vu au chapitre 5 (page page 105), les diffrents objets et tches sempilent les uns sur les autres comme dans un chteau de cartes, chaque tage dpendant de la solidit de celui du dessous et dterminant celle de celui du dessus. En cas de modification des hypothses de dpart alors quune partie de la base a dj t programme, lquilibre gnral de ldifice peut tre compromis et tout peut seffondrer... Cette section a pour but de vous sensibiliser aux consquences en cascade dun oubli (ou dune erreur) dans la modlisation de notre base de donnes relationnelle (et donc dexpliquer pourquoi il vaut mieux ne pas se trouver dans cette situation). Elle va aussi permettre dintroduire dans notre cas pratique un nouvel lment qui permettra de bien intressants dveloppements. Quavons nous oubli dans le cahier des charges initial de notre cole dalpinisme, celui qui nous a servi de socle au dveloppement de cas pratique ? Le ct financier des choses, tout simplement ! Nulle part nous ne parlons dargent ou de cotisations ; pourtant, les stagiaires payent bien des cotisations. Pourquoi donc notre base ne pourrait-elle pas en mme temps les grer ? La prise en charge des cotisations dans notre base de donnes peut, selon les cas, tre plus ou moins complexe prendre en compte. Le cas le plus simple pour la programmation (mais pas forcment le meilleur pour le compte en banque) serait de crer une cotisation vie par stagiaire : on naurait besoin de cotiser qu linscription, et cette cotisation ouvrirait un droit vie pour sinscrire toutes les activits sans limitation. La cotisation serait alors attache la personne du stagiaire et il suffirait de rajouter un champ Cotisation dans la table des Stagiaires. 284
Groupe Eyrolles, 2008

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

Identifier les modifications de la base suite au nouveau cahier des charges


Soyons trs clairs : il est impossible de donner des conseils gnraux applicables dans toutes les situations en cas de modification du cahier des charges. Tout cas est un cas despce. Parfois, la modification sera minime et nimposera que dajouter un champ dans une table. Parfois il faudra reprendre intgralement toute la structure des tables et des relations, et donc avec tous les objets en dpendant. En fait, tout dpendra du schma rel modifi intgrant les nouvelles hypothses et contraintes : sil est proche du schma de dpart, les modifications apporter seront minimes et, sil en est trs diffrent, il y aura du pain sur la planche.

Groupe Eyrolles, 2008

285

12 Effectuer des calculs et des synthses avec une requte

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

Activites Stagiaires Inscriptions

Cotisation Ristourne CotisationOk

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

Groupe Eyrolles, 2008

Modifier la base de notre cas pratique


Lajout des trois champs ncessaires la prise en compte des cotisations va nous obliger : 1 Crer les trois champs dans les trois tables. 2 Mettre jour ou recrer tous les objets dpendants dj crs. 3 Mettre jour les donnes et les enregistrements. La premire tape consistant ajouter les nouveaux champs ne pose pas de difficult. Il suffit, pour chacun des trois champs, douvir la table correspondante en mode Cration/bauche et dy ajouter le champ en spcifiant bien son type et ses proprits. Et bien entendu de fermer chaque table en nomettant pas de lenregistrer. Les figures 12-1 12-3 (pour Access) et 12-4 12-6 (pour Base) illustrent les modifications apporter. Observezles bien pour reproduire les diffrentes proprits de chaque champ.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 121 Le champ Cotisation dans Access

Figure 122 Le champ Ristourne dans Access

La structure en chane dAccess et de Base oblige ensuite reprendre tous les objets qui dpendent des objets modifis. Tous les objets (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

12 Effectuer des calculs et des synthses avec une requte

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

Figure 123 Le champ CotisationOk dans Access

Figure 124 Le champ Cotisation dans Base

Figure 125 Le champ Ristourne dans Base

Figure 126 Le champ CotisationOk dans Base

288

Groupe Eyrolles, 2008

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.

ATTENTION Le formulaire et son sousformulaire, le formulaire SaisieInscriptions


Nous avons cr deux formulaires spcifiques pour la saisie des inscriptions, le formulaire avec son sous-formulaire (page 215) et le formulaire SaisieInscriptions bas sur une requte (page 248). Ces deux formulaires (ainsi que la requte SaisiesInscriptions) doivent donc soit tre modifis, soit tre intgralement recrs. Nous vous conseillons plutt cette dernire solution.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 127

Lajout du champ Cotisation dans le formulaire Activites en mode Cration

Sous Access 2003 : 1 Ouvrez le formulaire en mode Cration. 2 Ouvrez le volet Liste des champs avec loutil Ajouter des champs (figure 12-8). 3 Ajustez ventuellement la dimension de la zone Dtail. 4 Glissez le champ souhait lendroit voulu du formulaire. 5 Positionnez et dimensionnez finement le contrle.
Figure 128

Loutil Liste des champs dun formulaire en mode Cration

Groupe Eyrolles, 2008

289

12 Effectuer des calculs et des synthses avec une requte

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

Loutil Liste des champs dun formulaire en mode bauche

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

Crer des champs calculs


Les requtes que nous avons tudies jusqu prsent ne font que collecter linformation (par exemple lister les stagiaires par activits) ou slectionner une partie de linformation en fonction de critres de recherche sur mesure (par exemple ne lister que les stagiaires dune activit spcifique). Les requtes calcul permettent, elles, de crer de linformation, un peu la manire dExcel ou de Calc qui calculent des cellules partir dautres cellules. Dans une base de facturation en entreprise, une requte calcul permettra par exemple de calculer, partir des quantits livres dun produit et de son prix unitaire, le montant total de la livraison pour ce produit.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Connatre la syntaxe dun champ calcul dans une requte


Une requte calcul devant contenir un champ calcul se prsente exactement comme une autre requte. La seule contrainte est quelle doit bien videmment contenir tous les champs ncessaires au calcul. Par exemple, la requte devant calculer un champ PrixTotal devra comporter les champs PrixUnitaire et Quantite. Pour crer un champ calcul dans une requte, il suffira de saisir dans une case libre de la premire ligne dune requte en mode Cration/ bauche le nom de ce champ et la formule de calcul selon la syntaxe
NomDuChampCalcule:FormuleDeCalcul.

Par exemple, la figure 12-11 montre la requte permettant de calculer, partir des champs PrixUnitaire et QuantiteCommandee dune table
Groupe Eyrolles, 2008

291

12 Effectuer des calculs et des synthses avec une requte

DExcel Access

Commandes, le champ TotalCommande gal


QuantiteCommandee.

PrixUnitaire

Figure 1211

Un exemple de cration de champ calcul

Remarquez sur cette figure 12-11 que les noms de champs participant au calcul du champ calcul apparaissent entre crochets [ ]. Par ailleurs, sur la ligne Table, aucun nom de table napparat pour le champ calcul parce que ce champ nappartient aucune table (il vient juste dtre calcul ici).
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 /.

Effectuer un calcul arithmtique


Une requte de calcul arithmtique permet par exemple de calculer le montant d par un client ou le montant encore non rgl un fournisseur. Nous allons illustrer la cration de ce type de requte en calculant dans notre cas pratique ce que chaque stagiaire nous doit en fonction des activits auxquelles il est inscrit, de lventuelle ristourne laquelle il a droit et des rglements quil a dj effectu. Il va sagir dans cet exercice : De crer une requte contenant tous les champs ncessaires, en la nommant par exemple MauvaisPayeurs ou tout autre nom votre convenance. Dy insrer le champ calcul CotisationRistournee dterminant le montant de linscription diminu de lventuelle ristourne. La formule de calcul de ce champ CotisationRistournee sera Cotisation * (1 Ristourne). Dy intgrer le critre Non pour le champ CotisationOk pour ny faire apparatre que les cotisations nayant pas encore t rgles. La requte calcul doit contenir tous les champs ncessaires au calcul effectuer, ainsi que tous les champs ncessaires lexploitation de cette requte. Par exemple, quoi bon calculer ce quon nous doit sans faire mention de qui nous le doit ? a ne servirait pas grand chose... Dans notre cas pratique, nous allons crer donc une nouvelle requte MauvaisPayeurs avec les champs suivants :

292

Groupe Eyrolles, 2008

Tableau 122 Liste des champs pour le calcul des cotisations ristournes restant dues Dans la table... Il faut slectionner... Pour...

Stagiaires

NumeroStagiaire, NomStagiaire et PrenomStagiaire Ristourne DateInscription CotisationOk NomActivite Cotisation

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

Groupe Eyrolles, 2008

293

12 Effectuer des calculs et des synthses avec une requte

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.

EXPLICATION Pourquoi des noms de champs sans espaces ?


Depuis le dbut de notre tude des SGBDR, nous avons scrupuleusement respect la rgle dor : des noms de champs sans espaces. Nous en voyons la justification lors de la saisie des formules. Dans notre exercice, la syntaxe relle dAccess exige des crochets [ ] autour des noms de champs. Ce nest que parce que nous avons utilis des noms de champs sans espaces que nous avons pu nous dispenser de saisir ces crochets et quAccess les a rajout lui-mme. En dautres termes, si le champ Ristourne stait appel par exemple Taux de ristourne (avec des espaces dans le nom de champ), il aurait fallu saisir la formule comme ceci, avec les crochets :
CotisationRistournee:[Cotisation]*(1-[Taux de ristourne])

Crer des noms de champs sans espaces simplifie donc sensiblement la saisie des 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

BASE La cration dun champ calcul


Le principe de base est le mme que pour Access, avec simplement des diffrences de forme. La figure 12-16 illustre le rsultat de la saisie du champ calcul CotisationRistournee selon les normes Base : Les noms de champs sont encadrs par des guillemets doubles " et non par des crochets [ ]. Le nom du champ calcul est saisi non pas sur la ligne Champ mais sur la ligne Alias. Notez galement quil nest pas besoin de saisir les " des formules pas plus que les espaces, Base les rajoute tout seul.

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 proprits dun champ calcul (ici, format sans dcimale)

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.

Groupe Eyrolles, 2008

295

12 Effectuer des calculs et des synthses avec une requte

DExcel Access

Figure 1217

Ce message qui apparat lorsque la requte est excute signifie que le champ Ristourne est inconnu. Normal, on a oubli le s de Ristourne dans la formule.

SMANTIQUE Champ Oui/Non


sous Access et Base
Sous Access, le critre Oui slectionne les enregistrements pour lesquels le champ Oui/Non correspondant est Oui (case coche), et Non linverse. Sous Base, le critre 1 slectionne les enregistrements pour lesquels le champ Oui/Non correspondant est Oui (case coche), et 0 linverse.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

Manipuler les chanes de caractres avec Access


Ces fonctions ne sont disponibles que sous Access. Access dispose, un peu la manire dExcel, de fonctions de manipulation de texte, par exemple comme nous allons lexprimenter pour juxtaposer (concatner) des chanes de caractres ou encore extraire les X caractres de gauche (ou de droite) dun champ. La concatnation consiste juxtaposer des champs alphabtiques pour en crer dautres, par exemple pour transformer les deux libells indpendants Thierry et Capron en Thierry Capron . Cette manipulation est particulirement utile pour simplifier la production de listings et de mailings de grande qualit.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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 concatnation de deux champs de type Texte

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

12 Effectuer des calculs et des synthses avec une requte

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

Figure 1223 Un nouveau champ de numrotation

La concatnation dune fonction Gauche() et du numro de stagiaire

alphanumrique de nos stagiaires

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Effectuer un test conditionnel avec Access


Une des grandes joies des tableurs est la clbre fonction Si() qui permet de raliser des tests conditionnels du style Si... alors...sinon... . Un must parmi les must. Son quivalent Access sappelle (ne nous demandez pas pourquoi) VraiFaux(). Sa syntaxe est semblable son alter ego Excel Si() : VraiFaux(Test;ValeurSiVrai;ValeurSiFaux) dans laquelle : Test reprsente le test logique (vrai ou faux) effectuer. ValeurSiVrai reprsente la valeur que la fonction VraiFaux() doit retourner si le test est vrai. ValeurSiFaux reprsente la valeur que la fonction VraiFaux() doit retourner si le test est faux.
ALLER PLUS LOIN Lensemble des fonctions disponibles sous Access
avec le gnrateur dexpression La fonction VraiFaux() est une des nombreuses fonctions disponibles sous Access. Ces fonctions sont toutes disponibles dans le Gnrateur dexpression : Avec Access 2007 : dans une requte en mode Cration, dans longlet Outils de requte, Crer, cliquez sur loutil Gnrateur du groupe Paramtrage de requte. Double-cliquez ensuite sur le dossier Fonctions puis Fonctions intgres. La figure 12-24 illustre laccs la fonction VraiFaux(). Avec Access 2003 : cliquez sur loutil Crer (la baguette magique de la barre doutils, figure 12-25).
Figure 1224

La fonction VraiFaux() dans le gnrateur dexpression

Figure 1225

Louverture du gnrateur dexpression Access 2003

298

Groupe Eyrolles, 2008

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).

SYNTAXE Les % sont entrs en dcimales


Dans la formule de la figure 12-25, 1 % et 5 % sont respectivement saisis en valeur dcimale, respectivement 0,01 et 0,05. Sinon, cela ne fonctionne pas.

Figure 1226

Le dtail du code dun champ calcul avec la fonction VraiFaux()

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

La commission est bien calcule selon les rgles fixes

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

12 Effectuer des calculs et des synthses avec une requte

DExcel Access

ALLER PLUS LOIN Cette solution est


beaucoup moins efficace Nous navons pris cet exemple que pour appliquer la fonction VraiFaux() dans notre cas pratique. Dans la ralit, elle prsente de nombreux inconvnients par rapport la solution utilisant le champ Ristourne de la page page 292 : si une ristourne est accorde un autre stagiaire que lamie Josette, il faudra modifier la formule pour intgrer son nom dans le test (alors quil suffit de saisir son taux de ristourne dans la table des Stagiaires avec la solution prcdente) ; si le taux de ristourne change, il faut modifier la valeur du taux dans la formule (alors quil suffit de saisir la nouvelle valeur dans la table des Stagiaires avec la solution prcdente) ; enfin, nimporte quel nouveau stagiaire sappellant Duchemin (mme sil ne sagit pas de Josette) bnficiera automatiquement des 10 % de son homonyme puisque le test seffectue sur le nom Duchemin.

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

Une application de la fonction VraiFaux() pour calculer une ristourne

Il suffit cet effet de crer une nouvelle requte en mode Cration (figure 12-28) avec les champs NumeroStagiaire, NomStagiaire, PrenomStagiaire, DateInscription, NomActivite, Cotisation et dy ajouter le champ calcul CotisRistournee selon le code spcifi. Remarquez le nom du champ utilis pour viter toute confusion avec le champ CotisationRistournee dj calcul, page 294. La figure 12-29 montre les rsultats de cette requte qui sont bien videmment conformes celles de la page page 294.

Figure 1229

Seule Duchemin Josette bnficie dune ristourne

300

Groupe Eyrolles, 2008

Raliser des synthses avec une requte


Une requte de synthse permet, comme son nom lindique, deffectuer des synthses sur des donnes numriques, pour calculer, par exemple, le montant total dune facture, le CA global dun client, les recettes gnres par la location dun DVD particulier, le nombre de participants une sortie du comit dentreprise. Ou pourquoi pas encore le total des cotisations encore non payes dun stagiaire de notre cole dalpinisme : cest lexercice que nous allons rsoudre ensemble. Nous avons dj cr la requte des MauvaisPayeurs qui liste le dtail des cotisations non rgles. Nous allons lutiliser comme source de la requte qui va en calculer le total par stagiaire. La requte de synthse par stagiaire des cotisations non rgles va donc contenir les champs NumeroStagiaire, NomStagiaire, PrenomStagiaire, Ristourne et CotisationRistournee. Lutilisation de la requte MauvaisPayeurs comme source de cette nouvelle requte appelle des remarques importantes : On peut rutiliser une requte comme source dune autre requte, en crant ainsi des chanes de requtes dpendant les unes des autres. On peut utiliser un champ calcul dans une requte dans une autre requte sans avoir besoin de rappeler les champs participants aux calculs. Dans notre exemple, on peut utiliser CotisationRistournee de la requte des MauvaisPayeurs sans avoir rappeler les champs source Cotisation et Ristourne. La requte dpendant de la requte source bnficie des critres paramtrs dans la requte source. Dans notre exemple, la requte source MauvaisPayeurs slectionne dj les cotisations non payes (champ CotisationOk gal Non). La requte en dpendant ne contiendra galement que les cotisations non payes. Selon un schma maintenant bien tabli, nous crerons cette requte avec lassistant Access. Nous ltudierons ensuite en mode Cration/ bauche, notamment lattention des utilisateurs de Base qui ne dispose pas dun assistant vritablement pratique.
ALLER PLUS LOIN AVEC ACCESS
Crer un tat de totalisation
Access (et non Base) propose galement de crer un tat de totalisation (par facture, client, DVD ou stagiaire) pour rsoudre ce type dexercice. Reportez-vous page 319.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer une requte de synthse avec lassistant Access


Il sagira ici dutiliser lassistant Cration de requte ordinaire en choisissant simplement, en cours dassistant, loption Synthse. Les premires tapes de lassistant ne devraient pas vous dpayser : 1 Lancez lassistant Cration de requte simple. 2 Utilisez comme source de la requte la requte MauvaisPayeurs. 3 Intgrez dans la requte les champs NumeroStagiaire, NomStagiaire, PrenomStagiaire, Ristourne et CotisationRistournee.
Groupe Eyrolles, 2008

301

12 Effectuer des calculs et des synthses avec une requte

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

Le choix des options de synthse

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

Groupe Eyrolles, 2008

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.

Crer une requte de synthse en mode Cration/bauche


Dtaillons notre requte de synthse des cotisations non rgles en mode Cration, figure 1233. Loutil (accessible dans longlet Outils de requte, onglet Crer, groupe Afficher/masquer) permet dafficher ou de masquer la ligne Opration autorisant les oprations de regroupement : Regroupement signifie quun regroupement est demand sur le champ. Somme signifie quune totalisation est demande sur le champ.

Figure 1233 Loutil et la ligne Oprations dans une requte Synthse en mode Cration

Groupe Eyrolles, 2008

303

12 Effectuer des calculs et des synthses avec une requte

DExcel Access

ACCESS 2003 Loutil


Il se trouve dans la barre doutils (figure 12-34), juste gauche de loutil Ajouter une table.

Figure 1234 Loutil pour Access 2003

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

BASE Crer une requte de synthse


en mode Cration/bauche Crer une requte de synthse sous Base peut se faire avec lassistant, mais nous vous conseillons plutt dutiliser le mode bauche (parce que lassistant va fournir une requte qui devra de toutes faons tre modifie). Il faut donc tout dabord crer une requte contenant les champs ncessaires, puis insrer laide de la liste droulante la valeur de regroupement souhaite sur la ligne Fonction. Dans notre exemple, il sagit de reporter les rglages de la figure 12-35.

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.

Organiser son travail avec les requtes


Vous avez compris que les requtes sont des outils extrmement performants pour lanalyse des donnes. Leurs possibilits sont quasiment sans limites, et il est totalement hors de lobjet de cet ouvrage de tenter de les explorer toutes puisque nous avons choisi dy privilgier lapproche mthodologique. Noublions jamais quune base de donnes relationnelle bien conue laisse la porte ouverte la cration de tous types de requtes et danalyse. 304
Groupe Eyrolles, 2008

Cependant, nous ne pouvons pas conclure leur tude sans voquer quelques points complmentaires leur sujet.

Grer lajout et la suppression de donnes


Une base de donnes est un organisme vivant. Des enregistrements y sont constamment ajouts, modifis et supprims. Les requtes Ajout et Suppression facilitent cette gestion de lvolution naturelle des donnes. Sans entrer dans le dtail de la mise en uvre de ce type de requte, sachez que : Les requtes Suppression savent extraire dune table tous les enregistrements rpondant certains critres (les abonns dune certaine ville, les clients dun certain reprsentant, les factures comprises entre telle et telle date ou encore, dans notre cas pratique, les stagiaires qui ne se sont plus inscrits une quelconque activit depuis telle date). Lintrt de cette manipulation est alors dallger les tables des donnes qui nont plus dutilit relle. les requtes Ajout ont un fonctionnement oppos celui des prcdentes. Au lieu denlever des enregistrements dune table, elles permettent den ajouter, par exemple en provenance dune autre table, dune requte, ou mme de donnes externes.

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.

Groupe Eyrolles, 2008

305

12 Effectuer des calculs et des synthses avec une requte

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).

Crer une unique requte avec tous les calculs


Nous abordons l une nouvelle illustration de limportance de lorganisation du travail en matire de SGBDR. Nous avons bien compris que lenchanement des objets dune base de donnes mne assez rapidement une structure embrouille. Inutile den rajouter en semant un peu plus la pagaille avec les champs calculs. Prenons un exemple. Nous avons ajout dans notre base dcole dalpinisme deux champs calculs, CotisationRistournee et EtatCivil. Pour le moment, ces deux champs ont t ajouts dans deux requtes distinctes. Imaginons que nous ayons besoin dajouter dautres champs calculs et que nous le fassions chaque fois dans une requte diffrente. Assez rapidement, nous allons crer une base de donnes avec des requtes dans tous les sens et, surtout, des champs calculs un peu partout. Cela risque dtre difficile de sy retrouver comme le montre le schma de la figure 12-37.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1237

Des champs calculs un peu partout, cest la pagaille

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

Groupe Eyrolles, 2008

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

Synthse : effectuer des calculs et des synthses avec les requtes


Les requtes ont des capacits danalyse de donnes trs dveloppes. Les requtes calcul permettent, partir de champs source, de gnrer des champs calculs. La syntaxe gnrale dun champ calcul est NomDuChampCalcule:FormuleDeCalcul. Ces champs peuvent tre leur tour utiliss dans dautres requtes ou dautres calculs. Les principaux types de calculs que lon peut raliser sont des calculs arithmtiques (pour calculer un prix TTC ou diminu dune ristourne), de manipulation de texte (pour extraire certains caractres ou concatner des chanes de caractres) ou enfin pour raliser des tests conditionnels du type Si... alors...sinon... Les requtes de synthse, quant elles, permettent de raliser une totalisation de donnes numriques par client, produit ou stagiaire. Notons enfin que toute requte peut servir de source une nouvelle requte, crant ainsi une architecture complexe de dpendance de requtes les unes par rapport aux autres. Ce chapitre clt notre tude des requtes. Non que nous en ayons explor toutes les possibilits, loin de l, mais il nentre pas dans le cadre de cet ouvrage, ax essentiellement sur lapproche gnrale des bases de donnes, dentrer dans un tel dtail qui serait trs technique et trs volumineux. Le chapitre suivant va aborder notre dernier thme dtude, les tats/ rapports.
BIBLIOGRAPHIE Aller plus loin avec SQL
R C. Soutou : Apprendre SQL avec MySQL. R C.

ditions Eyrolles, 2007. Bonnin : Mmento SQL, bases relationnelles. ditions Eyrolles, 1998.

Groupe Eyrolles, 2008

307

12 Effectuer des calculs et des synthses avec une requte

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

chapitre

Groupe Eyrolles, 2008

13

diter tables et requtes avec des tats/rapports professionnels


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

B Crer un tat de synthse


avec Access

B Modifier un tat existant


avec Access MOTS-CLS

B Assistant cration dtat/rapport B Niveaux de regroupement B tat de synthse et options


de synthse

B Mode Cration dun tat B Zones en-tte/pied dtat,


en-tte/pied de page, en-tte/pied de groupe, dtail B Contrle et tiquette de contrle : cration, suppression, modification, redimensionnement, dplacement B Proprit dun contrle B Rapport statique et dynamique

Groupe Eyrolles, 2008

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

Une requte nest pas trs lisible

Figure 132

Un tat/rapport est bien plus lisible que sa requte source

310

Groupe Eyrolles, 2008

Crer un tat/rapport en trente secondes


Access et Base proposent dexcellents assistants de cration dtats (de rapports) qui fournissent trs rapidement des ditions de requtes ou de tables. Nous allons illustrer leur fonctionnement au travers de la cration de ltat bas sur la requte StagiairesParActiviteParGuide pour obtenir un affichage comparable celui de la figure 13-2. Pour lancer cet assistant cration dtat : Sous Access 2007 Cliquez sur loutil Assistant tat dans longlet Crer, groupe tat. Sous Access 2003 Cliquez dans le volet de navigation sur la famille tat, puis double-cliquez sur loutil Crer un tat laide de lassistant. Sous Base Cliquez dans le volet de navigation sur la famille Rapport, puis sur loutil Utiliser lassistant cration de rapport. Nous sommes maintenant sous le contrle de lassistant. Il fonctionne selon le schma habituel dun assistant : une succession dtapes vont nous guider dans la cration de ltat souhait. Il va nous suffire de rpondre attentivement aux questions poses. Les droulements des deux assistants Access et Base (page 316) diffrent lgrement. Nous avons donc choisi de les prsenter sparment.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Crer un tat simple avec lassistant Access


Le premier cran de lassistant permet de slectionner la source de ltat (table ou requte) et les champs y participant. Dans notre cas pratique, il faut slectionner la requte StagiairesParActivitesParGuides avec tous ses champs, figure 13-3.
SORGANISER Une requte par tat
et un tat par requte
Remarquez quAccess nous autorise cette tape slectionner des champs provenant de diffrentes tables ou requtes. a ne nous semble pas une bonne ide. Il nous parat plus lisible de faire dpendre tout tat dune seule requte : il ne restera ainsi plus qu modifier la requte source pour modifier immdiatement ltat cible. Si vous dsirez btir un tat pour des champs qui ne sont pas actuellement sur la mme table ou la mme requte, commencez par crer la requte centralisant ces champs et btissez votre tat sur cette dernire requte.

Figure 133

Tous les champs de la requte StagiairesParActivitesParGuides sont slectionns pour cet tat.

Groupe Eyrolles, 2008

311

13 diter tables et requtes avec des tats/rapports professionnels

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

Lassistant Access offre la possibilit dajouter de nouveaux niveaux de regroupements.

312

Groupe Eyrolles, 2008

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.

COMPRENDRE Les tris dtat


Quand un tat est paramtr avec des niveaux de regroupement, les valeurs des diffrents niveaux de regroupement vont seffectuer en ordre croissant selon le champ utilis comme niveau de regroupement. Par exemple, dans notre tat, les guides, objet du premier niveau de regroupement, vont tre tris par ordre croissant de NumeroGuide, puisque ce champ a t utilis comme champ de regroupement. Bien entendu, ce paramtrage par dfaut est modifiable en ouvrant ltat en mode Cration. Le paramtrage du tri en cours dassistant cration dtat (dont nous parlons ici) ne concerne que les enregistrements qui figureront dans la section Dtail de ltat (ici, les donnes des Stagiaires, dernire table ayant t slectionne dans la requte source). Concrtement, dans notre exemple dtat, selon le paramtrage de regroupement et de tri que nous venons dappliquer : Les Guides seront tris par ordre de NumeroGuide croissant. Les activits dun guide seront classes par ordre alphabtique croissant sur NomActivite. Enfin, les stagiaires participant une activit seront classs par ordre de NumeroStagiaire.

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.

Groupe Eyrolles, 2008

313

13 diter tables et requtes avec des tats/rapports professionnels

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

ACCESS 2003 Choix du style dtat


Access 2003 offre sensiblement moins de choix de style dtat. Ce nest pas forcment rdhibitoire...

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.

ACCESS 2007 Mode tat ou Aperu avant impression


Access 2007 ouvre par dfaut un tat en mode tat, mode qui nest pas ncessairement le plus pratique. Il est plutt conseill de demander son affichage en mode Aperu avant impression, qui donne une vision beaucoup plus synthtique de ltat. cet effet, par un clic droit sur un tat du volet de navigation, accdez loption Aperu avant impression.

Figure 138

Il est trs important de renommer ltat dun nom efficace, par exemple du nom de la requte source

314

Groupe Eyrolles, 2008

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

Ltat directement issu de lassistant cration dtat (Access 2007)

Figure 1310

Aperu avant impression de ltat Access 2003

Groupe Eyrolles, 2008

315

13 diter tables et requtes avec des tats/rapports professionnels

DExcel Access

Crer un rapport simple avec lassistant Base


Le droul de lassistant de cration de rapport Base offre de nombreuses similitudes avec son homologue Access. Avec mme quelques petits plus (la possibilit de changer directement les tiquettes du rapport, par exemple). Lancez lassisant en cliquant dans le volet de navigation sur la famille puis sur loutil Utiliser lassistant cration de rapport : vous tes sous le contrle de lassistant.
Rapport,

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 modification des tiquettes dun rapport avec lassistant Base

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

Groupe Eyrolles, 2008

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

Les paramtres classiques de composition dun rapport Base

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

13 diter tables et requtes avec des tats/rapports professionnels

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

La cration finale du rapport avec lassistant Base

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.

Figure 1315 Aperu avant impression du rapport Base

318

Groupe Eyrolles, 2008

Sentraner la cration dtats/rapports


Vous pouvez parfaitement vous familiariser la cration dtats et de rapports avec toutes les tables et les requtes de notre cas pratique. Les figures 13-16 et 13-17 reprsentent par exemple et respectivement les tats bass sur les requtes ActivitesParStagiaire et StagiairesParActivite. La seule remarque faire sur leur cration concerne lunique niveau de regroupement ncessaire pour chacun de ces tats (par Stagiaire pour le premier, par Activite pour le second).
TRS PROCHES Les tats StagiairesParActivite
et StagiairesParActiviteParGuide
Ces deux tats sont trs semblables, chaque activit tant encadre par un guide. Le second regroupe le premier en fonction des activits encadres par le guide.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1316

Figure 1317

Ltat ActivitesParStagiaire en style Verve avec Access 2007

Ltat StagiairesParActivite en style Rotonde avec Access 2007

Crer un tat de synthse avec Access


Les tats sont trs souvent utiliss avec Access, non plus simplement pour prsenter une requte, mais aussi pour effectuer des totalisations de donnes numriques, un peu la manire des fonctions de sous-total de listes de donnes (page 60). Base ne propose pas cette possibilit. Il sera par exemple possible de lister le dtail de toutes les ventes ralises client par client et den donner le montant par client. Ou encore, dans notre cas pratique, de lister le dtail des cotisations non payes par stagiaire et den calculer le total par stagiaire, total que ne fournit pas la requte des MauvaisPayeurs, figure 13-18.
Groupe Eyrolles, 2008

BASE Utiliser les requtes de synthse


pour effectuer des totalisations
Les rapports Base ne permettent pas de gnrer des totalisations. Lalternative est alors de crer une requte de synthse, comme dcrit au chapitre 12, page 303, et de crer un rapport bas sur cette requte. Linconvnient est alors que ce rapport ne contiendra pas le dtail des enregistrements, mais uniquement leur synthse.

319

13 diter tables et requtes avec des tats/rapports professionnels

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.

Dterminer les champs participant ltat


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Groupe Eyrolles, 2008

Dterminer le niveau de regroupement


Cette tape de fixation dun niveau de regroupement est bien videmment essentielle, puisquelle va dterminer la structure des totaux et sous totaux de notre tat. Il faut cette tape ajouter autant de niveaux de regroupement que de niveaux de sous-totaux demands. Puisque notre exercice ne comporte quun niveau de sous-total par Stagiaire, demandons donc cette tape un regroupement par NumeroStagiaire en cliquant sur le champ correspondant puis sur le bouton >, figures 13-19 et 13-20.

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

13 diter tables et requtes avec des tats/rapports professionnels

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.

Cliquons sur Suivant.


ALLER PLUS LOIN Plusieurs niveaux de regroupement
Il est possible dobtenir plusieurs niveaux de regroupement. La figure 13-21 illustre le paramtrage dun tat demandant un regroupement par NumeroStagiaire puis par NomActivite (remarquez quil naurait de sens que si, lintrieur de chaque activit, il y avait des sous-activits). Les outils et servent alors permuter lordre des regroupements, NumeroStagiaire puis NomActivite ou NomActivite puis NumeroStagiaire. Remarquez galement que les autres champs relatifs au stagiaire (nom, prnom, ristourne) sont encore plus mal placs que prcdemment...

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1321 Deux niveaux de regroupements successifs

(par NumeroStagiaire puis par NomActivite)

Paramtrer le tri et les synthses effectuer et terminer lassistant


TRI Croissant ou dcroissant
Vous remarquerez sur la figure 13-22 des boutons de tri permettant deffectuer des tris de A Z ou de Z A.

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

Groupe Eyrolles, 2008

Figure 1322
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Le tri par NomActivite et le bouton Options de synthse

Concernant les calculs de synthse de notre cas pratique, nos totaux par stagiaire, il faut faire appeler la bote de dialogue spcifique ; cliquons cet effet sur le bouton Options de synthse... pour faire apparatre la bote de dialogue de la figure 13-23. Elle nous propose de choisir, parmi les oprations disponibles, celle que nous dsirons appliquer aux champs numriques quelle a dtect dans la requte source. Remarquez 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.

Groupe Eyrolles, 2008

323

13 diter tables et requtes avec des tats/rapports professionnels

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

Figure 1324 Ltat des mauvais payeurs la sortie de lassistant

Lanalyse critique de ltat obtenu


COHRENCE Une chane nest pas plus solide
que son maillon le plus faible
Quelle que soit la qualit de la programmation de ltat, il ne sera correct que si la requte source lest. En dautres termes, si la requte des mauvais payeurs tait errone ( parce que par exemple le champ CotisationRistournee tait mal calcul ou si elle ne slectionnait que ceux qui avaient pay), ltat correspondant serait compltement faux. Ce qui illustre une fois encore laspect chane dun SGBDR, dont la solidit dpend du maillon le plus faible.

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.

Modifier un tat existant avec Access


Dans certains cas, un tat gnr automatiquement par lassistant requiert des modifications manuelles. Ces modifications ne sont en gnral pas complexes, mais dlicates et souvent assez pnibles si on veut obtenir un rsultat satisfaisant. En consquence, si vous voulez absolument amliorer la prsentation de vos tats, notamment pour des obligations professionnelles, tudiez minutieusement ce chapitre. Exercezvous avec patience ces manipulations pas toujours videntes. Et surtout faites des copies de vos tats, et travaillez sur ces copies : vous viterez ainsi, en cas de fausse manipulation ou si vous tes un peu perdu dans vos modifications, de devoir tout recommencer. Si, par contre, ltat issu de lassistant vous convient et que vous navez pas vraiment besoin de lamliorer, notre conseil sera de vous en contenter. Pour les courageux et les pointilleux, il serait bon de modifier la prsentation de notre tat des mauvais payeurs. Les principales modifications que nous vous proposons deffectuer sont les suivantes (figure 1325) : Modification du titre de ltat. Alignement des totaux de cotisations avec leur dtail.

Groupe Eyrolles, 2008

325

13 diter tables et requtes avec des tats/rapports professionnels

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.

Anatomie dun tat en mode Cration


La figure 1326 prsente ltat des mauvais payeurs en mode Cration. Nous y retrouvons un fonctionnement et un look similaires celui dun formulaire dans ce mme mode, voir page 207, avec des zones et des contrles. Notre tat comporte sept zones horizontales les unes sous les autres : Len-tte dtat qui napparat quune fois en haut de ltat. Len-tte de page qui apparat en haut de chaque page. Len-tte de groupe (uniquement si il y a un niveau de regroupement). Si il y a plusieurs niveaux de regroupements, il y aura autant de couples en-tte de groupe/pied de groupe que de niveaux de regroupements. La zone Dtail (qui contient les enregistrements de ltat). Le pied de groupe (si il y a un en-tte de groupe). Le pied de page qui apparatra en bas de chaque page. Le pied dtat, qui napparatra quune seule fois en bas dtat.

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

Groupe Eyrolles, 2008

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.

MINIMUM Au moins cinq zones dans un tat


Tout tat comporte au moins cinq zones par dfaut (en tte dtat, en-tte de page, dtail, pied de page et pied dtat) et autant de couples en tte de groupe et pied de groupe que de niveaux de regroupement demands.

Manipuler les contrles


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

RAPPEL Si vous faites des btises en


modifiant un tat
Il nest pas facile darriver du premier coup modifier un tat sans faire de mauvaise manipulation. Il est ncessaire de se faire la main... Considrant la rapidit avec laquelle un tat est gnr par lassistant, il sera souvent plus facile de supprimer un tat mal modifi et de recommencer intgralement que dessayer de rectifier ltat existant.

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.

SYNTAXE Attention la modification


du contenu dun contrle
Un tiquette nest quune zone de texte libre, on peut donc modifier son contenu volont. Le contrle en lui-mme doit par contre correspondre trs exactement au nom dun champ ou une fonction Access. Il ne faut donc pas le modifier, sauf dans des cas trs particuliers. Par exemple vous venez de terminer la cration dun tat particulirement complexe et vous vous apercevez que par erreur vous y avez insr le champ PrenomStagiaire et non NomStagiaire. Plutt que de tout recommencer zro, vous aurez intrt modifier le contrle en lui mme en saisissant NomStagiaire en lieu et place de PrenomStagiaire. Mais cest un cas exceptionnel, rptons-le.

Modifier une tiquette ou un contrle


On peut modifier le contenu ou lapparence de ltiquette ou du contrle. Pour modifier le contenu dune tiquette, il faut la slectionner et cliquer une deuxime fois sur ltiquette pour entrer dans son contenu. Il est alors possible de modifier le texte de ltiquette ; il suffit ensuite de cliquer nimporte o en dehors de ltiquette pour valider la modification. Cest ce que nous avons fait pour modifier le titre de ltat de notre exemple. Pour modifier lapparence dun contrle, par exemple la police utilise ou lalignement, il suffit de cliquer simplement sur le contrle sans entrer dans son contenu. Les principaux formats disponibles se trouvent directement dans les barres doutils, dautres formats sont prsents dans longlet Format des Proprits du contrle (par un clic droit, appeler loption Proprits).
Groupe Eyrolles, 2008

FAUX AMI Attention aux alignements


Le champ Ristourne semble correctement align gauche sur la figure 1327 en mode Cration. Lobservation de la figure 1325 en mode Aperu montre quil nen est rien.

327

13 diter tables et requtes avec des tats/rapports professionnels

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

Groupe Eyrolles, 2008

Figure 1327

Trois contrles sont slectionns.


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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.

Modifier la taille dun contrle


Pour redimensionner un contrle trop petit ou trop grand, il suffit de le slectionner, puis de le modifier dans le sens souhait laide des touches de dplacement et en maintenant la touche Shift enfonce : Avec la touche , le contrle slargit. Avec , il se rtrcit. Avec , il saplatit. Avec , il spaissit. On peut aussi redimensionner un contrle en fonction dun autre contrle pour harmoniser lapparence dun tat. Il faut alors slectionner au moins deux contrles et faire un clic droit suivi de Taille. Les options disponibles permettent de modifier la taille : Au plus large (ou Au plus troit) : dlargir (ou rtrcir) le contrle le plus troit (ou le plus large) la largeur du plus large (ou du plus troit), dans le sens horizontal. Au plus grand (ou Au plus petit) : dpaissir (ou aplatir) le contrle le plus fin (ou le plus pais) lpaisseur du plus pais (ou du plus fin), dans le sens vertical.
PARALLLE Les formulaires aussi
Lensemble de ces manipulations de contrles (dplacement, alignement, redimensionnement) fonctionnent galement avec tout formulaire en mode Cration.

Supprimer un contrle inutile


Les contrles inutiles se suppriment facilement. Il suffit de les slectionner et denfoncer la touche Supprimer. Cest ce que nous avons fait sur le contrle un peu abscons situ juste au-dessus de ltiquette Somme de la zone Pied de groupe NumeroStagiaire (qui permet de visualiser le nombres de lignes affiches pour chaque stagiaire).

Groupe Eyrolles, 2008

329

13 diter tables et requtes avec des tats/rapports professionnels

DExcel Access

Arer la prsentation de ltat


Il est galement possible darer ltat en largissant lespacement vertical entre deux zones. Imaginons par exemple que nous souhaitions sparer les lignes Dtail de notre tat dans le sens de la hauteur : il suffit de tirer vers le bas la sparation entre les zones Dtail et Pied de groupe NumeroStagiaire. La figure 1329 montre le rsultat obtenu, plus lisible et plus professionnel. Pour mmoire, par rapport ltat initial de la figure 1326, nous avons effectu les modifications suivantes : changement du titre ; suppression des tiquettes de colonnes NumeroStagiaire, NomStagiaire et PrenomStagiaire (zone En-tte de page) ; dplacement des contrles NomStagiaire et PrenomStagiaire ct du contrle NumeroStagiaire (zone En-tte de groupe NumeroStagiaire) ; modification des alignements, des formats daffichage, des hauteurs de zones.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure 1329 Un tat des mauvais payeurs amlior, plus lisible

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

Groupe Eyrolles, 2008

Synthse : les tats et les rapports


Les tats, ou rapports sous Base, permettent des prsentations impeccables et professionnelles des tables et requtes dune base de donnes relationnelle. Ils se crent facilement avec les assistants ddis. De plus, lassistant Access permet de gnrer des tats avec un gestion automatique de totaux et sous-totaux, un peu la manire des sous-totaux de la liste de donnes du chapitre 4. Leur modification manuelle en mode Cration est par contre assez fastidieuse et dlicate pour arriver un rsultat impeccable. Heureusement, elle nest que trs rarement indispensable. Les deux tableaux ci-dessous rsument lessentiel savoir leur propos.
Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Tableau 131 Crer un tat/rapport avec lassistant Phase Access tape Remarque Base tape Remarque

Lancement de lassistant tat/rapport

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

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 Permet dobtenir des noms de champs dans un langage courant

tape 2

Modifiez ventuellement les niveaux de regroupements

Modifiez ventuellement les tiquettes des champs

tape 3 tape 4 tape 5 tape 6

Paramtrez les niveaux de tri Choisissez une prsentation parmi les modles proposs Choisissez un style parmi les modles proposs Fin de lassistant

Modifiez ventuellement les niveaux de regroupement

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

Groupe Eyrolles, 2008

331

13 diter tables et requtes avec des tats/rapports professionnels

DExcel Access

Tableau 132 Crer un tat avec regroupement et calcul sur donnes numriques avec Access Phase tape Remarque

Lancement de lassistant tat/rapport

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

tape 3 tape 4 tape 5 tape 6

332

Groupe Eyrolles, 2008

Complments sur la modlisation


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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)

Groupe Eyrolles, 2008

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure A1

Le schma thorique de lcole de parapente

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.

Le schma thorique de lcole de parapente


Ce schma thorique, figure A1, comporte cinq rectangles (lments concerts ou abstraits). Les lments concrets sont : Pilote, qui concerne les membres de lcole ; Site de dcollage/Site datterrissage, qui regroupent les sites correspondants utiliss dans cette cole ; Parapente, qui collecte lensemble des donnes concernant les parapentes appartenant au club et mis la disposition des pilotes. Le seul lment abstrait est le Modle de parapente, qui correspond au rpertoire officiel des modles de parapentes homologus par la Fdration franaise de vol libre. 334
Groupe Eyrolles, 2008

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

A Complments sur la modlisation

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

Site de dcollage/atterrissage et Vol


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

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

Parapente et Utilise Parapente et Est de type * Modle de parapente et Est de type

0 N 1 1 0 N

Modle de parapente et Vol

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.

Exercice sur les couples de nombres cls


Quoi de mieux quun petit exercice pour se familiariser avec ces concepts ? Voici celui que nous vous proposons : chacune des questions suivantes (relatives la figure A1), il est propos de remplacer une valeur de nombre cl par une autre ; vous devez alors choisir la signification de ce changement parmi les trois solutions proposes.

336

Groupe Eyrolles, 2008

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

Groupe Eyrolles, 2008

337

A Complments sur la modlisation

DExcel Access

Prcisions concernant la boucle dans le schma thorique de lcole de parapente


Nous avons dj remarqu que le schma thorique de notre cole de parapente (figure A1) prsente une structure en boucle. Cette dernire nest due qu une particularit de cette cole : les pilotes peuvent voler avec leur propre parapente. Observons le premier nombre cl entre Pilote et Parapente. Il est 0, ce qui signifie quun pilote nest pas oblig dutiliser un parapente du club. Cest pourquoi Vol runit Pilote et Modle de parapente : le parapente personnel du pilote doit tre dun modle homologu. Modle de parapente est donc reli une premire fois Pilote par Vol (pour permettre chacun de voler sur son parapente personnel) et une seconde fois toujours Pilote par Parapente (pour permettre dutiliser un parapente du club). Sil tait obligatoire dutiliser un parapente du club, le schma thorique serait celui de la figure A2, sans boucle cette fois-ci.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure A2

Une organisation diffrente de lcole supprime la boucle du schma thorique.

338

Groupe Eyrolles, 2008

Le schma rel de lcole de parapente


Ltablissement du schma rel de lcole de parapente ne pose pas de problme particulier (figure A3). Notons la prsence attendue de la boucle entre Pilote, Parapente, Modle de parapente et Pilote de nouveau.

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Figure A3

Le schma rel de lcole de parapente comporte exceptionnellement une boucle.

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.

Groupe Eyrolles, 2008

339

A Complments sur la modlisation

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Droits et obligations en matire de base de donnes


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.

Vos obligations en tant que gestionnaire de base de donnes


La loi Informatique et Liberts du 6 janvier 1978, modifie par la loi du 6 aot 2004, encadre la mise en uvre des fichiers ou des traitements de donnes caractre personnel quils soient automatiss ou manuels. Les responsables de ces fichiers ou traitements ont des obligations respecter, notamment en les dclarant auprs de la CNIL. Mais quentend-t-on par donnes caractre personnel ?
INFO La CNIL, Commission Nationale Informatique et Liberts
La CNIL est lautorit de contrle franaise en matire de protection des donnes personnelles. Son site, trs bien fait, regorge dune multitude dinformations tout fait pratiques pour tout citoyen responsable. http://www.cnil.fr.

Groupe Eyrolles, 2008

DExcel Access

La notion de donnes caractre personnel


Larticle 2 de la loi Informatique et Liberts stipule : Constitue une donne caractre personnel toute information relative une personne physique identifie ou qui peut tre identifie, directement ou indirectement, par rfrence un numro didentification ou un ou plusieurs lments qui lui sont propres. Pour dterminer si une personne est identifiable, il convient de considrer lensemble des moyens en vue de permettre son identification dont dispose ou auxquels peut avoir accs le responsable du traitement ou toute autre personne. (...). La personne concerne par un traitement de donnes caractre personnel est celle laquelle se rapportent les donnes qui font lobjet du traitement.

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

Groupe Eyrolles, 2008

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.

(Source CNIL) B http://www.cnil.fr/index.php?id=271

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

B Droits et obligations en matire de base de donnes

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.

Exercez vos droits


Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

MERCI POUR LA PLANTE Stop aux pubs


dans la bote aux lettres
Bien quil ne soit pas la consquence dune utilisation abusive de donnes personnelles, un prospectus dpos dans votre bote aux lettres constitue une dmarchage non sollicit. Si vous voulez vous en dbarasser, demandez votre mairie lautocollant officiel apposer sur votre bote. Il remplacera aventageusement le pige souris...

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

B Droits et obligations en matire de base de donnes

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

DExcel Access

Figure B1

Le modle de courrier officiel de la CNIL

SPAMS Conduite tenir face aux spams


Les spams sont ces courriels non sollicits qui inondent votre bote aux lettres lectronique. Ils sont en gnral facile reconnatre : ds quon vous promet fortune, gloire, beaut ou satisfaction sexuelle ahurissante, ou que lon vous propose des Rolex ou des Cartier au prix dune Swatch, ou encore quon vous demande de fournir numro et code de carte bleue parce que votre banque les a perdus, mfiance mfiance ! Inutile dans ce cas de vous adresser la CNIL pour faire cesser ces emails, pour la simple raison que ces spams vous parviennent parce que votre adresse lectronique a t vole ou mme simule. Interdiction de rpondre en demandant leur arrt, cela confirmerait lexpditeur que votre adresse est valide, ce qui multiplierait encore les spams. Ce qui motive les spammeurs ? Ce qui fait tourner le monde depuis lorigine, lappt dun gain facile et le simple plaisir dennuyer son prochain. On peut regretter la mollesse avec laquelle les fournisseurs daccs Internet luttent contre cette plaie. Le problme nest certainement techniquement pas simple, tant les spammeurs rivalisent dingniosit pour maquiller leurs envois (par exemple en remplaant pnis pas pn!s ). Continuer pourtant recevoir des messages dont lobjet est Sales 75% OFF Pfizer ou Patek Philippe Watches jette un doute sur la volont des FAI lutter contre ces spams. Que faire face cette huitime plaie de linformatique : Utiliser un filtre antispam ou utiliser Mozilla Thunderbird la place dOutlook. Ne jamais rpondre un spam.

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

Groupe Eyrolles, 2005

349

Index

Ce document est la proprit exclusive de bagi alfred (chrbl6192@gmail.com) - 26 Octobre 2009 12:30

Anda mungkin juga menyukai