Ms Access
-
Upload
maminirina-heriniaina -
Category
Documents
-
view
96 -
download
0
description
Transcript of Ms Access
-
MS OFFICE ACCESS 95-2013 V22.0 Revision 995, {oUUID 1.680}
Please consider the environment - do you really need to print this document!? Vincent Isoz 2015-03-09
-
Vincent ISOZ
MS Office Access 1/564
Remarques:
Pour qu'il soit utilisable d'une manire rationnelle et sans danger, ce support qui constitue un
"super condens" d'un expos qui tiendrait trs facilement sur plusieurs milliers de pages (voir
les ouvrages de cette taille disponible sur le commerce) doit absolument tre complt par de
nombreuses notes et exposs oraux, au cours desquels les notions nouvelles sont prsentes au
moyen de situations concrtes et illustres par de nombreux exemples dont le choix dpend
essentiellement du droulement de la formation afin d'exciter l'esprit critique des apprenants.
Ce support correspond une formation d'environ 15 jours 6.5 heures par jour pour un
groupe de 6 personnes.
Ce qui est vu dans ce support peut tre appliqu toutes les versions antrieures
MS Access 2007. Je ne mettrai donc pas ce document jour pour qu'il corresponde la
version 2007, 2010 ou 2012 (sauf pour les nouveauts) puisque Microsoft la tendance ces
dernires annes changer l'interface chaque version et j'ai autre chose faire de mon temps
que de mettre jour des captures d'cran.
Je tiens galement m'excuser du fait que ce document mlange les captures d'cran d'un
grand nombre de versions de MS Access (97 2010) et en plus de diffrentes langues
(franais + anglais). Effectivement, mon mtier m'oblige constamment changer d'ordinateur
et ainsi le contenu des documents que je rdige. J'espre que le lecteur comprendra en
attendant une uniformisation.
Il y a de nombreuses marques dposes qui sont nommes dans le prsent support. Plutt que
d'utiliser le symbole du trademark sur chaque occurrence de marque nomme, j'ai choisi
d'utiliser le nom seul uniquement dans un souci d'esthtique ditoriale (ce qui devrait aussi
bnficier au propritaire de la marque), sans aucune intention de violer une quelconque
rglementation ou lgislation.
Pour terminer, je voudrais remercier ici les quelques collgues (Olivier Weber,
Fabrice Fournier) et clients qui ont bien voulu me faire part de leurs remarques pour amliorer
le contenu de ce livre lectronique. Il est cependant certain qu'il est encore perfectible sur de
nombreux points.
Si vous souhaitez tre inform des nouvelles versions majeures de ce document n'hsitez pas
m'crire un mail dans ce sens: [email protected].
-
Vincent ISOZ
MS Office Access 2/564
TABLE DES MATIRES
Contents TABLE DES MATIRES ............................................................................................................ 2 1 Liens internet ......................................................................................................................... 10 1. propos du rdacteur .......................................................................................................... 11 2 Introduction ........................................................................................................................... 12
2.1 Environnement ............................................................................................................................. 13 2.2 Protocole ...................................................................................................................................... 14 2.3 MS Excel (tableur) VS MS Access (SGBDR) ............................................................................. 15
3 Notions de base de donnes .................................................................................................. 17 3.1 Types de BDD ............................................................................................................................. 17 3.2 Vues d'une base de donnes ......................................................................................................... 18 3.3 Modules d'un SGBDR ................................................................................................................. 19 3.4 Mthodes de cration de BDD ..................................................................................................... 20 3.5 Modle entit-relation (MER) ..................................................................................................... 22 3.6 Normalisation .............................................................................................................................. 24
3.6.1 Premire forme normale ...................................................................................................... 25 3.6.2 Deuxime forme normale .................................................................................................... 26 3.6.3 Troisime forme normale .................................................................................................... 26 3.6.4 Exercice ............................................................................................................................... 27
3.7 Modlisation de BDD avec MS VISIO ....................................................................................... 28 3.8 Nomenclature de Leszynski/Reddic ............................................................................................ 36
4 Tables .................................................................................................................................... 39 4.1 Liaison MS Excel/CSV ................................................................................................................ 41 4.2 Cration de tables......................................................................................................................... 42 4.3 Formulaire simple (auto-form) .................................................................................................... 44 4.4 Contrle des donnes ................................................................................................................... 45
4.4.1 Lgende ............................................................................................................................... 45 4.4.2 Types de donnes (Typages) ............................................................................................... 47 4.4.3 Formats ................................................................................................................................ 55 4.4.4 Masques de saisie ................................................................................................................ 55 4.4.5 Validation (Valide Si) .......................................................................................................... 58
4.5 Import MS Excel .......................................................................................................................... 62 4.6 Import MS ACCESS .................................................................................................................... 63 4.7 Import/liaison MS Outlook .......................................................................................................... 64 4.8 Format des tables ......................................................................................................................... 67 4.9 Outil recherche ............................................................................................................................. 68 4.10 Proprits des tables................................................................................................................... 69 4.11 Tris et filtres ............................................................................................................................... 70
4.11.1 Critres numriques et textes ............................................................................................. 71 4.11.2 Critres numriques et dates .............................................................................................. 71 4.11.3 Caractres gnriques (wildcards) ..................................................................................... 71 4.11.4 Fonctions gnriques ......................................................................................................... 72 4.11.5 Tris et filtres avancs ......................................................................................................... 73
5 Relations (jointures) .............................................................................................................. 74 5.1 Assistant liste de choix ................................................................................................................ 74
5.1.1 Assistant liste de choix (ALC) statique ............................................................................... 74 5.1.1.1 ALC statique choix unique de type zone de liste droulante ..................................... 74 5.1.1.2 ALC statique choix unique de type zone de liste ....................................................... 77 5.1.1.3 ALC statique choix unique de type liste droulante extensible ................................. 79
-
Vincent ISOZ
MS Office Access 3/564
5.1.1.4 ALC statique choix multiple de type liste droulante extensible ............................... 81 5.1.2 Assistant liste de choix (ALC) li ........................................................................................ 83
5.1.2.1 ALC statique li choix unique de type zone de liste droulante ................................ 83 5.2 Relation un un ........................................................................................................................... 88 5.3 Relation un plusieurs ................................................................................................................. 89 5.4 Relation plusieurs plusieurs ...................................................................................................... 93 5.5 Relation "simple" (sans intgrit rfrentielle) ............................................................................ 93 5.6 Relation avec intgrit rfrentielle ............................................................................................. 93 5.7 Relation circulaire (auto-liaison) ................................................................................................. 99 5.8 Relations d'hritage et composites ............................................................................................. 101 5.9 Index simples et combins ......................................................................................................... 102
6 Formulaires (simples) ......................................................................................................... 105 6.1 Choix de la mthode d'affichage des formulaires ...................................................................... 105 6.2 Filtre par formulaire ................................................................................................................... 107 6.3 Formulaire en mode design ........................................................................................................ 111 6.4 Cration de boutons de formulaires ........................................................................................... 111 6.5 Filtres requtes ........................................................................................................................... 118 6.6 Outil recherche ........................................................................................................................... 118 6.7 ComboBox de recherche ............................................................................................................ 119 6.8 Groupes d'options ...................................................................................................................... 121 6.9 Champs calculs ........................................................................................................................ 123 6.10 ListBox de recherche ............................................................................................................... 123 6.11 Fonction DSum ........................................................................................................................ 124 6.12 Fonction DCount ..................................................................................................................... 125 6.13 Fonction IIf (formulaire) .......................................................................................................... 126 6.14 Fonctions d'environnement ...................................................................................................... 126 6.15 Fonction DLookUp .................................................................................................................. 126 6.16 Onglets ..................................................................................................................................... 127 6.17 Valeurs par dfaut et filtres ...................................................................................................... 130
7 Requtes (simples) ............................................................................................................... 132 7.1 Optimisation des requtes .......................................................................................................... 134 7.2 Requte simple (de projection) .................................................................................................. 135 7.3 Tris dans les requtes ................................................................................................................. 135 7.4 Requte multitable sans liaisons ................................................................................................ 137 7.5 Requte multitable avec liaisons ................................................................................................ 138 7.6 Requte de distinction ................................................................................................................ 139 7.7 Cinq premiers ............................................................................................................................. 139 7.8 Requte avec critre ................................................................................................................... 140 7.9 Requte concatnation dans liste de choix................................................................................. 142 7.10 Colonne calcule ...................................................................................................................... 144 7.11 Critres multiples ..................................................................................................................... 144 7.12 Calcul de synthse (d'agrgation) ............................................................................................ 146 7.13 Regroupement et calculs .......................................................................................................... 146 7.14 Requte et macro d'export ....................................................................................................... 148 7.15 Requte mise--jour ................................................................................................................. 151 7.16 Requte mise--jour (Rechercher/Remplacer) ......................................................................... 152 7.17 Requtes de synthse ............................................................................................................... 154 7.18 Requte d'union ....................................................................................................................... 155 7.19 Requte d'intersection .............................................................................................................. 159 7.20 Requte de comptage ............................................................................................................... 160 7.21 Requte d'union (bis) ............................................................................................................... 161 7.22 Requtes de requtes ................................................................................................................ 162 7.23 Divers (exercices) .................................................................................................................... 164
8 tats-formulaires (complexes) ............................................................................................ 165 8.1 Carnet d'adresse ......................................................................................................................... 167
-
Vincent ISOZ
MS Office Access 4/564
8.2 Synthse et requte .................................................................................................................... 169 8.3 Sous-tats ................................................................................................................................... 171 8.4 Rapports avec groupes (pour lettres ou factures) ....................................................................... 175 8.5 Rapport paramtr par formulaire .............................................................................................. 190 8.6 Objet ActiveX ............................................................................................................................ 191 8.7 Graphique statistique insr ....................................................................................................... 192 8.8 Graphique insr ........................................................................................................................ 196 8.9 Tableaux croiss dynamiques .................................................................................................... 197 8.10 Graphiques croiss dynamiques ............................................................................................... 198
9 Requtes (complexes avec ou sans VBA) ............................................................................ 199 9.1 Requtes avec jointures ............................................................................................................. 199 9.2 Requte regroupement par premiers lments ........................................................................... 201 9.3 Requte avec critres ................................................................................................................. 203 9.4 Requte d'analyse de frquence (contingence) .......................................................................... 204 9.5 Requte paramtre.................................................................................................................... 205 9.6 Requte d'ajout ........................................................................................................................... 207 9.7 Requte de suppression .............................................................................................................. 208 9.8 Requte d'analyse croise (avec assistant) ................................................................................. 208 9.9 Requte d'analyse croise (sans assistant) ................................................................................. 209 9.10 Requte d'analyse croise temporelle ...................................................................................... 210 9.11 Requte d'analyse croise paramtre ...................................................................................... 211 9.12 Requte doublons ..................................................................................................................... 212 9.13 Requte de suppression des doublons d'enregistrements ......................................................... 213 9.14 Requte de non correspondance............................................................................................... 214 9.15 Requtes de cration/dfinition (mode SQL) .......................................................................... 215 9.16 Requte de distribution en % sur comptage ............................................................................. 217 9.17 Requte de (Pareto) distribution en % sur somme ................................................................... 218 9.18 Requte de cumul chronologique............................................................................................. 219 9.19 Requte systme ...................................................................................................................... 220 9.20 Requtes de statistiques non natives ........................................................................................ 220
9.20.1 Requte de valeur modale ................................................................................................ 221 9.20.2 Requte d'obtention de la mdiane .................................................................................. 224 9.20.3 Requtes d'intervalle de fluctuation ................................................................................. 227 9.20.4 Requtes moyenne mobile et somme cumule ................................................................ 228 9.20.5 Requtes de data mining/machine learning ..................................................................... 230
9.21 Analyse simple de portefeuilles ............................................................................................... 230 9.22 Transactions ............................................................................................................................. 233
10 Fonctions ........................................................................................................................... 235 10.1 Relation d'ordre comme validation d'un record (table) ............................................................ 235 10.2 Fonctions Date comme valeur par dfaut (tables) ................................................................... 236 10.3 Fonctions Now comme valeur par dfaut (tables) ................................................................... 237 10.4 Fonctions d'environnement (tables) ......................................................................................... 237 10.5 Fonction textes Left, Right, Instr (requte) .............................................................................. 238 10.6 Fonctions textes UCase, LCase, &, TRIM, StrConv (requte) ................................................ 239 10.7 Fonctions replace et MID (requte) ......................................................................................... 241 10.8 Fonctions de dates Year, Day, Month (requte) ...................................................................... 243 10.9 Fonction de formatage de dates et DatePart (requte) ............................................................. 244 10.10 Fonction de date DateDiff (requte) ...................................................................................... 246 10.11 Calculs de jours avec DateAdd (Formulaire) ......................................................................... 246 10.12 Fonction Logique IIf (formulaire) ......................................................................................... 248 10.13 Fonctions d'arrondi Round (requte) ..................................................................................... 249 10.14 Fonction conditionnelle Switch (requte) .............................................................................. 249 10.15 Fonctions IsNull et NZ (requte) ........................................................................................... 251 10.16 Fonction DSum (formulaire) ................................................................................................. 253 10.17 Fonction DCount (formulaire) ............................................................................................... 255
-
Vincent ISOZ
MS Office Access 5/564
10.18 Fonction DLookUp (formulaire)............................................................................................ 256 10.19 Fonctions Count et DCount (requte) .................................................................................... 257 10.20 Fonction Dsum (requte) ....................................................................................................... 258 10.21 Fonction Dsum et Dates (requte) ......................................................................................... 259
11 Interfacage de l'application .............................................................................................. 261 11.1 Proprits des formulaires ....................................................................................................... 261 11.2 Proprits des champs de formulaires...................................................................................... 263 11.3 Sous-formulaires (Assistant) .................................................................................................... 265 11.4 Champs calculs ...................................................................................................................... 267 11.5 Sous-formulaires (Bote outils contrle) ............................................................................... 268 11.6 Formatage ................................................................................................................................ 270 11.7 Champs OLE ........................................................................................................................... 272 11.8 Esthtique rapports .................................................................................................................. 277 11.9 Formulaire de dmarrage (switchboard) .................................................................................. 278 11.10 Options de dmarrage ............................................................................................................ 280 11.11 Barre d'outils personnalise ................................................................................................... 285
11.11.1 MS Access 2003 et antrieur ......................................................................................... 285 11.11.2 MS Access 2007 et ultrieur .......................................................................................... 286
11.11.2.1 Masquer le ruban au dmarrage de MS Access 2007 ........................................ 286 11.11.2.2 Masquer le ruban au dmarrage de MS Access 2010 ........................................ 287
12 Finitions lmentaires ....................................................................................................... 288 12.1 Compactage ............................................................................................................................. 288 12.2 Protection par mot de passe ..................................................................................................... 288 12.3 MS Query ................................................................................................................................. 289 12.4 Publipostage ............................................................................................................................. 290
13 Macros ............................................................................................................................... 291 13.1 Macros simples ........................................................................................................................ 292
13.1.1 Excution de requtes en mode cration ......................................................................... 292 13.1.2 Contrle de saisie simple ................................................................................................. 293 13.1.3 Import de donnes ........................................................................................................... 294 13.1.4 Contrles sur formulaires ................................................................................................ 295
13.2 Groupe de macros .................................................................................................................... 297 13.3 Groupe conditionnel de macros ............................................................................................... 298 13.4 Macro AutoExec ...................................................................................................................... 300 13.5 Macros Run Code .................................................................................................................... 301 13.6 Macros Import/Export.............................................................................................................. 303 13.7 Macro ReQuery........................................................................................................................ 303 13.8 Groupe de macros simple ........................................................................................................ 305 13.9 Groupe de macros complexe .................................................................................................... 308
14 Thorie internet / intranet ................................................................................................. 310 14.1 Formulaire web ........................................................................................................................ 310 14.2 Application Web avec SharePoint 2010/Access 2010 ............................................................. 313 14.3 Application Web avec SharePoint 2013/Access 2013)............................................................ 317
15 Optimisation et analyse ..................................................................................................... 324 15.1 Table ........................................................................................................................................ 324 15.2 Performances ........................................................................................................................... 324 15.3 Documenter .............................................................................................................................. 326
16 Distribution ....................................................................................................................... 327 16.1 Fractionnement d'une base ....................................................................................................... 328 16.2 Rseau ...................................................................................................................................... 330
17 Securit avance ................................................................................................................ 332 17.1 Dfinition d'un mot de passe .................................................................................................... 332 17.2 Scurit au niveau utilisateur ................................................................................................... 334
17.2.1 Protocole .......................................................................................................................... 334
-
Vincent ISOZ
MS Office Access 6/564
17.2.2 Mthodes ......................................................................................................................... 335 17.2.3 Modlisation des droits .................................................................................................... 337 17.2.4 Dangers de l'espace de travail "par dfaut": .................................................................... 338 17.2.5 Un peu de VBA avec la scurit ...................................................................................... 355 17.2.6 A propos du fichier ldb .................................................................................................... 358 17.2.7 Problmes de scurit avec les requtes .......................................................................... 358
17.3 Dploiement ............................................................................................................................. 359 18 Synchronisation (rplication) ............................................................................................ 361
18.1 Types de rplicas ..................................................................................................................... 361 18.2 Cration d'un rplica matre ..................................................................................................... 361 18.3 Cration d'un rplica partiel ..................................................................................................... 367 18.4 Modifications sur les objets de la base de donnes .................................................................. 368 18.5 Comparatif Maitre-Rplica lors de la synchronisation ............................................................ 371 18.6 3 Conflits rencontrs lors de la synchronisation des bases ...................................................... 372
18.6.1 Subtilits de prdominance du matre .............................................................................. 372 19 Visual Basic Application ................................................................................................... 374
19.1 Objectifs ................................................................................................................................... 376 19.2 Historique ................................................................................................................................ 376 19.3 Types de donnes ..................................................................................................................... 377 19.4 Nomenclature de Lezsynski-Reddick ...................................................................................... 380 19.5 Commentaires .......................................................................................................................... 381 19.6 Table des objets VBA et table ASCII ...................................................................................... 383 19.7 Prise en main du V.B.A ........................................................................................................... 386
19.7.1 Exemples gnriques Office ......................................................................................... 388 19.8 Appliquer le filtre par formulaire automatiquement ................................................................ 392 19.9 Appliquer un filtre avec critres sur un formulaire .................................................................. 392 19.10 Dtection formulaire ouvert ................................................................................................... 393 19.11 Dtection de la version et compactage ................................................................................... 393 19.12 Cration d'un bouton ouvrant une page web .......................................................................... 393 19.13 Excution de code SQL ......................................................................................................... 393 19.14 Cration d'une table ............................................................................................................... 394 19.15 Imports/Exports ..................................................................................................................... 395
19.15.1 Import de donnes de MS Excel .................................................................................... 395 19.15.2 Export paramtr d'un fichier MS Excel ....................................................................... 395 19.15.3 Import d'un fichier CSV ................................................................................................ 396
19.16 Automatiser la mise jour des tables de type BDD lies ...................................................... 398 19.17 Champ de Recherche sur formulaire...................................................................................... 401 19.18 Evnement sur sortie de formulaire (validation des champs de saisie) ................................. 401 19.19 Evnement sur fermeture de formulaire (validation des champs de saisie) ........................... 402 19.20 Focus sur formulaire .............................................................................................................. 403 19.21 Filtres ..................................................................................................................................... 405
19.21.1 Filtre paramtr par bouton ........................................................................................... 405 19.21.2 Filtre paramtr par une zone d'options ......................................................................... 408 19.21.3 Adaptation au filtre par formulaire ................................................................................ 408 19.21.4 Filtres avec boutons a bascule ....................................................................................... 409 19.21.5 Listes droulantes .......................................................................................................... 409
19.21.5.1 Ouvrir une liste droulante lors du survol avec la souris ................................... 410 19.21.5.2 Filtrage d'une liste droulante sur la base d'un champ ....................................... 411 19.21.5.3 Filtrage d'une liste droulante sur la de la saisie dans la liste droulante .......... 411 19.21.5.4 Ajout directe d'une donnes dans une liste droulante ...................................... 413
19.22 Liste droulante choix multiples ......................................................................................... 417 19.23 Autres vnements ................................................................................................................. 418 19.24 Fonctions ................................................................................................................................ 421 19.25 Gestion des erreurs................................................................................................................. 421 19.26 Calendriers ............................................................................................................................. 422
-
Vincent ISOZ
MS Office Access 7/564
19.27 Identification .......................................................................................................................... 425 19.28 Utilisation de la scurit avec VBA ....................................................................................... 429 19.29 Automation ............................................................................................................................ 432
19.29.1 Ouvrir MS Excel et y faire des tratements.................................................................... 432 19.30 D.A.O. et ADO (avec MS Word ou MS Excel) ..................................................................... 433
19.30.1 D.A.O............................................................................................................................. 433 19.30.1.1 Mthodes de lecture et criture de tables et requtes en DAO .......................... 433 19.30.1.2 Mise jour de tables DAO ................................................................................ 436 19.30.1.3 Recherche VBA DAO ....................................................................................... 437 19.30.1.4 Excution requte d'action VBA DAO .............................................................. 438
19.30.2 A.D.O............................................................................................................................. 439 19.30.2.1 MS Excel - lecture ADO ................................................................................... 441 19.30.2.2 Curseurs adLockReadOnly, adLockPessimistic, adLockOptimistic, adLockBatchOptimistic ........................................................................................................... 441 19.30.2.3 MS Excel - Recherche ADO ............................................................................. 443 19.30.2.4 MS Excel - criture ADO ................................................................................. 443 19.30.2.5 MS Word - Recherche ADO ............................................................................. 444
19.31 DLookup syntaxe ................................................................................................................... 445 19.32 tats ....................................................................................................................................... 446 19.33 Requtes ................................................................................................................................. 447
19.33.1 Lecture du contenu d'une Query DAO .......................................................................... 448 19.33.2 ReQuery ......................................................................................................................... 448
19.34 Choix multiple ....................................................................................................................... 449 19.35 Calendrier .............................................................................................................................. 450 19.36 Connexion .............................................................................................................................. 452 19.37 Nouveauts VBA Access 2007-2010..................................................................................... 453
19.37.1 Connecteur ADODB ...................................................................................................... 453 19.37.2 Export flat-file (schema.ini)........................................................................................... 454 19.37.3 Mode Hors-Ligne/En-Ligne SharePoint ........................................................................ 454
20 Confusions courantes ........................................................................................................ 455 20.1 Masques VS Valide Si, VBA & Null interdit .......................................................................... 455 20.2 Valide Si VS VBA & Null interdit .......................................................................................... 456 20.3 Null interdit VS VBA .............................................................................................................. 457 20.4 Intgrit VS Limit la liste & VBA ...................................................................................... 457 20.5 Cls primaires combines VS Macro Requery & VBA ........................................................... 458 20.6 tat VS Formulaire A4 ............................................................................................................ 458 20.7 Scurit MDW VS Scurit VBA ........................................................................................... 458
21 VBScript ............................................................................................................................ 460 22 XML XSL ........................................................................................................................ 461
22.1 Import XML ............................................................................................................................. 464 23 Reverse Engineering (rtro-conception) ........................................................................... 468 24 A.S.P. et MDB ................................................................................................................... 471
24.1 Affichage de donnes............................................................................................................... 473 24.2 Ajout de donnes ..................................................................................................................... 474 24.3 Mise jour d'enregistrements .................................................................................................. 475
25 P.H.P. et MDB ................................................................................................................... 479
26 MS Infopath ....................................................................................................................... 482 26.1 Ajout de donnes ..................................................................................................................... 482 26.2 Echange de donnes ................................................................................................................. 488
27 MS SQL Server .................................................................................................................. 499 27.1 Reverse engineering vers SQL server ...................................................................................... 499 27.2 Connexion SQL server .......................................................................................................... 506
28 AS/400 ............................................................................................................................... 510 29 Oracle Express 11.2g ........................................................................................................ 514
-
Vincent ISOZ
MS Office Access 8/564
30 MySQL ............................................................................................................................... 522
31 PocketPC ........................................................................................................................... 527 32 Business Objects ................................................................................................................ 532 33 Crystal Reports .................................................................................................................. 538
34 Runtime .............................................................................................................................. 540 34.1 Activer le clic droit dans le runtime ......................................................................................... 541
35 Optimisation de bases de donnes .................................................................................... 544 35.1 Systme FAT (File Allocation System) ................................................................................... 545 35.2 Systme ISAM (Indexed Sequential Access Method) ............................................................. 545 35.3 Arbres ...................................................................................................................................... 547
35.3.1 Arbre B ............................................................................................................................ 548 35.3.2 Arbre B+ .......................................................................................................................... 550 35.3.3 Arbre-R ............................................................................................................................ 552
36 Limites MS Office Access .................................................................................................. 553 36.1 Limites MS Access 2000+2002+2007+2010 .......................................................................... 553
37 Nouveauts MS Office Access ........................................................................................... 558 37.1 Propositions de nouveauts ultrieures .................................................................................... 560
38 Raccourcis claviers ........................................................................................................... 561
-
Vincent ISOZ
MS Office Access 9/564
TABLE DES FIGURES
Figure 1 Modle Logique de Donnes (MLD) dans MS Visio ................................................ 29 Figure 2 Accs BDD distance (ADP) .................................................................................... 39
Figure 3 Schma (simple) de la BDD ...................................................................................... 95 Figure 4 Exemple de BDD (taille standard) ............................................................................. 98 Figure 5 Requte d'union ....................................................................................................... 158 Figure 6 Calendrier Access .................................................................................................... 191 Figure 7 Tableau crois dynamique ....................................................................................... 197
Figure 8 Schma SQL Server ................................................................................................. 505
TABLE DES TABLEAUX
Tableau 1 Type de bases de donnes ....................................................................................... 18 Tableau 2 Lgendes Modlisation BDD .................................................................................. 36 Tableau 3 Codes pour masque de saisie ................................................................................... 56
Tableau 4 Codes de masque de saisie types ............................................................................. 57 Tableau 5 Raccourcis clavier dmarrage ............................................................................... 281
Tableau 6 Stratgies de dploiement ...................................................................................... 328 Tableau 7 Autorisations d'accs une base ........................................................................... 353 Tableau 8 Type de donnes VBA .......................................................................................... 377
Tableau 9 Objets VBA ........................................................................................................... 383 Tableau 10 Tableau ASCII Standard ..................................................................................... 384
Tableau 11 Tableau ASCII tendu ......................................................................................... 384 Tableau 12 Objets MS Access ............................................................................................... 384
Tableau 13 Objets MS Access en mode ouverture ................................................................ 385
-
Vincent ISOZ
MS Office Access 10/564
1 Liens internet
Voici une liste non exhaustive de quelques excellents liens concernant MS Access!
visiter absolument !!!
http://ww.testoffice.com (testez vos connaissances)
http://msdn.microsoft.com (page des dveloppeurs)
http://msdn.microsoft.com/fr-fr/library/bb726434%28v=office.12%29.aspx (lien direct VBA)
http://communities.microsoft.com (newsgroups)
http://mypage.bluewin.ch/w.stucki/astuces.htm (page perso)
http://ww.info-3000.com/access/supportdecours/index.htm (page perso)
http://access.seneque.free.fr (page perso)
http://ww.self-access.com/access (page perso)
http://memoaccess.free.fr (page perso)
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/sommaire.htm (page universitaire)
http://ww.wrox.com (livres MS Access en anglais)
http://ww.developpez.com (forum)
http://ww.microsoft.fr (pour les mises jour et plug-ins)
http://w.mvps.org/accessfr/ (page des MVP)
http://homepage.bluewin.ch/wstucki/astuces.htm (plein d'astuces VBA!)
http://www.mvps.org/access/general/gen0012.htm (Leszynski/Reddick naming convention)
http://www.techonthenet.com/access/functions/index.php (liste de fonctions Access avec
exemples)
http://www.bandwood.com/gbs.htm (plug-in permettant de crer rapidement des Gantt sous
Microsoft Access: Gantt Chart Builder System)
http://www.iheartmacros.com (site officiel du VBA de Microsoft Office)
-
Vincent ISOZ
MS Office Access 11/564
1. propos du rdacteur
Nom Prnom: ISOZ Vincent
Domicili ce jour Lausanne (Suisse)
Formation: Ingnieur Physicien HES (B.Sc.)
quivalence Internationale: Bachelor of Science
Anne de naissance: 1978
Actuellement, je suis consultant trilingue (franais, anglais et allemand) en mathmatiques
appliques dans le tutorat d'analystes quantitatifs (niveau Bac+5 Bac+7) et auteur de
plusieurs livres lectroniques dans les domaines suivants:
- matrise statistique des processus/procds (mthodes paramtriques et non paramtriques)
- modlisation prvisionnelle/dcisionnelle avance (arbres de dcisions, chanes de Markov)
- recherche oprationnelle (simplexe, algorithmes gntiques, algorithme GRG)
- data mining (rseaux de neurones, ACP, AFC, rgressions, scoring, clustering, etc.)
- modlisation du risque en gestion de projets et finance d'entreprise (monte-carlo, etc.)
- gestion de projets (modles et best practices thoriques EFQM+Six Sigma, MS Project)
- ISO 9001:2008, 5807:1985, 10015:1999, 31000+31010:2009, 8258:1991, 10017:2003, etc.
- Adobe Photoshop et Illustrator
- 12 applications de la suite Microsoft Office System (Project, Visio, SharePoint, Access, etc.)
ce jour interventions dans plus de ~200 entreprises dont 10 du Fortune 500 selon listing
2009 et 3 universits et coles d'ingnieurs suisses dans des cours de modlisation de bases de
donnes et simulations stochastiques du risque. Formation de plusieurs dirigeants de
multinationales en one to one.
Accessoirement j'interviens pour des formations sur des logiciels comme MS Project,
MS Visio, MS Access et une vingtaine d'autres dont je dlgue l'organisation des entreprises
spcialises dans la formation continue en bureautique (niveau licence et en-dessous).
-
Vincent ISOZ
MS Office Access 12/564
2 Introduction
"Je gre ma base de donnes sur Excel"
"Je travaille sur une base de donnes Excel"
Il est encore frquent d'entendre cette phrase, un non-sens puisque MS Office Excel n'est pas
un systme de gestion de base de donnes mais un tableur!
Cette confusion trouve son origine en partie dans le fait que les interfaces des deux logiciels
sont similaires, lorsque les donnes sont prsentes en tableau. Mais la ressemblance s'arrte
l! Le tableau se caractrise par sa souplesse et sa rapidit de mise en oeuvre, alors que le
systme de gestion de bases de donnes permet avant tout d'assurer la cohrence d'une grande
quantit d'informations, indpendamment de leur prsentation: tables, relations, intgrit
rfrentielle sont autant de puissants outils spcifiques aux bases de donnes permettant
d'assurer un contrle permanent de la cohrence des informations qu'elles renferment.
Une base de donnes relationnelle (S.G.B.D.R.) a plusieurs avantages compars une base de
donnes simple aussi appele "flat file". Elle utilise beaucoup moins d'espace mmoire, car
elle rduit au minimum les redondances ou les rptitions des donnes (si elle a t bien
conue).
Remarques:
R1. En prvision de l'volution technologique des bases de donnes, il est habituellement
prfrable de mettre les tables dans un fichier MS Access prdfini "indpendant" d'un autre
fichier o se trouveront les formulaires, requtes et tats (voir page 328).
R2. Contrairement aux exercices donns dans ce support, les noms des champs de donnes
doivent tre des mots uniques (sans espaces), en minuscules, sans accents et autres symboles
spciaux (c'est ce qui est fait pendant le cours).
R3. Pour plus d'informations sur les conventions de nommage voir la page 36.
De plus, pendant le cours, nous n'allons pas ncessairement suivre l'ordre et la structure des
exercices tels que prsents dans ce support (il faut savoir tre flexible!).
Par ailleurs, en toute rigueur nous ne devrions pas parler de "base de donnes MS Access"
mais de "base de donnes JET", JET (Joint Engine Technology) tant le moteur de base de
donnes de MS Access 2003 et antrieur qui est lui-mme un outil RAD (Rapid Application
Development).
Remarque: MS Access 2007 et ultrieur utilisent un nouveau moteur appel "Access Database
Engine"
Enfin, la stabilit des fichiers MS Access (fichiers *.mdb) n'est pas garantie. Il arrive qu'un
fichier soit endommag et, malgr les outils de rparation, ne puisse tre rcupr. Il est donc
impratif de soigner tout particulirement sa politique de sauvegarde.
Pour finir, je pense sincrement que les SGBDR clients sont des outils morts et dsuets face
aux bases de donnes internet qui permettent une beaucoup plus grande flexibilit, une
-
Vincent ISOZ
MS Office Access 13/564
interface plus conviviale, des possibilits grandioses, un environnement multi-utilisateur rel
et j'en passe... Donc, rflchissez srieusement avant de faire une base de donnes avec des
techniques qui ont 30 d'ge (est-ce que vous rouleriez avec une voiture dont la carrosserie est
neuve, mais dont le moteur a 30 ans... probablement pas!).
2.1 Environnement
Certes, MS Access est un L4G1 cr en 1992. Mais ce n'est pas le seul logiciel client de ce
type sur le march et pas le plus vieux! Je souhaiterais donc indiquer les grands classiques
dans l'ordre de popularit afin d'tre neutre:
Microsoft Office Access Payant (www.microsoft.com)
FileMaker Payant (www.filemaker.com)
Open Office Base Gratuit (http://fr.openoffice.org)
1 un L4G (sigle de langage/logiciel de quatrime gnration) est un terme utilis pour dsigner un type de
logiciel qui comporte un langage de programmation combin avec un systme de gestion de base de donnes.
-
Vincent ISOZ
MS Office Access 14/564
4D Payant (www.4d.com)
et nous pourrions encore citer SQL Server Express, ORACLE Express et MySQL.
2.2 Protocole
Lorsque l'on cre une base MS Access, on procde toujours de la faon suivante (les temps ci-
dessous sont donns relativement une qualit professionnelle assure - ces temps ne sont pas
valables pour des amateurs o les facteurs peuvent aller de 0.1 100:
1. Analyse des besoins (2 jours 2 semaines)
2. Choix d'une stratgie de nommage2 (1 2 heures)
3. Modlisation selon les formes normales (2 jours 2 semaines)
4. Dfinir un *.mdw selon le protocole donn dans le chapitre de gestion de la scurit voir page 332)
5. Cration des tables (1 jour 2 semaines)
a. Dfinition des proprits des tables3 (types de donnes, formats, contraintes, lgendes, index).
b. Cration des liaisons (aprs la cration des listes de choix !!!) entre les tables (un un, un plusieurs, intgrit)
6. Cration des requtes (simple, ajout, suppression, table) (1 2 semaines)
7. Cration et design des formulaires (simples, imbriqus ne pas oublier les infobulles!) (1 2 semaine)
8. Cration et design des tats (1 semaine)
9. Sparation des tables dans un fichier indpendant: stratgie dorsale/frontale (1 jour)
10. Analyse/Optimisation de la base (1 jour)
11. Dfinir la gestion des utilisateurs (1 3 jours)
12. Compression de la base (1 5 minutes)
13. "Beta Testing" de la base (plusieurs jours) et ensuite validation (1 plusieurs semaines)
14. Crypter la base (*.mde/*.accde) et la dployer en runtime
2 Ne pas prendre comme exemple ce support de cours qui ne respecte pas 100% la norme pour faciliter la
comprhension du lecteur
3 Ne pas oublier de mettre une cl primaire sur des champs AutoNum sur chaque table mme si pas ncessaire
dans un premier temps sinon problmes en perspective lors de migrations !!!
-
Vincent ISOZ
MS Office Access 15/564
Remarques:
R1. Dans une dmarche rigoureuse, aucune donne ne devrait tre saisie dans les tables tant
que la base n'est pas totalement termine.
R2. Commentez vos tables, vos champs etc et il vaut mieux en mettre trop que pas assez !!!
R3. Il est possible que dans certains cas l'ensemble de la base doive tre faite en
programmation V.B.A cause de contraintes ou complications trop leves.
2.3 MS Excel (tableur) VS MS Access (SGBDR)
L'exprience nous montre que plus de 95% des utilisateurs de la suite MS Office utilisent
MS Excel tort pour la gestion de listes et consolidation de donnes. Ce qui est incroyable
c'est que ces utilisateurs se rendent pourtant bien compte que ce logiciel n'est pas fait pour la
gestion de donnes tant donn les difficults qu'ils rencontrent et la perte de temps que cela
engendre!
Le problme vient au fait, d'un manque de recul et de formation de ses utilisateurs car
rappelons-le, MS Excel est un TABLEUR (graphiques et calculs) et MS Access un systme
gestion de BASE DE DONNES RELATIONNELLES (cela veut bien dire ce que cela veut
dire !!).
Certes, il est possible d'argumenter le fait que MS Access est un logiciel mtier pour
spcialistes (informaticiens) et que contrairement MS Excel qui est tudi ds le gymnase
(collge) dans les coles publiques, MS Access n'est lui souvent seulement enseign qu'en
premier ou deuxime cycle universitaire dans les branches d'conomie.
Cependant, toute entreprise doit se poser les questions suivantes:
1. Est-ce normal que les employs perdent des centaines d'heures par anne dans MS Excel faire ce qui peut tre fait dans MS Access en 10 minutes (il est aberrant de
faire de la consolidation, des TCD ou travailler plusieurs dans un mme fichier dans
MS Excel ! On voit trs bien que cela n'est pas fait pour !)
2. Sachant pertinemment que tout fichier MS Excel volumineux finit toujours un jour ou l'autre par se changer en une base MS Access, n'est-il pas plus avantageux de
directement commencer par celle-ci et payer une formation d'une dizaine de jours
ses employs plutt que de perdre du temps et de l'argent
3. Est-ce vraiment optimal que chaque employ fasse ses propres fichiers MS Excel, ou MS Access alors que dans une bonne entreprise, la majorit des donnes devraient tre
centralises dans une unique base ?
4. Est-ce vraiment optimal que chaque employ enregistre ses documents sur son espace disque n'importe comment (alors qu'aujourd'hui des technologies comme
MS SharePoint Portal Server permettent de faire de la gestion lectronique de
documents G.E.D. sur une base de donnes MS SQL Server)
Ces observations proviennent de nos expriences dans plus de 400 PMI/PME et il nous parat
clair qu'il y a des sommes d'argent astronomiques perdues chaque anne dans le suivi
d'informations non organises et par les mauvais usages de logiciels.
-
Vincent ISOZ
MS Office Access 16/564
Il y aurait encore beaucoup dire comme:
- MS Excel est lent pour l'analyse de millions de lignes de donnes
- MS Excel ne permet pas de faire un contrle fin de la saisie sans programmation VBA
- MS Excel ne permet pas de faire des relations de un plusieurs entre tables avec la fonction RECHERCHEV( ) ou sans passer par du VBA
- MS Excel n'est pas adapt un environnement multi-utilisateurs
- etc.
Heureusement, les technologies venir s'orientent toujours plus vers des systmes GDD
(gestion de donnes) ou GED (gestion lectronique de documents) supports par des bases de
donnes relationnelles (comme SharePoint).
-
Vincent ISOZ
MS Office Access 17/564
3 Notions de base de donnes
Ce chapitre traite des notions de fondamentales relatives aux bases de donnes et est
largement indpendant du programme de base de donnes MS Access. Nous allons expliquer
quelques concepts fondamentaux de la terminologie des bases de donnes et prsenter certains
outils et techniques de dveloppement de base de donnes.
Lors du dveloppement de processus de travail informatiss, il est frquemment ncessaire
d'enregistrer de gros volumes de donnes.
Un programme de base de donnes gre ces donnes et permet de les lire, de les modifier, de
les supprimer et d'en ajouter. La faon dont les donnes sont enregistres dpend du type de
base de donnes et du systme de base de donnes.
Dfinition:
En informatique, une base de donnes relationnelle est un stock d'informations dcomposes
et organises dans des matrices appeles "tables" lies de manire directement ou
indirectement connexes conformment au modle de donnes relationnel (MDR). Le contenu
de la base de donnes peut ainsi tre synthtis par des oprations d'algbre relationnelle telles
que l'intersection, la jointure et le produit cartsien et est bas sur des algorithmes performants
de gestion des donnes au niveau de la mmoire morte et de la mmoire vive de l'ordinateur.
3.1 Types de BDD
Il existe diffrents types de bases de donnes, les bases de donnes relationnelles tant les
plus connues:
Type de BDD Remarques
Base de donnes
hirarchiques
Il existe une hirarchie entre les enregistrements (organigrammes). Un
enregistrement subordonn appartient un enregistrement suprieur
(contrairement au modle relationnel, le type des enregistrements d'une
relation ne sont pas forcment identiques!)
Base de donnes
rseau
Ce modle est semblable au modle relationnel. Les relations entre les
donnes sont toujours de type un plusieurs et gnrent un graphique
galement appel "rseau" ou "flocon". Les relations sont appeles des
"ensembles" (cubes OLAP).
Base de donnes
orientes objet
Les bases de donnes orientes objets ne comprennent pas de donnes,
mais des objets (donnes + oprations sur les objets selon les mthodes
de Programmation Oriente Objet). Par exemple SharePoint est bas
sur une telle structure.
Base de donnes
rparties
Les bases de donnes rparties enregistrent des donnes dans plusieurs
bases de donnes (ex. sur des ordinateurs dans diffrentes villes) et
possdent des mcanismes de regroupement et d'interrogation des
donnes rparties
Base de donnes
relationnelles
Les systmes de bases de donnes relationnelles (SGBDR) constituent
le type de base de donnes le plus important. Les donnes sont
enregistres dans des tables lies par des relations. Le langage SQL a
t dfini pour l'valuation des donnes
-
Vincent ISOZ
MS Office Access 18/564
Tableau 1 Type de bases de donnes
3.2 Vues d'une base de donnes
Les divers groupes de personnes qui travaillent avec une base de donnes ont, selon leur
tche, des vues diffrentes de la base de donnes. Par exemple, le chef du personnel a besoin
d'informations sur les employs, alors que l'administrateur de base de donnes s'occupe de
l'enregistrement et de la scurit des donnes. Le chef du personnel ne s'intresse pas aux
dtails du projet de base de donnes physique. Ils sont dfinis et, au besoin, mis jour par
l'administrateur de base de donnes. L'architecture de base de donnes repose sur le projet
logique, physique et visuel et l'ordre correspondant dans MS Access est souvent le suivant:
Vue interne (ou physique): La vue interne (ou "schma interne") concerne l'organisation
physique des donnes sur les disques. Les donnes peuvent tre rparties sur plusieurs
ordinateurs dans diffrents btiments et villes. Les donnes que vous affichez
ultrieurement, par exemple, sous forme de table ne doivent pas ncessairement tre
enregistres ensemble. Souvent la vue interne est associe la terminologie de modle
physique de donnes (MPD).
Vue logique: Cette vue reprsente l'ensemble des donnes avec leurs relations sans souci
d'implmentation physique ni d'utilisation. La conception de la base de donnes commence
dans la vue logique: les donnes, leur gestion et leurs relations avec d'autres informations.
Cette reprsentation peut tre sous la forme d'un modle conceptuel de donne (MCD), soit
une synoptique empirique mais comprhensible. Une fois le MCD effectu, nous passons
normalement un modle logique de donnes (MLD), soit un synoptique respectant des
rgles bien prcises comme Merise ou UML. Quand nous travaillons par exemple sur une
base de donnes du type relationnelle, nous parlons alors de modle logique de donnes
relationnelles (MLDR).
Vue externe (ou utilisateur): Elle reprsente la vue de l'utilisateur, qui ne travaille qu'avec
une partie des donnes. Il ne connat ni la structure interne ni la vue globale de la base de
donnes, mais uniquement les donnes qui lui sont visibles. Ces donnes peuvent tre lies
et groupes d'une autre manire que dans la vue logique.
Les utilisateurs d'une base de donnes ne doivent normalement pas connatre l'organisation
physique des donnes. La structure physique des donnes peut donc tre modifie, sans
rpercussion sur la conception de la base de donnes ou la vue de l'utilisateur. En particulier,
les applications qui utilisent la base de donnes continuent fonctionner sans problme.
Au niveau interne, vous pouvez utiliser diffrents formats de table (ex. MS Access, dBase,
MS SQL Server ou Oracle). L'utilisateur ne doit pas connatre l'origine des donnes.
La structure des donnes d'une vue logique est spcialement adapte aux besoins et aux
autorisations de l'utilisateur. Par exemple, le chef du personnel peut afficher les salaires des
employs, alors qu'un collaborateur du dpartement personnel ne peut accder qu' leurs
coordonnes.
-
Vincent ISOZ
MS Office Access 19/564
Projet de base de
donnes logique
Le projet logique dcrit la structure des donnes et les liaisons entre
elles:
rassemblement des donnes (ex. dans des tables) apparence des relations entre les donnes (ex. intgrit
rfrentielle)
ajout de la couche Business Logic: vrification de validit, formats de saisie, etc. Cette logique est alors la disposition
de tous les utilisateurs des donnes. Elle garantit une gestion
cohrente des donnes.
Projet de base de
donnes physique
Le projet physique porte sur l'enregistrement des donnes:
rpartition des donnes sur le disque possibilits d'accs aux donnes (rseau, internet, local) optimisation de l'enregistrement des donnes pour les
oprations de recherche frquentes
intgration de mcanismes de scurit automatiques (ex. enregistrement de donnes en plusieurs exemplaires, en miroir
en cas de dfaillance d'un ordinateur, une autre machine peut prendre le relais avec les mmes donnes)
3.3 Modules d'un SGBDR
Un SGBDR client ou serveur est bas sur plusieurs couches pour fonctionner. Sans aller pour
l'instant dans les dtails en voici une numration dans l'ordre du plus bas niveau de la
couche lectronique jusqu'au niveau utilisateur que le lecteur comprendra normalement une
fois lu l'ensemble du prsent livre lectronique:
Gestionnaire de fichiers (SGF)
Le gestionnaire de fichiers gre les affectations de mmoire sur disque et les
structures de donnes qui reprsentent l'information sur disque. Il contient la
description de l'organisation des fichiers (pages) de la base de donnes.
Gestionnaire de buffer Le gestionnaire de buffer supervise les changes entre les disques et la mmoire
centrale grce une mmoire tampon.
Gestionnaire de la base de donnes
Le gestionnaire de la base de donnes sert d'interface entre les donnes au niveau
physique et les applications visuelles.
Processeur de consultation
Le processeur de consultation transcrit les requtes de consultation dans la mmoire
physique en instructions comprhensibles par le gestionnaire de la base.
Optimiseur L'optimisateur tente de formuler la requte de l'utilisateur de faon optimale en vue
d'en acclrer l'excution partir de statistiques d'utilisation de la base de donnes.
Pr-compilateur DML
Le pr-compilateur DML convertit les instructions DML (Data Manipulation Langage
comme SQL) du programme d'application SQL en procdures et codes adquats pour
tre comprises par l'optimiseur.
-
Vincent ISOZ
MS Office Access 20/564
Compilateur DDL
Le compilateur DDL convertit les instructions DDL (Data Definition Language
comme SQL aussi) en un jeu de tableaux (pages) stocks dans un dictionnaire de
donnes.
Gestionnaire d'accs et d'intgrit
Le gestionnaire d'accs et d'intgrit conserve l'intgrit des donnes et gre les
habilitations des utilisateurs (autorisations d'accs).
Contrleur multitche
Le contrleur multitche traite les conflits ventuels entre traitements simultans.
Module de rcupration
Le module de rcupration assure la cohrence de la base mme la suite d'un
"crash".
Fichiers de donnes
Les fichiers de donnes contiennent la description de la base de donnes.
Fichiers systmes
Le fichier systmes conservent les donnes relatives la structure de la base, les
autorisations d'accs et le dictionnaire des donnes.
Index
Les index assurent la rapidit d'accs aux donnes de la base au niveau des requtes
(SQL).
Statistiques d'utilisation de la base
Les statistiques d'utilisation de la base sont exploites par le module optimiseur.
3.4 Mthodes de cration de BDD
Pour la gestion de donnes, vous avez besoin d'un logiciel appel "systme de gestion de base
de donnes" (SGBD). Il est principalement charg de traiter les requtes des utilisateurs et de
renvoyer les donnes dsires. Un SGBD utilise les trois vues d'une base de donnes. Par
exemple, si un utilisateur tente de demander des donnes sur un client, le SGBD peut excuter
les oprations suivantes:
La requte est convertie en procdure interne afin de prparer l'enregistrement dsir
La vue utilisateur est convertie en vue logique et les structures de donnes ncessaires sont recherches.
L'emplacement d'enregistrement physique des donnes est dfini.
L'accs aux donnes s'effectue avec des oprations du systme d'exploitation
Les donnes sont transmises l'utilisateur
Le SGBD est donc l'origine de plusieurs transformations des vues. En outre, il peut tenir
compte des autorisations de l'utilisateur, noter les modifications des donnes, effectuer des
-
Vincent ISOZ
MS Office Access 21/564
vrifications lors de la saisie de donnes ou les prendre en considration lors de la suppression
de donnes et fonctionner en mode multiutilisateurs.
La cration d'un projet de base de donnes n'est gnralement pas une mince affaire comme
nous l'avons vu dans notre protocole au dbut de ce support. Vous devez rassembler toutes les
informations grer dans la base de donnes, raliser diffrentes vues utilisateur, rpartir
ventuellement les donnes sur plusieurs ordinateurs, etc. Vous devez choisir un modle de
donnes selon le systme de base de donnes utilis et le type de donnes, ainsi qu'une base
de donnes prenant ce modle en charge.
Si vous optez pour le modle de donnes relationnel, les donnes sont enregistres dans des
tables. Vous pouvez dfinir des relations et des rgles d'intgrit entre les tables.
Pour viter la rptition de donnes identiques dans diffrentes tables et une augmentation
excessive du volume des informations enregistres (erreurs nombreuses dans un
enregistrement), vous pouvez soumettre les donnes un processus de normalisation.
Il est galement utile de possder une vue d'ensemble des donnes sous la forme d'un
graphique. Pour ce faire, vous pouvez utiliser le modle E.R. (entit-relation).
Modle de donnes relationnel: reprsentations des donnes dans des tables pouvant tre
lies
Rgles d'intgrit: Rgles directement dfinies dans les tables et vrifiant l'intgrit des
donnes en cas de modification, de suppression et d'ajout.
Processus de normalisation: mthode d'enregistrement sans redondance des donnes (pas
d'enregistrement multiple) permettant d'viter les erreurs lors de la suppression, de la
modification et de l'insertion de donnes.
Modle entit-relation/association: reprsentation graphique de toutes les informations
importantes pour les tables dfinies et des relations entre elles.
Pour identifier de manire univoque tous les enregistrements d'une table, vous pouvez, par
exemple, ajouter cette dernire un attribut supplmentaire qui numrote les enregistrements.
Il est alors possible distinguer les entres de la table grce cet attribut. Dans ce cas, l'attribut
est la "cl primaire" de la table. Chaque table ne peut possder qu'une cl primaire qui permet
d'identifier de manire unique chaque enregistrement et qui n'est pas susceptible de changer
au cours du temps.
Dans l'exemple ci-dessous, l'ensemble d'entits Collaborateurs possde la cl primaire
N Personnel:
Remarque: comme nous le verrons dans les dtails plus loin, la cl primaire d'une table peut
tre un attribut ou une association d'attribut dont la valeur permet d'identifier de manire
unique les enregistrements de cette table.
COLLABORATEUR
S
N Personnel Nom Adresse
-
Vincent ISOZ
MS Office Access 22/564
Une "cl externe" est un champ d'une table qui cre une liaison avec un champ de cl primaire
d'une autre table. Par exemple, tous les enregistrements d'une table Commandes contiennent
le numro du client qui a pass commande. Ce numro identifie de manire univoque un
client dans la table des clients. Le numro de client dans la table des commandes constitue
donc une cl externe ("cl trangre" d'une autre table).
Il arrive frquemment aussi que les enregistrements d'une table doivent tre organiss dans un
ordre diffrent (tris). Dans les grands volumes de donnes, cette procdure peut toutefois
prendre du temps. Pour que l'accs aux donnes soit plus rapide, vous pouvez d'autres index
que la cl primaire (nous verrons effectivement que la cl primaire cre automatiquement un
index), appels "index secondaires".
Remarque: Pour plus d'informations sur les relations voir la page 74
3.5 Modle entit-relation (MER)
Le modle de donnes relationnel a t dvelopp en 1970 par le mathmaticien E.F. Codd et
crit l'aide de la thorie des ensembles. Ce modle sert de base aux bases de donnes
relationnelles.
Pour tenir compte de toutes les informations pertinentes dans un systme de base de donnes,
il est utile de dcrire le domaine d'application et les objets ncessaires. L'outil graphique le
plus connu et le plus utilis cet gard est le "modle entit-relation" (MER) appel aussi
"modle entit-association" (MEA) qui illustre tous les lments d'un systme de base de
donnes relationnel et prsente les rapports entre eux.
Dans la terminologie des bases de donnes, une "relation" est une "table" et donc une
construction de colonnes et de lignes. Dans le domaine des bases de donnes, une relation ne
dsigne donc pas, par dfinition, une liaison.
Les donnes sont enregistres dans une table. Elle reprsente les informations grer (ci-
dessous une table typique de MS Access):
Une table est constitue de colonnes, galement appeles "champs" ou "attributs". Les lignes
de la table contiennent des "enregistrements" ou "uplets". Tous les enregistrements d'une table
ont une structure identique.
La structure d'une table est galement appele son "schma". Les divers systmes de base de
donnes (ex. MS Access, dBase ou Paradox) disposent de diffrents formats de table, dont
-
Vincent ISOZ
MS Office Access 23/564
dpendent les conventions de noms des tables et des champs et les types de donnes de
champs.
Dfinitions:
D1. Une "entit" (ou "enregistrement" donc) peut tre un objet, un concept ou une personne. Les entits se distinguent les unes des autres par leurs proprits.
D2. Un ensemble d'entits est un rassemblement d'entits avec des proprits identiques et correspond une "table".
Remarque: lLrs de la cration d'une base de donnes rflchissez d'abord aux entits
et donc aux ensembles d'entits qu'elle doit contenir.
D3. Une "relation" est une "liaison d'entits". Les relations se distinguent les unes des autres par leurs proprits.
Le type de relation dcrit les rapports numriques entre les diffrents lments par
exemple: combien d'enregistrements de la table "Collaborateur" ont t attribus un
enregistrement de la table "Dpartement" ? Le type de relation est gnralement dfini
par les mentions suivantes:
0 Pas d'attribution 1 Une seule attribution n,m Plusieurs attributions
Les relations sont reprsentes par des lignes de connexion dans le modle ER: la
relation est dcrite par un symbole et la "cardinalit" est ajoute en fin de ligne.
D4. Les "proprits ou "attributs" caractrisent une entit, un ensemble d'entits, une relation ou un ensemble de relations.
D5. Les proprits sont donnes par les "noms des champs de donnes" d'une table.
D6. Un "domaine de dfinition" indique la plage de valeurs autorises pour une proprit.
Exemple: une entreprise englobe des collaborateurs, des dpartements et des projets. Une
base de donnes relationnelle doit tre cre pour grer toutes les informations et tous les
vnements. Dans l'illustration suivante, tous les lments de la base de donnes et leurs
relations sont rassembls:
Tous les rsultats et informations peuvent tre rpartis en trois ensembles d'entits: Dpartement, Collaborateur et Projets.
-
Vincent ISOZ
MS Office Access 24/564
Deux relations sont distingues entre les ensembles d'entits: un dpartement se compose de collaborateurs, qui travaillent sur des projets.
tant donn qu'un dpartement comprend plusieurs collaborateurs, mais qu'un collaborateur n'appartient qu' un dpartement, il s'agit d'une relation un plusieurs. Dans
ce cas, il est ncessaire d'insrer le champ de cl (primaire) de la table primaire
(Dpartement) dans la cl (trangre) de la table trangre (Collaborateurs) N
Dpartement.
Plusieurs collaborateurs peuvent travailler sur plusieurs projets. Il s'agit d'une relation donc d'une relations plusieurs plusieurs.
Les ensembles d'entits Dpartement, Collaborateurs et Projets possdent certaines proprits. Par exemple, l'ensemble d'entits Projets possde les proprits N Projet et
Description. La proprit N Projet identifie exactement une entit ou un enregistrement
et est donc choisie comme cl primaire.
Une relation plusieurs plusieurs ncessite un autre ensemble d'entits, appel "table de transition" car l'association entre les collaborateurs et les projets n'est pas identifiable. Le
nouvel ensemble d'entits comprend au moins les champs de cl des deux ensembles
d'entits qui composent la relation plusieurs--plusieurs.
Pour obtenir une description compacte des entits, attributs et champs de cl, vous pouvez
utiliser la forme textuelle suivante. Elle commence par le nom de l'entit (table), suivi, entre
parenthses, des attributs (champs), les champs de cl primaire tant souligns.
DEPARTEMENT (N Dpartement, Description)
COLLABORATEURS (N Personnel, Nom, Prnom, N Dpartement)
PROJETS (N Projet, Description)
EVALUATION_PROJET (N Projet, N Personnel, HeuresTravail)
3.6 Normalisation
La rpartition des donnes dans des tables relationnelles peut entraner des erreurs lors de la
modification, de l'insertion et de la suppression de donnes et ainsi gnrer des redondances et
incohrences des donnes. Ces erreurs sont galement appeles "anomalies".
Par exemple, chaque collaborateur est associ avec son dpartement et ses donnes de projet
selon la table ci-dessous:
Toutes les donnes sont enregistres dans une seule table. Les problmes suivants surviennent
lors de la modification, de l'insertion et de la suppression de donnes:
-
Vincent ISOZ
MS Office Access 25/564
1. Lorsque vous insrez un nouveau collaborateur qui n'a travaill sur aucun projet, des champs de donnes sont laisss vides, ce qui gaspille de l'espace disque. Des
problmes de traitement peuvent galement survenir en cas de requtes, ex. lorsqu'un
collaborateur travaille sur plusieurs projets en mme temps. Ils figurent tous dans un
champ N Projet et doivent faire l'objet d'une opration supplmentaire. Une requte
ne peut porter que sur tout le contenu d'un champ ou une partie de celui-ci.
2. Lorsque vous supprimez un collaborateur, vous devez galement supprimer les donnes du projet correspondantes. Des donnes sont alors perdues.
3. Lorsque la dnomination d'un projet a t modifie, par exemple, Enqute des clients est remplac par Etude de march, tous les enregistrements contenant cette valeur
doivent tre modifis (si plusieurs collaborateur y travaillent bien sr !)
Le processus de normalisation permet notamment de rsoudre les problmes susmentionns.
Pour ce faire, les donnes des tables doivent respecter certaines rgles. Le rsultat de
l'application de ces rgles est appel "forme normale" des tables.
Lors du processus de normalisation, les donnes sont rparties sur plusieurs tables. Les
diffrentes tapes du processus de normalisation sont dsignes sous le nom de formes
normales: premire, deuxime et troisime formes normales.
La structure des donnes de l'exemple ci-dessus est appele "non normalise", car plusieurs
informations sont enregistres dans certains champs d'un enregistrement. Par exemple, le
collaborateur Demus travaille sur les projets 1, 2 et 3.
3.6.1 Premire forme normale
Supprimez toutes les entres multiples dans un champ. Chaque champ de donnes d'un
enregistrement doit contenir une valeur maximum.
La premire forme normale spcifie donc uniquement que chaque entre d'un champ doit tre
indivisible (une valeur atomique soit: non compose) et en plus impose qu'il y ait au moins
une cl primaire.
Cela ne veut pas dire qu'une remarque sur un projet ne peut contenir qu'un mot. Si le champ
contient toutefois plusieurs remarques avec des indications de date, l'entre n'est plus
automatique et peut tre rpartie en plusieurs champs de dates, avec textes de remarques
correspondants.
-
Vincent ISOZ
MS Office Access 26/564
Mais cette premire forme normale a encore les problmes suivants:
1. La table comprend des redondances. Des donnes de collaborateurs et des noms de dpartements et de projets apparaissent plusieurs fois.
2. La table contient les domaines indpendants suivants: collaborateurs, dpartements, projets.
3. Les donnes ne peuvent pas tre identifies de manire univoque. Par exemple, le nom du dpartement ne peut tre renvoy qu' l'aide d'un numro personnel.
3.6.2 Deuxime forme normale
La deuxime forme normale exige que chaque champ non-cl (tran