Upload
ahouba
View
17
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Ms Access
Citation preview
1SSoommmmaaiirree
Introduction .................................................................................... 3 Chapitre 1 Avant propos ............................................................... 5
Prsentation du sujet : Analyse comparative Access 97 / XP....................... 5 Description du travail............................................................................. 6 Contexte technique ............................................................................... 6 Prsentation dAccess ............................................................................ 6
Chapitre 2 - Manipulation des objets de base avec Access............. 9 I - Etude des travaux pratiques en Access 97..................................... 9
I.1 - Elments caractristiques des travaux pratiques actuels ..................... 9 I.1.1 - La fentre de gestion de la base de donnes........................................... 9 I.1.2 - La cration dune table........................................................................10 I.1.3 - La cration des requtes avec lassistant ...............................................12 I.1.4 - La cration dun formulaire ayant pour source une requte......................13 I.1.5 - La cration dun sous-formulaire ..........................................................15 I.1.6 - La cration des tats et des sous-tats .................................................16
I.2 - Points difficiles des travaux pratiques actuels .................................. 16
II - Migration des travaux pratiques vers Access XP .......................... 17
II.1 Diffrences releves au cours de ladaptation................................. 17 II.1.1 La fentre de gestion de la base de donnes ........................................17 II.1.2 - La cration dune table ......................................................................19 II.1.3 - La cration des requtes avec lassistant..............................................19 II.1.4 - La cration dun formulaire ayant pour source une requte ....................20 II.1.5 - La cration dun sous-formulaire .........................................................21 II.1.6 - La cration des tats et des sous-tats ................................................23
II.2 - Nouveauts de Access XP............................................................. 23 II.2.1 - Liens hypertextes..............................................................................23 II.2.2 - Publication de page WEB....................................................................24
II.2.2.1 Les diffrentes manires de crer une page daccs aux donnes......24 II.2.2.2 Etude des diffrentes fentres disponibles lors de la cration dune
page daccs aux donnes en mode cration : ..............................26 II.2.2.3 - Diffrents types de Page d'accs aux donnes.................................27 II.2.2.4 - Utilisation des Pages d'accs aux donnes ......................................28
II.2.3 - Prise en charge XML ..........................................................................28
2Chapitre 3 - Le langage de programmation de Access : VBA........33 I - Introduction ............................................................................ 33
I.1 - Consquences dans lutilisation de la fentre VBA dAccess : ............. 34 I.2 - Utilisation de laide de VBA............................................................ 36
II - Prsentation de ADO ............................................................... 36
1 - Modle objet ADO : ........................................................................ 37 2 Modle objet ADOX ........................................................................ 38
III - Utiliser ADO avec VBA ............................................................ 39
III.1 Connection (ADO) et Catalog (ADOX) .......................................... 39 III.1.1 - Ouvrir une connexion une base de donnes existante ........................39 III.1.2 - Accder la base de donnes courante ..............................................40 III.1.3 - Dfinition du schma de la base de donnes........................................40
III.2 Recordset................................................................................ 41 III.2.1 - Ouvrir un recordset avec ADO ...........................................................41 III.2.2 - Dterminer la position courante dun recordset ....................................43 III.2.3 - Trouver des enregistrements dans un recordset...................................43
III.2.3.1 - La mthode Find ........................................................................43 III.2.3.2 - La mthode Seek .......................................................................45
III.2.4 - Filtrer et Trier les donnes dans un recordset ......................................46 III.2.4.1 - Utiliser la proprit Filter (Filtre): .................................................46 III.2.4.2 - Utiliser la prorit Sort (Tri).........................................................46
III.2.5 - Ajouter ou modifier des enregistrements.............................................47
Conclusion .....................................................................................49 Bibliographie.................................................................................. 51 Remerciements ..............................................................................53 Annexes..........................................................................................55
Annexe A : DAO vers ADO - Aide-mmoire ...................................... 55
Annexe B : Modle objet ADO dtaill ............................................. 61
3IInnttrroodduuccttiioonn
Dans le cadre de la formation de premire anne dIUP Gnie Informatique, nous allons raliser une tude comparative de deux versions dun mme logiciel : Microsoft Access.
Ce projet est sous la direction de Sylvie Damy, matre de confrence lUniversit de Franche-Comt, responsable de lenseignement de base de donnes en IUP1. La finalit de ce projet est de changer de version de logiciel dans le cadre des travaux pratiques de lenseignement de base de donnes.
Cette tude aura pour support les travaux pratiques raliss par Mme Damy, qui sont soumis aux tudiants de premire anne dIUP GMI. Nous raliserons une tudes de ces travaux pratiques sous Access 97 en faisant ressortir les points caractristiques et lments importants de ces travaux pratiques. Puis nous effectuerons une migration des ces travaux pratiques vers Access XP pour observer les diffrences que cette version apporte.
Dans la seconde partie de cette tude, nous aborderons la partie programmation qui se rvle fortement diffrente celle des travaux pratiques dAccess 97. Cette partie sera traite en dtail car elle dune grande importance dans lenseignement dun IUP informatique.
Tout au long de cette tude vous trouverez des copies dcrans ou des exemples de code qui illustreront les propos traits dans un souci de clart. De plus des annexes sur la partie programmation disponibles en fin de rapport sont une source supplmentaire dinformations. Il sera donc parfois intressant de se reporter ces annexes pour celui qui dsire de plus amples prcisions.
Pour finir, cette tude nest pas compltement exhaustive et ne prtend pas aborder toutes les diffrences entre les deux versions du logiciel. Mais nous y avons trait les changements et apports qui nous ont paru fondamentaux.
Chapitre 1 Avant propos
5
CChhaappiittrree 11 AAvvaanntt pprrooppooss
Nous allons tout dabord dans ce premier chapitre mettre en place le cadre de notre tude, ce qui nous permettra de prciser la fois le contexte, les moyens et les buts de ce projet.
PPrrss eennttaa tt iioonn dduu ssuujjee tt :: AAnn aa llyyssee cc oommppaa rraa tt ii vvee AAccccee ssss 9977 // XXPPCe projet de Base de Donnes a pour but de dresser une tude de lvolution du logiciel Access de Microsoft. Ce logiciel est un SGBD (Systme de Gestion des Base de Donnes) au mme titre que MySQL, Oracle et de nombreux autres.... Les SGBD sont une famille de logiciels permettant de mettre en place un systme dinformation qui permet de regrouper, dorganiser et de manipuler les informations ncessaires toute entreprise ou organisation.
En effet grce cet outil, il est possible pour lentreprise dorganiser :
La gestion des salaires des employs, de lautomatisation des calculs de feuille de paye leur impression automatique tous les 1er vendredis du mois.
La gestion des factures des fournisseurs ou des commandes de clients, et pourquoi pas relier cela au site Internet de la socit afin de crer un service de vente par correspondance.
Ou, titre personnel, un particulier peut tre amen utiliser Access pour
Grer une discothque, une vidothque ou tout type de collections.
A travers la prsentation dAccess faite dans la quatrime partie de ce chapitre, nous prsenterons plus en dtail les concepts de base dun SGBD. Ces logiciels sont trs rpandus et il est important de savoir sen servir car sils sont trs utiles, ils sont parfois aussi peu accessibles voire austres.
Mais les diteurs ont compris quaujourdhui les entreprises privilgient des logiciels ergonomiques (i.e. facile dutilisation) permettant une meilleure productivit. Ils accordent maintenant une importance la disposition des menus, des icnes sur lcran selon la frquence dutilisation des fonctions associes, de manire obtenir un sentiment de commodit immdiate ds la premire approche du logiciel.
Au cours de ce rapport, nous dcouvrirons les nouveauts et amliorations quapporte la version 2002 dAccess (ou Access XP) par rapport la version 97.
Il sagit de mettre en vidence les diffrences qui existent tant au niveau de linterface qu lintrieur mme du logiciel, car sil est vrai que ces cinq ans de dveloppement nont pas crs de changements rvolutionnaires au sein dAccess, il existe de nombreuses diffrences qui peuvent provoquer bon nombre de problmes difficiles identifier lors de la migration dAccess 97 vers Access XP.
Chapitre 1 Avant propos
6
DDeesscc rr iipp tt iioonn dduu tt rraavvaa ii llLe but de ce projet est donc de faire une analyse compare des deux versions dAccess, au travers dun cas pratique afin dtre en mesure de porter le plus facilement possible une base de donnes Access 97 sous Access XP.
En outre, nous tenterons davoir un regard critique vis vis du support de cette comparaison, savoir les travaux pratiques du module de Base de Donnes dIUP1.
Afin de souligner les problmes poss par une migration de Access 97 vers Access XP, nous allons refaire les travaux pratiques du module de base de donnes dIUP1 adapts la version 97 sous Access XP. Ainsi nous serons en mesure didentifier les problmes poss par une telle migration.
Nous chercherons ainsi identifier les diffrences qui peuvent poser des problmes, tant au niveau de linterface que des options proposes par Access tout au long de la cration et de ladministration dune base de donnes.
Cependant, la majeure partie des diffrences que nous relverons se situera au niveau du langage de programmation de la version 97 et XP, tant donn quil a t profondment revu entre ces deux versions et quil est lorigine des problmes les plus complexes en terme dadaptation.
CCoonnttee xxttee tteecchhnn iiqq uueeLes travaux pratiques de base de donnes ayant t raliss sous Access 97, ltude utilisera les logiciels Microsoft Access 97 et Microsoft Access XP avec leurs VBA associs cest--dire respectivement VBA 3.0 et VBA 6.0. Ces technologies ainsi que les mthodes daccs aux donnes seront dtailles dans la partie programmation.
PPrrss eennttaa tt iioonn dd AA cccceessssComme nous lavons dit prcdemment Access est le SGBD relationnel fourni par Microsoft. Un SGBD permet de constituer des collections de donnes que lon pourra organiser, slectionner, trier, modifier, mettre jour
Ces collections de donnes sont contenues dans une base de donnes. Access propose diffrents objets pour constituer la base tels que des tables pour stocker les donnes, des requtes pour extraire et organiser des donnes, des formulaires pour raliser des interfaces utilisateurs, des tats permettant des impressions, des pages offrant la possibilit de crer des pages Web actives... Grce Access, trier, visualiser, imprimer ou transmettre sur Internet des donnes sera donc possible.
La premire version de Microsoft Access date de 1995. Depuis de nouvelles versions sont apparues : Access 97, Access 2000 et Access 2002. Une des mieux accueillie ft Access 97 pour ses performances remarquables lpoque. Cependant les versions 2000 et 2002 ont compltement chang dun point de vu programmation mais cela ne concerne que les utilisateurs confirms. En effet le mode daccs aux objets sest profondment modifier passant de la technologie DAO (Data Access Objects) la technologie ADO (ActiveX Data Objects). De plus avec lexpansion du Web, Microsoft a adapt son logiciel lInternet en instaurant depuis la version 2000 la possibilit de crer des pages Web appeles Pages daccs aux donnes .
Access est un SGBD qui a su voluer et multiplier ses possibilits, du fait quil soit dvelopp par lune des plus grande entreprise de dveloppement de logiciel. Mais la grande notorit de Microsoft et leur certitude concernant leurs ventes les amne parfois ce ngliger concernant certaines parties des logiciels telle que laide qui nest mise jour que part lajout dinformations ce qui rend lensemble complexe et difficile dutilisation.
Chapitre 1 Avant propos
7
Figure 1 : Access XP et la base de donnes Discothque ouverte
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
9
CChhaappiittrree 22 -- MMaanniippuullaattiioonn ddeess oobbjjeettss ddee bbaasseeaavveecc AAcccceessss
Aprs avoir abord ces ncessaires prliminaires notre tude, commenons lanalyse du sujet de ce dossier, c'est--dire la comparaison entre Access 97 et Access XP.
Pour cela nous tudierons tout dabord la cration de la base de donnes Discothque en Access 97. Nous soulignerons ensuite les diffrences dans la cration de cette mme base de donnes sous la version XP pour mettre en vidence les particularits de Access XP.
II -- EEttuuddee ddeess ttrraavvaauuxx pprraattiiqquueess eenn AAcccceessss 9977Afin de permettre une comparaison efficace, il est important de pouvoir mettre en vidence des lments cls qui pourront servir de points de comparaison entre les 2 versions. Nous utiliserons pour cela des exemples tirs des travaux pratiques du module de Base de Donnes dIUP1.
Nous mettrons tout dabord en avant les points caractristiques de ces travaux pratiques puis nous nous intresserons aux difficults que nous avons rencontres lors de la ralisation de ces travaux pratiques, car les lments ainsi identifis sont souvent intressants.
II .. 11 -- EE ll mmeenn ttss ccaa rraacc tt rr iiss tt iiqquu eess ddee ss tt rraavvaauuxx pp rraa tt iiqquu eess aacc ttuuee llssNous allons tudier les travaux pratiques de base de donnes au travers de six points caractristiques.
I.1.1 - La fentre de gestion de la base de donnes Il sagit de linterface principale qui permet lutilisateur daccder chacun des outils mis disposition de lutilisateur afin dadministrer sa base de donnes.
Figure 2 : La fentre de gestion de Discothque sous Access 97
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
10
Nous voyons sur cette fentre de nombreux menus :
Une barre horizontale contenant six onglets dtaills ci-aprs.
Trois boutons sur le ct droit : Ouvrir, Modifier, Nouveau.
Longlet horizontal contient six rubriques diffrentes :
Tables : Cette rubrique permet daccder aux tables (ou relations). Ces tables sont les structures qui renferment les donnes selon un formalisme choisi.
Par exemple, une table contiendra les noms, prnoms et date dinscriptions des membres du club X.
Requtes : Cette rubrique permet de crer des requtes (ou vues dans dautres SGBD). Ces requtes sont bases sur les tables. Elles consistent en une expression de critres et dinstructions qui lorsquelles sont interprtes par le moteur de base de donnes renvoient des informations pouvant provenir de plusieurs tables.
Par exemple dans Discothque, avec une table contenant des noms dalbums et des titres de chansons, et une autre contenant les mmes noms dalbums et leurs interprtes, on peut connatre les titres des chansons interprtes par un interprte donn.
Formulaires : Cette rubrique permet daccder aux formulaires. Ces formulaires sont la partie principale de linterface utilisateur pour laccs aux donnes. Ils permettent ladministrateur de la base de donnes de crer des fentres permettant dorganiser un systme dinformation convivial et facile dutilisation.
On pense par exemple un enchanement de menus permettant daccder des traitements de donnes spcifiques.
Etats : Les tats permettent dimprimer ou de visualiser des donnes selon un cadre prdfini.
Par exemple la cration automatique dune facture, en fonction des informations qui la composent.
Macros et Modules : Ces rubriques permettent le dveloppement doutils en Visual Basic. Il est parfois ncessaire de dvelopper des modules laide de ce langage lorsque certains traitements ne peuvent tre obtenus par dautres moyens.
Cette fentre est donc le point de dpart de la base de donnes.
I.1.2 - La cration dune table Les tables sont les structures de base de toute base de donnes. Une table est constitue de deux parties :
Un en-tte prcisant un ensemble fix dattributs
Un corps form par les enregistrements contenus dans la table, un enregistrement de la table tant une information qui respecte le formalisme dict par len-tte.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
11
Ceci peut sembler compliqu mais un exemple claircira tout ceci : examinons lorganisation de la table Album :
Figure 3 : La table Album en mode Feuille de donnes
On voit sur cette figure len-tte form des attributs CodeAlbum, TitreAlbum, CodeArtiste et AnneeSortie, puis les enregistrements contenus dans la table : par exemple lalbum qui a le CodeAlbum "10000" a pour titre "EarthLing" et pour CodeArtiste "Dabow" et est sorti en "1996".
Pour mettre en place une table, il est ncessaire de dfinir les attributs de son en-tte. Le mode cration de table permet de raliser cela. Ce mode permet de choisir pour chaque champ (chaque attribut de len-tte) quel type de donnes il peut contenir (entier, date, texte), ce qui permettra lordinateur deffectuer des traitements sur les enregistrements contenus.
Figure 4 : La table Album en mode Cration de table
Access 97 permet le choix parmi 8 types de donnes diffrents : Texte, Mmo, Numrique, Date/Heure, Montaire, Numrotation automatique, Oui/Non, Objet OLE.
Il est aussi possible de crer des listes de choix qui permettent dentrer les valeurs que pourra prendre le champ. Par exemple un champ Sexe aura la liste de choix Masculin ou Fminin.
La colonne description permet dajouter un descriptif bref et pertinent permettant la bonne comprhension de linformation.
Dans le bas de la fentre se trouve un cadran permettant de prdfinir les proprits de chaque champ :
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
12
Taille du champs : permet de prciser la taille du champs.
Format : cette proprit peut permettre au crateur de la base de donnes de mettre en forme laffichage dun champ.
Masque de saisie : permet de formater les saisies cest--dire dobliger lutilisateur saisir un champ dans un format choisi. Par exemple il suffit de remplir ce champ par LL000 pour que la saisie ce fasse si le champ est de type 2 lettres suivies de 3 chiffres.
Lgende : titre de colonne affiche sur la table.
Valeur par dfaut : prcise la valeur par dfaut.
Valide si : permet dajouter un paramtre la validit du champ saisi. Par exemple si le champ est de type Date, on peut empcher une saisi antrieure la date courante.
Message erreur : permet laffichage dune boite de dialogue lorsque la saisie est incorrecte, ce qui savre trs utile pour renseigner lutilisateur quant aux proprit du champ en question.
Null interdit : autorise ou non labsence dun champ.
Chane vide autorise : autorise des chanes nulles dans le champ.
Index : permet de crer des champs indexs qui acclrerons la recherche lors dune requte.
I.1.3 - La cration des requtes avec lassistant Les requtes (ou vues dans dautres SGBD) sont des expressions spcifiant des critres de slection. Leur excution par le moteur de base de donnes permet de visualiser les enregistrements correspondants aux critres fournis.
Prenons lexemple de la requte RTitres73 dans Discothque ; son excution permet dafficher pour chaque chanson enregistre en 1973 son titre et le nom de son auteur.
Figure 5 : Rsultat de la requte RTitres73
Afin de crer ces requtes, c'est--dire de spcifier les critres de slection, Access 97 nous propose 2 modes :
Le mode QBE (Query by example) qui est un assistant graphique de cration. Cet assistant permet de dfinir quelles tables entrent en jeu dans la requte, de prciser quels champs de ces tables sont utiliss et avec quels paramtres.
Par exemple, sur la figure 6 on voit dans la colonne du milieu quon extraira de la table Album les albums sortis en 1973.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
13
Figure 6 : La requte RTitres73 cre avec l'assistant QBE
Le mode SQL (Structured Query Language) qui est une fentre permettant de saisir directement sa requte au clavier en suivant les spcifications du langage SQL1.
Figure 7 : La requte RTitres73 en mode SQL
Lors de la cration dune requte laide de lassistant QBE, Access gnre lui-mme le code SQL correspondant. Cependant, on remarque que sous Access 97 le code ainsi gnr est encombr de nombreuses parenthses inutiles (Figure 7) gnantes pour la comprhension du code.
I.1.4 - La cration dun formulaire ayant pour source une requte
Un formulaire est une interface que ladministrateur de la base de donnes cre afin de permettre lutilisateur de naviguer dans la base de donnes. Ces formulaires peuvent servir visualiser les rsultats dune requte : ce sont alors des formulaires ayant pour source une requte.
Pour raliser ce type de formulaire, il faut importer la requte renvoyant les rsultats dsirs lors de la cration du formulaire.
1 SQL est le langage standard des SGBD relationnels. Cest IBM qui a commenc le dvelopper au milieu des annes 70. Il rpond au besoin dtablir une norme pour la cration des requtes quelque soit le SGBD utilis.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
14
Pour cela il faut dabord enregistrer dans la base de donnes la requte que lon souhaite. Nous allons ensuite crer notre formulaire en mode cration ou grce lassistant de cration. Une fois le formulaire cr, il faut cliquer sur les proprits du formulaire et slectionner notre requte dans le champ Source .
Dans notre cas on slectionnera la requte RInfoAdhrents de la base de donnes Discothque afin de crer le formulaire Adhrents qui renseigne lutilisateur de la base de donnes sur les adhrents la discothque.
Figure 8 : Cration d'un formulaire ayant pour source une requte : liaison avec la requte
Figure 9 : La requte RInfoAdhrents
Dsormais le formulaire dpend de la requte RInfoAdhrents. Maintenant si lon dsire par exemple afficher sur le formulaire un champ dpendant de la requte, il faut cliquer sur les proprits du champ et slectionner la source de contrle dans longlet Donnes .
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
I.Unapfooualb
Pofo
Fig
Undapa
Il di
15
1.5 - La cration dun sous-formulaire sous-formulaire est un formulaire dans un formulaire. Le formulaire primaire est pel formulaire principal et le formulaire quil contient sous-formulaire. Les sous-rmulaires sont particulirement utiles lorsque lon veut afficher des donnes de tables de requtes qui ont une relation un--plusieurs ; cest le cas des chansons dun um.
ur crer un sous formulaire, il faut insrer dans le formulaire pre une zone de sous-rmulaire en utilisant la boite outils :
ure 11 : Boite outils dAccess 97
assistant de cration de sous-formulaire souvre alors, demandant dindiquer tout bord la provenance des donnes du sous-formulaire puis quels champs doivent rticiper au lien entre les deux formulaires.
est possible en Access 97 de crer jusqu' deux niveaux de sous-formulaires, c'est--re quun sous-formulaire peut tre formulaire principal dun second sous-formulaire.
Sous formulaire
Figure 10 : Zone de texte lie la requte
Chapitre 2 Manipulation des objets de base avec Access
Partie Access 97
16
I.1.6 - La cration des tats et des sous-tats Les sous-tats se font de manire similaire la cration de sous-formulaires en utilisant un champ slectionn partir de la boite outils et en le mettant sous la dpendance de ltat dsir.
II .. 22 -- PPoo iinn ttss dd ii ff ff iicc ii ll eess ddeess tt rraa vvaauuxx pprraa tt iiqquueess aacc ttuuee llssLors de la ralisation de ces travaux pratiques nous avons relev plusieurs points difficiles que nous avons choisi de dtailler afin de voir si le changement de version contribuait une ralisation plus aise de ces points.
Nous avons relev des difficults importantes lors de :
La dfinition des structures de table, en particulier pour tablir les masques de saisie sur les champs.
La cration dun formulaire li un sous formulaire qui reste un point difficile mme avec lutilisation de lassistant.
La mise en place des tats qui est dlicate mme avec lutilisation de lassistant.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
17
IIII -- MMiiggrraattiioonn ddeess ttrraavvaauuxx pprraattiiqquueess vveerrss AAcccceessssXXPP
Nous allons dans cette partie nous intresser tout dabord ladaptation des travaux pratiques sous Access XP afin de mettre en valeur les diffrences entre les deux versions, puis nous aborderons les nouvelles fonctionnalits disponibles dans Access XP.
II II .. 11 DD ii ff ff rreenncceess rree ll eevveess aauu ccoouu rrss ddee ll aa ddaapp ttaa tt iioo nnNous reprendrons dans cette partie le mme plan que dans la partie I.1, un plan en six points qui nous permettra une comparaison efficace des deux versions dAccess.
II.1.1 La fentre de gestion de la base de donnes Tout comme sous Access 97, il sagit du point de dpart de la base de donnes.
Figure 12 : La fentre de gestion de Discothque sous Access XP
Nous voyons sur cette fentre de nombreux menus :
Une barre verticale contenant deux sous menus : Objets et Groupes.
Une barre horizontale dont le contenu change en fonction de lobjet choisi dans la barre verticale.
Le menu Objets contient sept rubriques diffrentes :
Tables : Cette rubrique permet daccder aux tables (ou relations). Ces tables sont les structures qui renferment les donnes selon un formalisme choisi.
Par exemple, une table contiendra les noms, prnoms et date dinscriptions des membres du club X.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
18
Requtes : Cette rubrique permet de crer des requtes (ou vues dans dautres SGBD). Ces requtes sont bases sur les tables. Elles consistent en une expression de critres et dinstructions qui lorsquelles sont interprtes par le moteur de base de donnes renvoient des informations pouvant provenir de plusieurs tables.
Par exemple dans Discothque, avec une table contenant des noms dalbums et des titres de chansons, et une autre contenant les mmes noms dalbums et leurs interprtes, on peut connatre les titres des chansons interprtes par un interprte donn.
Formulaires : Cette rubrique permet daccder aux formulaires. Ces formulaires sont la partie principale de linterface utilisateur pour laccs aux donnes. Ils permettent ladministrateur de la base de donnes de crer des fentres permettant dorganiser un systme dinformation convivial et facile dutilisation.
On pense par exemple un enchanement de menus permettant daccder des traitements de donnes spcifiques.
Etats : Cette rubrique permet dimprimer ou de visualiser des donnes selon un cadre prdfini.
Par exemple la cration automatique dune facture, en fonction des informations qui la composent.
Pages : Cette rubrique permet de crer depages interactives daccs aux donnes, afin de pouvoir visualiser ces donnes sur un site Internet ou intranet.
Par exemple, les pages permettront la consultation en ligne dune facture.
Macros et Modules : Ces rubriques permettent le dveloppement doutils en Visual Basic. Il est parfois ncessaire de dvelopper des modules laide de ce langage lorsque certains traitements ne peuvent tre obtenus par dautres moyens.
La barre verticale des menus permet des actions sur les objets des rubriques prcdentes : Ouvrir, Modifier, Nouveau
Cette fentre est donc relativement similaire celle dAccess 97, hormis un changement daspect et lajout de la rubrique Pages.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
19
II.1.2 - La cration dune table
Figure 13 : La table Album en mode Cration de table
Access XP permet le choix parmi 9 types de donnes diffrents : Texte, Mmo, Numrique, Date/Heure, Montaire, Numrotation automatique, Oui/Non, Objet OLE, Lien hypertexte.
Les proprits des champs proposs sont similaires ceux trouvs dans Access 97, lexception de trois nouvelles proprits :
Compression Unicode : Dans Access 97 chaque caractre est cod sur un octet alors que dans Access 2000 et ultrieur un caractre est cod sur deux octets. Pour compens cette augmentation de taille et rtablir des performances optimales Access XP possde cette proprit qui compressera les caractres.
IME mode : permet de rentrer des donnes dans une langue asiatique.
IME Sentence Mode : permet de rentrer des donnes dans une langue asiatique.
On remarquera que ltablissement des masques de saisie qui tait un point difficile sous Access 97 est facilit sous Access XP grce la prsence dexemples aidant leur mise en place.
Comme on peut le constater, les diffrences entre Access 97 et Access XP sont minimes au niveau de la cration des tables.
II.1.3 - La cration des requtes avec lassistant Le mode QBE pour la cration des requtes est similaire celui dAccess 97.
Nous allons utiliser le mme exemple que prcdemment pour illustrer notre propos: la requte RTitres73.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
20
Figure 14 : La requte RTitres73 en mode QBE sous Access XP
Une fois la requte cre grce au mode QBE, basculons en mode SQL afin dexaminer la syntaxe du code gnr.
Figure 15 : La requte RTitres73 en mode SQL sous Access XP
On remarquera que le code SQL gnr est moins encombr de parenthses inutiles et ainsi plus comprhensible.
Cest le seul changement notable dans la cration des requtes entre Access 97 et Access XP.
II.1.4 - La cration dun formulaire ayant pour source une requte
Nous allons reprendre lexemple utilis au paragraphe I.1.4 pour illustrer la cration dun formulaire ayant pour source une requte.
Aprs avoir cr le formulaire en question, il faut le lier avec la requte en utilisant la proprit source des proprits du formulaire.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
21
Figure 16 : Cration d'un formulaire ayant pour source une requte : liaison avec la requte
Dsormais le formulaire dpend de la requte RInfoAdhrents. Maintenant si lon dsire par exemple afficher sur le formulaire un champ dpendant de la requte, il faut cliquer sur les proprits du champ et slectionner la source de contrle dans longlet Donnes .
Figure 17 : Zone de texte lie la requte
Le processus de cration dun formulaire ayant pour source une requte est donc identique sous Access 97 et XP. Ce point reste donc un point difficile sous Access XP.
II.1.5 - La cration dun sous-formulaire
La cration dun sous-formulaire li un formulaire en mode cration avec Access XP se fait de manire aise. Il faut premirement insrer un champ de sous-formulaire en le slectionnant dans la bote outil comme le montre la figure ci dessous :
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
22
Figure 18 - Slection d'un champ de sous-formulaire
Aprs insertion du champ du sous-formulaire il faut slectionner les proprits de ce champ et slectionner le formulaire que lon souhaite insrer.
Figure 19 - Proprits d'un sous-formulaire
Puis pour modifier les champs pre fils, il faut slectionner les proprits du sous-formulaire puis choisir soit le champs fils soit le champ pre pour que la bote de dialogue qui dite les liens des champs des sous-formulaires apparaisse comme le montre la figure ci dessous. Puis il ne reste qu choisir les champs que lon dsire mettre en relation.
Figure 20 - Editeur de liens des champs d'un sous-formulaire
Remarque : un formulaire principal peut contenir autant de sous-formulaires que lon souhaite condition qu'ils soient placs dans le formulaire principal. Par contre il est
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
23
possible dimbriquer sept sous-formulaires les uns dans les autres, contre deux en Access 97.
II.1.6 - La cration des tats et des sous-tats Tout comme sous Access 97, la cration des tats et sous-tats est similaire celle des formulaires et sous-formulaires. Lassistant de cration des tats a t amlior sous Access XP rendant leur mise en place plus aise.
II II .. 22 -- NNoouuvvee aauuttss ddee AAccccee ssss XXPPCette partie va nous permettre de prsenter les lments introduits par Microsoft dans le logiciel Access XP qui nexistaient pas dans Access 97. Nous avons relev trois innovations majeures dans Access XP.
II.2.1 - Liens hypertextes Les liens hypertextes sont une source importante dinteractivit pour lutilisateur. Sous Access les liens hypertextes ont t largement tudis pour rpondre aux attentes du crateur de la base. Ainsi il est possible de faire des liens hypertextes vers tous lments de la base courante (tables, requtes, formulaires, tats, modules ), dune base extrieure mais aussi vers des documents offices et aussi vers des sites Internet et des adresses Email. De plus leurs mises en place sont aises : il suffit de cliquer sur longlet Insertion et slectionner Lien Hypertexte . Une boite de dialogue saffiche et nous guide dans le choix de la direction.
Mais il est galement possible de faire des liens sur des lments dun formulaire, dun tat, dune table (zone de texte, champ). Pour cela il ne faut pas omettre dactiver la proprit Is Hyperlink comme le montre la figure ci-dessous :
Figure 21 : Liens hypertextes
Il est noter que les liens crs sur un tat ne sont pas visibles sous Access mais le sont sous dautres logiciels Office (Word, Excel) aprs exportation.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
24
II.2.2 - Publication de page WEB Une des grandes nouveauts de Access XP par rapport Access 97 est la publication de pages Web dynamiques ou plutt devrait on dire pages daccs aux donnes . Ces pages sont des pages HTML lies aux donnes, visualisables l'aide de Microsoft Internet Explorer version 5 ou ultrieure. On peut galement distribuer par messagerie lectronique des pages de ce type contenant des donnes statiques ou dynamiques. Les pages d'accs aux donnes sont en gnral destines une utilisation sur intranet, mais il est galement possible de les dployer sur Internet, en tenant compte toutefois de certaines considrations. Ainsi les pages daccs aux donnes offrent les mmes possibilits quun formulaire ou un tat : on peut consulter, modifier, insrer des donnes dans une base de donnes installe sur le serveur. Nanmoins, on peut galement utiliser une page en dehors d'une base de donnes Microsoft Access, de manire ce que les utilisateurs puissent mettre jour ou afficher des donnes sur Internet ou un rseau intranet.
Attention : les pages daccs aux donnes ne sont pas enregistres dans la base mais dans un dossier annexe dont on spcifie lemplacement. Mais les pages restent accessible partir de la base car Access cre automatiquement un lien dans la fentre de gestion. Il ne faut surtout pas supprimer ce lien si lon dsire garder laccs cette page. Malheureusement le chemin daccs ces pages est absolu et non relatif.
II.2.2.1 Les diffrentes manires de crer une page daccs aux donnes
Cration en mode cration :
Pour crer une page daccs aux donnes en mode cration, il faut cliquer sur pages dans la fentre de gestion de la base de donnes et slectionner Crer une page daccs aux donnes en mode cration comme le montre la figure n 12 :
Figure 22 - Cration d'une page d'accs aux donnes
Apparat alors une page daccs aux donnes vide, une bote outils et une fentre contenant tous les champs de la base courante :
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
25
Figure 23 - Interface pour la cration d'une page d'accs aux donnes
Cration partir dun objet existant :
Mais avec la version dAccess 2002 il est dsormais possible de crer une page daccs aux donnes partir dun objet existant. Il suffit denregistrer par exemple un formulaire au format page daccs aux donnes en cliquant sur longlet Fichier puis Enregistrer sous :
Figure 24 - Fentre d'enregistrement
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
26
On obtient une page HTML de ce type :
Figure 25 - Aperu d'une page d'accs au donnes avec Internet Explorer
Pour la suite de ltude des pages daccs aux donnes, nous traiterons le cas en mode cration.
II.2.2.2 Etude des diffrentes fentres disponibles lors de la cration dune page daccs aux donnes en mode cration :
La bote outil :
On remarque que la bote outil est plus fournie que celle dun formulaire. Voici les options supplmentaires :
Etendue : permet un autre mode daffichage dun texte.
Texte dfilant : permet dinsrer un texte dfilant sur la page.
Dvelopper : permet linsertion dune image.
Dplacement entre les enregistrements : permet dinsrer une barre doutils qui manipule les enregistrements.
Tableau crois dynamique office : permet linsertion dun tableau crois dynamique.
Graphique office : permet linsertion dun graphique Office.
Feuille de calcul Office : permet linsertion dune feuille de calcul office.
Image - Lien hypertexte : permet dinsrer une image qui sera ractive et fonctionnera comme un lien hypertexte.
Film : permet dinsrer une vido sur la page.
La plupart de ces options ont pour but dagrmenter la page en dcors mais galement en utilisation. Ces fonctions facilitent la transformation dune page daccs aux donnes en une vritable page HTML la fois pratique et interactive.
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
27
La liste des champs :
La liste des champs est simplement un explorateur de tous les champs disponibles dans la base courante. Il suffit de choisir le champ dsir et de le glisser sur la page daccs aux donnes en construction pour ly insrer.
La page daccs aux donnes :
Le page daccs aux donnes est compos de diffrentes parties :
Le corps : le corps constitue la surface de cration de base d'une page d'accs aux donnes sur laquelle on peut insrer une infinit de section ainsi que dagrments tel quun texte dfilant, une image, une vido
Les sections : elles sont utilises pour afficher du texte, des donnes d'une base de donnes et des barres d'outils.
En-tte et pied de groupe : utiliss pour afficher des donnes et calculer des valeurs.
Dplacement entre les enregistrements Utilise pour afficher le contrle dplacement entre les enregistrements pour le niveau de regroupement. Une section de dplacement entre les enregistrements d'un groupe apparat aprs la section d'en-tte de groupe. Il est impossible de placer des contrles dpendants dans une section de dplacement entre les enregistrements.
Lgende : elle permet laffichage des lgendes de zones de texte et autres contrles. Elle apparat juste devant l'en-tte de groupe.
Chaque niveau de regroupement d'une page d'accs aux donnes possde une source d'enregistrements. Le nom de cette dernire est affich dans la barre de section pour chaque section utilise pour un niveau de regroupement.
II.2.2.3 - Diffrents types de Page d'accs aux donnes
tats interactifs
Ce type de page d'accs aux donnes est souvent utilis pour consolider et grouper des informations stockes dans la base de donnes, puis pour publier des synthses des donnes. Bien que la page d'accs aux donnes puisse galement contenir des boutons de barre d'outils pour le tri et le filtrage des donnes, il n'est pas possible de modifier des donnes sur ce type de page.
Saisie de donnes
Ce type de page d'accs aux donnes est utilis pour afficher, ajouter et modifier des tats.
Analyse des donnes
Ce type de page d'accs aux donnes peut comprendre une liste de tableau crois dynamique, semblable un formulaire de tableau crois dynamique ACCESS ou un rapport de tableau crois dynamique EXCEL, qui permet de rorganiser les donnes afin de les analyser de diverses manires. Cette page pourrait contenir un graphique qui peut tre utiliser pour analyser des tendances, dtecter des modles et comparer des donnes dans la base de donnes. Elle pourrait galement contenir une feuille de calcul
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
28
dans laquelle des donnes peuvent tre entrer et modifier, et utiliser des formules de calcul comme dans EXCEL.
II.2.2.4 - Utilisation des Pages d'accs aux donnes
Une page d'accs aux donnes est directement connecte une base de donnes. Lorsque les utilisateurs affichent la page d'accs aux donnes dans Internet Explorer, ils affichent leur propre copie de la page.
Cela signifie que tout filtrage, tri et autre modification qu'il apportent la manire dont les donnes s'affichent (notamment les modifications qu'ils apportent dans un liste de tableau crois dynamique ou une feuille de calcul) n'affectent que leur copie de la page d'accs aux donnes.
Toutefois, les modifications qu'ils apportent aux donnes elles-mmes (telles que la modification de certaines valeurs et l'ajout ou la suppression de donnes) sont stockes dans la base de donnes sous-jacente et sont donc accessibles toute personne consultant la base de donnes.
Mais les pages daccs aux donnes peuvent galement tre utilises lintrieur
dune base de donnes en tant que formulaire ou tat. Le choix rside dans les tches que le concepteur veut raliser. Voici les avantages des pages daccs aux donnes par rapport aux tats :
Les pages dpendantes de donnes affichent les donnes en cours car elles sont connectes une base de donnes.
Les pages sont interactives. Les utilisateurs peuvent filtrer, trier et afficher uniquement les enregistrements qui les intressent.
Les pages peuvent tre diffuses lectroniquement par courrier lectronique. Les destinataires voient des donnes actualises chaque fois qu'ils ouvrent le message.
II.2.3 - Prise en charge XML
Access suit la vague dInternet. Pour la premire fois, Access XP prend en charge le format de fichier XML (eXtensible Markup Language).
XML est un langage de description qui permet de dfinir dautres langages de description de page. Un des formats, sappuyant sur XML, est SVG, un format vectoriel qui joue un rle prpondrant sur Internet.
XML peut tre utilis comme format de fichier universel. Il suffit denregistrer les donnes, correctement structures, et XML soccupe de leur description.
Les donnes XML offrent un norme avantage : elles sont indpendantes de la plate-forme, ce qui permet de les lire sous Windows mais aussi sous dautres systmes tels que Linux, MacOs ou BeOs.
Nous allons tudier lexportation au format XML de la table Album de Discothque :
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
29
Figure 26 : La table Album en mode feuille de donnes
Une fois la table Album ouverte, il faut choisir "Exporter" dans le menu Fichier. La fentre suivante souvre alors :
Figure 27 : Fentre dexportation dAccess XP
Il faut ensuite choisir "Documents XML" dans la zone Type de fichier, puis "Exporter tout"
Figure 28 : Fentre dexportation XML
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
30
Par dfaut lexportation cre deux fichiers :
Un fichier XML contenant les donnes de la table lintrieur des balises XML
Un fichier XSD contenant les dfinitions des balises XML
Il est nanmoins possible dinclure les dfinitions des balises dans le fichier XML grce au bouton "Avanc" qui ouvre la fentre suivante :
Figure 29 : Proprits de lexportation XML
On choisira alors dans longlet "Schma" le bouton "Imbriquer le schma dans le document XML export".
On obtient alors le fichier XML suivant, dcoup ici pour des raisons de lisibilit en une premire partie de dfinition des balises (document de schma) et une seconde partie renfermant les donnes au sein des balises prdfinies (document de donnes).
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
31
Figure 30 : Premire partie du fichier XML gnr : Dfinition des balises
Chapitre 2 Manipulation des objets de base avec Access
Partie Access XP
32
Figure 31 : Seconde partie du fichier XML gnr : Donnes de la table Album
Chapitre 3 Le langage de programmation de Access : VBA
33
CChhaappiittrree 33 -- LLee llaannggaaggee ddee pprrooggrraammmmaattiioonn ddeeAAcccceessss :: VVBBAA
Aprs avoir abord les diffrences et nouveauts apportes par un passage Access XP dans le cadre de linterface normale de travail dAccess, nous allons maintenant tudier les changements dans linterface de programmation dAccess : VBA.
II -- IInnttrroodduuccttiioonnLe VBA (Visual Basic for Applications) est la rponse de Microsoft aux besoins des dveloppeurs de base de donnes en terme de programmation.
Si les assistants prsents prcdemment permettent au plus grand nombre de crer des applications simples de manire intuitive, ils ne permettent pas de raliser certaines oprations plus complexes. Cest pourquoi les dveloppeurs dapplications de base de donnes professionnelles ont besoin dune autre interface, une interface de programmation brute leur permettant deffectuer nimporte quel traitement : cest le VBA dAccess.
Grce au VBA dans Access, on peut totalement contrler sa base de donnes et effectuer des oprations complexes, comme par exemple recopier le contenu dune table dans une autre base afin den archiver les donnes. Mais cest surtout dans la cration de linterface entre lutilisateur et la base de donnes, c'est--dire principalement au travers des formulaires, que le VBA est le plus utilis. Il permet par exemple de crer des formulaires permettant de manipuler les donnes contenues dans le systme dinformation.
Afin de pouvoir crer de tels formulaires, le dveloppeur a besoin daccder aux enregistrements contenus dans le systme au travers du VBA. Pour ce faire le langage sappuie sur des bibliothques qui sont un ensemble de mthodes daccs aux donnes, de dfinition de structure et de gestion de scurit.
Avant Access 2000, Microsoft avait dvelopp un modle objet daccs aux donnes baptis DAO (Data Access Objects). Ce modle tait bas sur les pilotes ODBC2 afin daccder aux sources de donnes.
Depuis Access 2000, Microsoft dveloppe un nouveau modle objet standard daccs aux donnes : ADO (ActiveX Data Objects). Ce modle est bas sur OLE DB (Object Linking and Embedding DataBase).
Chaque application manipule des documents (au sens large : texte, images, sons, etc.) qui sont des collections d'objets. Une application doit pouvoir charger des objets, les afficher, en permettre la modification... Si l'objet n'a pas une structure que l'application peut traiter en natif, le systme d'exploitation charge l'application associe cet objet, l'intrieur de la premire application. C'est la technologie OLE (Object Linking and Embedding). OLE DB est une extension de cette technologie aux bases de donnes. Quand Access rencontre une base de donnes incompatible, il utilise lapplication associe la base de donnes afin de pouvoir utiliser ce quelle contient. Dans un certain sens, un fournisseur OLE DB est similaire un pilote ODBC qui fournit un mcanisme uniforme d'accs des donnes relationnelles. Les fournisseurs OLE DB fournissent non seulement un
2 ODBC signifie Open Database Connectivity. Il s'agit d'un ensemble de fonctions de haut niveau qui permettent de travailler avec une base de donnes relationnelle au travers dune interface identique quelque soit le type de cette base.
Chapitre 3 Le langage de programmation de Access : VBA
34
mcanisme uniforme d'accs aux donnes relationnelles, mais galement aux donnes non relationnelles.
ADO est une couche supplmentaire au dessus de OLE DB, celui-ci tant jug encore trop complexe pour tre utilis par les dveloppeurs. ADO est linterface de programmation dOLE DB.
Cette migration vers ADO a t dcide par Microsoft car DAO et ODBC ne permettent daccder qu des donnes contenues dans des bases de donnes Microsoft Access et dans certains autres types spcifiques (ISAM par exemple). De plus, le modle objet ADO est compos de moins d'objets et plus facile utiliser.
Figure 32 : Mcanisme de fonctionnement d'OLE DB
Le but de ADO (et de OLE DB, sa couche sous-jacente) est de permettre terme un accs uniforme aux donnes contenues dans des fichiers crs avec nimporte quel outil de traitement de donnes.
II .. 11 -- CCoonnss qquuee nncceess ddaannss ll uu tt ii ll ii ssaa tt iioo nn ddee llaa ffeenn tt rree VVBBAAddAAcccc eessss ::
Comme nous lavons vu prcdemment, Access utilise des bibliothques pour interprter les instructions contenues dans le code VBA. Il est donc ncessaire dindiquer Access quelle bibliothque il doit utiliser.
Cest le but de la fentre Rfrences :
Chapitre 3 Le langage de programmation de Access : VBA
35
Figure 33 : La fentre Rfrences de Visual Basic
Cette fentre est situe dans le menu OutilsRfrences de la fentre Visual Basic de Access XP. Pour accder cette fentre Visual Basic, il faut ouvrir depuis la fentre principale dAccess un module de code ou la partie de code dun formulaire. La fentre qui souvre alors est la fentre Microsoft Visual Basic.
Elle permet dindiquer Access XP quelle bibliothque utiliser lorsquil doit interprter du code VBA. En effet Access, au travers du VBA sappuie sur ces bibliothques pour accder aux donnes et les traiter.
Afin de permettre aux bases de donnes contenant des modules crits en DAO de fonctionner, Microsoft a gard dans la version XP de Access la bibliothque DAO. Dans ces circonstances, il est ncessaire de choisir la rfrence :
[Microsoft DAO 3.6 Object Library]
Si lon souhaite dvelopper des modules en ADO, il est ncessaire de choisir les rfrences :
[Microsoft ActiveX Data Objects 2.7 Library]3
[Microsoft ADO Ext. 2.7 for DDL And Security]
[Microsoft Jet and Replication Objects 2.6 Library] (Accessoire)
Nous verrons bientt quels sont les rles de ces diffrents composants.
Attention lordre des bibliothques dans cette fentre rfrences En effet, lorsque Access aura besoin dune bibliothque pour interprter une mthode dun objet par exemple, il utilisera de prfrence les bibliothques situes en haut de la liste. Par exemple, lobjet Recordset est dfini en DAO et aussi en ADO. Ainsi, en fonction de la position dans la bibliothque correspondante, le recordset cr par le code suivant : Dim record As Recordset sera soit un recordset ADO (ce sera le
3 Access XP contient les rfrences ADO 2.0 2.7. Afin de pouvoir utiliser tous les exemples de cet expos nous vous recommandons de choisir la rfrence ADO 2.7.
Chapitre 3 Le langage de programmation de Access : VBA
36
cas avec la liste de rfrences ci-dessus) ou un recordset DAO, deux objets diffrents nayant pas les mmes mthodes ou fonctions.
Dans un souci de scurit et de stabilit du code dvelopp, nous recommandons de spcifier le type de modle utilis afin dviter des anomalies de fonctionnement provenant de lordre de priorit des rfrences. Nous crirons ainsi lexemple prcdent Dim record As ADODB.Recordset ou Dim record As DAO.Recordset en fonction du cas choisi.
Pour la mme raison, il est aussi dconseill de cocher la fois des rfrences DAO et ADO dans la fentre Rfrences.
II .. 22 -- UU tt ii ll iissaa tt iioonn dd ee ll aa iidd ee dd ee VVBBAAAfin de nous aider au dveloppement dapplications en VBA, Microsoft met notre disposition une aide trs fournie. Cependant, cette aide est constitue de mises jour successives depuis Access 97, et on y trouve parfois des redondances dinformations voire des informations obsoltes.
Pour accder cette aide, il faut ouvrir depuis la fentre principale dAccess un module ou la partie de code dun formulaire. Une seconde fentre souvre alors intitule "Microsoft Visual Basic" dans lequel se trouve le code de notre application.
Une fois dans cette fentre, une pression sur la touche F1 permet douvrir laide de Visual Basic.
Afin de permettre une navigation aise, nous allons donner ci-dessous quelques points dentre dans cette aide :
Pour accder au modle objet ADO, qui permet par la suite de retrouver chaque mthode et proprit des objets ADO, on tapera dans la zone "aide intuitive" les mots cls : "modle objet ADO" (on fera de mme pour le modle objet ADOX).
Dune manire gnrale, utiliser le mot-cl Nouveauts suivi du modle objet souhait (ADO, ADOX, ADO MD) permet daccder une page sommaire qui contient des liens vers des exemples de code en VBA.
Pour rechercher un objet, une mthode ou une proprit spcifique, on spcifiera tout dabord ADO puis la mthode ou proprit rechercher, par exemple "ADO find". Le fait de spcifier tout dabord ADO permet de navoir des rsultats ne contenant que les lments ADO et non un mlange ADO/DAO qui sme vite la confusion. Par exemple si on tape seulement "find", les rsultats renvoys contiendront FindFirst, FindNext qui sont des mthodes DAO obsoltes pour le dveloppeur ADO.
Cette coexistence des rfrences ADO et DAO est lorigine de nombreuses confusions. Nous vous conseillons donc de toujours bien vrifier que les rsultats rendus correspondent bien la bibliothque que vous utilisez pour votre dveloppement.
IIII -- PPrrsseennttaattiioonn ddee AADDOONous allons dtailler dans cette partie le modle daccs aux donnes ADO.
Pour cela, nous ne nous appuierons pas sur une comparaison stricte entre les deux versions comme dans le chapitre II car cela napporterait pas dlments significatifs.
Chapitre 3 Le langage de programmation de Access : VBA
37
Nous tablirons cependant des correspondances4 lorsquelles seront ncessaires afin que le dveloppeur habitu lenvironnement de programmation dAccess 97 puisse facilement crer ses applications en ADO.
Afin de proposer les mmes fonctionnalits de manipulation des donnes que DAO, ADO contient plusieurs sous-modles objets :
ADO DB : Le modle ADO DB (ou ADO par abus de langage) permet lapplication client daccder et de manipuler les donnes au travers dune interface OLE. ADO DB regroupe les objets permettant de se connecter une source de donnes, de lire, dajouter ou de mettre jour les donnes.
ADOX (Microsoft ADO Extensions for DDL and Security) : Le modle ADOX regroupe des objets permettant la dfinition des structures de donnes (tel tables, vues ou index) et ladministration de la scurit et des permissions daccs aux diffrents utilisateurs et groupes dutilisateurs.
ADO MD (MultiDimensionnal) : Le modle ADO MD permet la manipulation de source de donnes multidimensionnelles. Nous naborderons pas cette partie trs technique dans cet expos.
RDS (Remote Data Service) : RDS est un dispositif dADO qui permet de transfrer des donnes dun serveur vers une application client, de manipuler les donnes depuis le client puis de retourner les modifications vers le serveur. Nous ne dtaillerons pas ce modle qui est spcifique lenvironnement client serveur dans cet expos.
JRO (Microsoft Jet and Replication Objects) : Le modle JRO regroupe les objets, proprits et mthodes pour crer, modifier et synchroniser des rpliques de base de donnes. A la diffrence de ADO et ADOX, le modle JRO ne peut tre utilis quavec des sources de donnes Microsoft Jet Database. Nous ne nous intresserons pas ce modle dans cet expos, car il na pas dutilit pour les traitements que nous effectuerons.
Le moteur de base de donnes Microsoft Jet ntant plus dvelopp aujourdhui par Microsoft, il en est de mme du modle JRO.
11 -- MMoodd llee oobb jjee tt AADDOO ::Abordons dsormais ltude des objets daccs aux donnes composant le modle ADO5.
Il existe cinq objets diffrents dans le modle objet ADO de la rfrence ADO 2.7.
Lobjet Connection permet d'tablir les connexions entre le client et la source de donnes.
4 Ces correspondances entre les mthodes DAO et ADO sont dtailles sous forme dun tableau dans lannexe A : "DAO vers ADO Aide mmoire".
5 Ce modle objet ADO est dtaill dans lannexe B :"Modle objet ADO dtaill" la fin de ce rapport.
Chapitre 3 Le langage de programmation de Access : VBA
38
Lobjet Command permet de raliser des commandes, telles que des requtes SQL ou des mises jour d'une base.
Lobjet Recordset permet de voir et de manipuler les rsultats d'une requte
Lobjet Record reprsente une colonne de donnes. Il est conceptuellement similaire un recordset une seule colonne.
Lobjet Stream reprsente un flux de donnes binaires ou de texte.
22 MMoodd llee oo bbjjee tt AADDOOXXCe modle objet ADOX permet de complter le prcdent (ADO).
Il permet entre autre de dfinir les schmas de structure de la base de donnes et de fixer des autorisations daccs la base de donnes en fonction dun utilisateur particulier ou dun groupe dutilisateurs.
Lobjet Catalog contient des collections qui dcrivent le schma dune base de donnes.
Lobjet Table reprsente une table, incluant les colonnes, les index et les cls quelle contient.
Chapitre 3 Le langage de programmation de Access : VBA
39
Lobjet Index reprsente un index dune table de la base de donnes.
Lobjet Key reprsente un champ cl primaire, trangre ou unique dune table de la base de donnes.
Lobjet Column reprsente une colonne dune table, dun index ou dune cl.
Lobjet Group reprsente un groupe dutilisateurs avec ses permissions daccs lintrieur dune base de donnes scurise.
Lobjet User reprsente un compte dutilisateur avec ses permissions daccs lintrieur dune base de donnes scurise.
Lobjet Procedure reprsente une procdure stocke.
Lobjet View reprsente un ensemble denregistrements filtrs ou une table virtuelle.
Chacun des objets Table, Index et Colonnes a une collection standard de Proprits.
IIIIII -- UUttiilliisseerr AADDOO aavveecc VVBBAAUne fois ces prcisions sur les modles daccs aux donnes mis en place par Access XP effectues, nous allons dans cette partie nous attacher lutilisation lintrieur de nos modules VBA de ces objets.
Afin dillustrer lemploi de ces objets, et de leurs mthodes et proprits, abords dans cette partie, nous essaierons dutiliser deux sortes dexemples :
un exemple propre chaque mthode explique car si elle apparat dans cette partie cest quelle nous semblait importante et quelle a donc besoin dtre illustre
un exemple tir de la cration de la base de donnes Discothque, support des travaux pratiques, lorsque lutilisation de cette mthode est requise.
II II II .. 11 CCoonnnn eecctt iioo nn ((AADD OO)) ee tt CCaa ttaa lloogg ((AADD OOXX ))Lobjet connection est le premier objet manipul par le dveloppeur puisquil permet de se connecter une source de donnes.
III.1.1 - Ouvrir une connexion une base de donnes existante En DAO pour ouvrir une connexion une base de donnes sous Access 97 on utilisait DBEngine.OpenDatabase (). En ADO on doit crer une connexion cette base de donnes ou toute autre source de donnes. Cest pourquoi il existe un objet connection, qui permet de dfinir une session pour un utilisateur sur une source de donnes spcifique. Cet objet connection doit tre dfini puis cr :
Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection
Chapitre 3 Le langage de programmation de Access : VBA
40
Il doit ensuite tre affect. On utilise la mthode Open de Connection :
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=.\NorthWind.mdb;"
Cet exemple passe deux paramtres la mthode Open :
Le premier est une chane contenant le driver OLE DB utiliser pour louverture, soit : "Provider=Microsoft.Jet.OLEDB.4.0;" avec des bases de donnes Access. La configuration de cette chane peut aussi tre effectue par la proprit Connection String.
Le second est aussi une chane contenant le chemin vers la base ouvrir, dans cet exemple Microsoft : "Data Source=.\NorthWind.mdb;"
III.1.2 - Accder la base de donnes courante Lorsque du dveloppement de modules en VB, on a souvent besoin daccder la base de donnes ouverte sous Access, support de notre code. Afin de simplifier cette ouverture frquente, on utilise la proprit AccessConnection de lobjet CurrentProject pour obtenir une connexion la base de donnes courante.
Exemple : Cration dun accs la base de donnes courante :
Sub ADOAcceder_a_la_BD_Courante () Dim cnn As New ADODB.Connection Set cnn = CurrentProject.AccessConnection
End Sub Au sein de nimporte quelle fonction dans Discothque lorsque nous voudrons crer une connexion Discothque, nous emploierons :
Dim connexion As New ADODB.Connection Set connexion = CurrentProject.AccessConnection
III.1.3 - Dfinition du schma de la base de donnes Pour crer proprement dit une nouvelle base de donnes on utilise la mthode Create de lobjet Catalog dADOX.
Sub ADOCreationDeBD() Dim cat As New ADOX.Catalog cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=.\New.mdb;"
End Sub
Pour crer une nouvelle table dans la base de donnes couramment ouverte, on utilise lobjet Catalog de ADOX. Lobjet Catalog correspond lobjet Database en DAO.
Sub ADOCreationDeTable() Dim cat As New ADOX.Catalog Dim table As New ADOX.Table
' Ouvrir le catalogue cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\New.mdb;"
Chapitre 3 Le langage de programmation de Access : VBA
41
' Crer un nouvel objet Table With table
.Name = "Contacts"
.Columns.Append "ContactName", adVarWChar
.Columns.Append "Phone", adVarWChar
.Columns("Notes").Attributes = adColNullable End With
' Ajouter la nouvelle table la base de donnes cat.Tables.Append table
' Fermeture des connexions Set cat = Nothing
End Sub Il est ncessaire de crer les champs et de les ajouter la nouvelle table avant dajouter la nouvelle table la collection de tables de lobjet Catalog.
Les noms des types de donnes sont diffrents en ADO. Voici les correspondances avec les types de donnes DAO:
Types de
donnes DAO Types de donnes
ADO correspondant
DbBinary adBinary DbBoolean adBoolean DbByte adUnsignedTinyInt DbCurrency adCurrency DbDate adDate DbDecimal adNumeric DbDouble adDouble dbGUID adGUID dbInteger adSmallInt dbLong adInteger dbLongBinary adLongVarBinary dbMemo adLongVarWChar dbSingle adSingle dbText adVarWChar
II II II .. 22 RReeccoo rrddssee ttLes recordsets permettent daccder et de manipuler les enregistrements.
III.2.1 - Ouvrir un recordset avec ADO Comme en DAO, il existe de nombreux moyens douvrir un recordset :
Avec la mthode Execute de lobjet Connection
Avec la mthode Execute de lobjet Command
Avec la mthode Open de lobjet Recordset
Chapitre 3 Le langage de programmation de Access : VBA
42
Il existe de nombreux paramtres permettant de spcifier le type de recordset que lon souhaite ainsi crer.
Les deux tableaux suivants font la correspondance entre les anciennes mthodes de spcification en DAO et celles utilises en ADO, le premier sattachant aux types de recordset crer et le second aux proprits de verrouillage du recordset :
Types de recordset DAO Proprit ou paramtres du recordset ADO correspondant
DbOpenDynaset CursorType=adOpenDynamic
DbOpenSnapshot CursorType=adOpenStatic
DbOpenForwardOnly CursorType=adOpenForwardOnly
DbOpenTable CursorType=adOpenDynamic, Options=adCmdTableDirect
Valeurs LockType du recordset DAO Valeur LockType du Recordset ADO correspondant
DbReadOnly adLockReadOnly
DbPessimistic adLockPessimistic
DbOptimistic adLockOptimistic
Exemple : Ouverture dun recordset seulement vers lavant, en lecture seule:
Sub ADOOuvrirRecordset()
Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim fld As ADODB.Field
' Ouvrir la connexion cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\NorthWind.mdb;"
' Ouverture du recordset avec dfilement en avant et en lecture seule rst.Open _
"SELECT * FROM Customers WHERE Region = 'WA'", _ cnn, adOpenForwardOnly, adLockReadOnly
' Fermer le recordset rst.Close
End Sub
Dans Discothque :
record.Open "SELECT * FROM Code", connexion, adOpenKeyset, adLockOptimistic
Chapitre 3 Le langage de programmation de Access : VBA
43
III.2.2 - Dterminer la position courante dun recordset Tout comme en DAO, il existe en ADO la proprit AbsolutePosition qui permet de connatre le numro du record sur lequel pointe le curseur en cours. Cependant, il y a deux points importants retenir :
Tout dabord, le comptage grce la proprit AbsolutePosition en ADO commence un ; cest dire que le premier enregistrement porte le numro un, tandis quen DAO le premier enregistrement portait le numro zro.
Ensuite, il est ncessaire de configurer la proprit CursorLocation adUseClient. En effet, si la proprit nest pas spcifie ou est fixe adUseServer, la proprit AbsolutePosition renverra adUnknown (-1), car Jet ne peut retrouver linformation avec cette proprit.
ADO propose aussi une proprit PercentPosition qui retourne un pourcentage reprsentant la position approximative du record lintrieur du Recordset.
III.2.3 - Trouver des enregistrements dans un recordset ADO possde deux mcanismes comme DAO pour rechercher un Recordset : Find et Seek.
Si Seek est en gnral plus performant, il ne peut tre utilis quavec des objets Recordset qui ont des Index associs. De plus, pour les bases de donnes Microsoft Jet, seuls les objets Recordsets bass sur une table avec un index supportent Seek.
III.2.3.1 - La mthode Find
DAO inclut quatre mthodes : FindFirst, FindLast, FindNext, FindPrevious.En ADO il existe une seule mhode : Find. La recherche dbute toujours partir de la position courante dans le recordset. La mthode Find accepte des paramtres qui permettent de spcifier le sens de la recherche (en avant, en arrire) ainsi quune adresse depuis le record courant pour spcifier o commencer la recherche.
Mthode DAO Find ADO avec SkipRows Direction de la recherche ADO
FindFirst 0 adSearchForward (Si la position courante est diffrente du premier record, utiliser MoveFirst avant Find)
FindLast 0 adSearchBackward (Si la position courante est diffrente du premier record, utiliser MoveLast avant Find)
FindNext 1 adSearchForward
FindPrevious 1 adSearchBackward
Exemple : Trouver un record en ADO en spcifiant un critre de recherche:
Sub ADOFindRecord()
Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset
Chapitre 3 Le langage de programmation de Access : VBA
44
' Ouvrir la connexion cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\NorthWind.mdb;"
' Ouvrir le recordset rst.Open "Clients", cnn, adOpenKeyset, adLockOptimistic
' Trouver le premier client dont le pays est USA rst.Find "Pays='USA'"
' Fermer le recordset rst.Close
End Sub Remarque : En ADO, le critre de recherche spcifi dans la commande Find ne peut pas porter sur plus dune colonne.
Tandis quen DAO on pouvait effectuer des recherches sur de multiples colonnes en les spcifiant dans le critre (le paramtre critre tait considr come une clause WHERE en SQL), il faut en ADO utiliser la proprit Filter afin de crer une vue sur le Recordset ne contenant que les records correspondants au critre.
Lexemple de Discothque ou lon utilise la proprit Filter (dtaille plus loin) pour crer un recordset utilisable avec Find :
record.Filter = "[Code] = '" & UserType & "'"and "[codeAdherent] = '" & passwd & "' record.Find "CodeAdherent= '" & passwd & "'" Par ailleurs, DAO et ADO ont un comportement diffrent dans le cas o Find ne trouve pas de correspondance. En DAO, la proprit NoMatch est mise True et le record courant est non-dfini. En ADO, si aucune correspondance nest trouve, le record courant est positionn soit :
Avant le dbut du Recordset si on cherche en avant (adSearchForward)
Aprs la fin du Recordset si on cherche en arrire (adSearchBackward).
Il conviendra donc dutiliser les proprits
EOF avec adSearchForward
BOF avec adSearchBackward
afin de dterminer si un record correspondant a t trouv.
Remarque : ADO ne reconnat pas loprateur Is, ni Is Not. ADO utilise les oprateurs = et pour remplacer les oprateurs prcdents.
Exemple :
DAO: "ColumnName Is Null" "ColumnName Is Not Null"
ADO: "ColumnName = Null"
Chapitre 3 Le langage de programmation de Access : VBA
45
"ColumnName Null"
III.2.3.2 - La mthode Seek
Exemple : Le code suivant prsente une recheche avec Seek en ADO
Sub ADOSeekRecord() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset
' Ouvrir la connexion cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\NorthWind.mdb;"
' Ouvrir le recordset rst.Open "Order Details", cnn, adOpenKeyset, adLockReadOnly, _
adCmdTableDirect
' Selectionner lindex utilis pour trier les donnes dans le recordset rst.Index = "PrimaryKey"
' Recherche de la commande correspondante aux critres rst.Seek Array(10255, 16), adSeekFirstEQ
' Fermer le recordset rst.Close
End Sub
La mthode Seek base sa recherche sur un index.Il est donc important de spcifier quel index le moteur de base de donnes doit utiliser pour la recherche. Par dfaut, Microsoft Jet utilise la cl primaire de la relation considre.
Dans lexemple, la fonction Array (appartenant la bibliothque Visual Basic For Applications) est utilise pour spcifier un critre de recherche sur plus dune colonne (recherche multicritres). Si la recherche ne porte que sur une seule colonne, il nest pas ncessaire dutiliser Array.
Pour dterminer si un record correspondant au critre a t trouv, il faut utiliser les proprits de position du record courant EOF et BOF comme avec la mthode Find.
Remarque : La mthode Seek ne fonctionne correctement quavec des bases de donnes Microsoft Jet 4.0. Tous les autres formats entraneront une erreur : run-time error . Il est possible de tester le recordset ouvert grce la mthode Supports de lobjet Recordset, afin de dterminer si la mthode Seek est disponible ou non pour le recordset courant.
Chapitre 3 Le langage de programmation de Access : VBA
46
III.2.4 - Filtrer et Trier les donnes dans un recordset ADO aborde ces fonctions sur les Recordset dune manire diffrente que DAO. Alors quen DAO ces proprits Filter et Sort sappliquaient aux recordsets ouverts aprs leur dfinition, ADO applique ces proprits au recordset duquel on appelle ces proprits.
III.2.4.1 - Utiliser la proprit Filter (Filtre):
Exemple : Filtrer un recordset en fonction de critres dfinis dans une clause SQL
Sub ADOFilterRecordset()
Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset
' Ouvrir la connexion cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\NorthWind.mdb;"
' Ouvrir le recordset rst.Open "Customers", cnn, adOpenKeyset, adLockOptimistic
' Filtrer le recordset pour avoir uniquement les clients amricains ayant un fax rst.Filter = "Country='USA' And Fax Null" Debug.Print rst.Fields("CustomerId").Value
' Fermer le recordset rst.Close
End Sub La proprit Filter dADO permet de crer une vue temporaire qui peut tre utilise pour localiser un record, ou un ensemble de records, correspondants au(x) critre(s) de recherche au sein du Recordset.
Quand un filtre est appliqu un Recordset grce Filter, la proprit RecordCount renvoie le nombre de records lintrieur de cette vue filtre du Recordset.
Le filtre peut tre enlev en configurant la proprit Filter sur adFilterNone.
III.2.4.2 - Utiliser la prorit Sort (Tri)
Exemple : Utiliser Sort pour ordonner les records dans un Recordset
Sub ADOSortRecordset() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset
' Ouvrir la connexion cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\NorthWind.mdb;"
Chapitre 3 Le langage de programmation de Access : VBA
47
' Ouvrir le recordset rst.CursorLocation = adUseClient rst.Open "Customers", cnn, adOpenKeyset, adLockOptimistic
' Tri du recordset selon le pays et la rgion, tous deux en ordre croissant rst.Sort = "Country, Region" Debug.Print rst.Fields("CustomerId").Value
' Fermer le recordset rst.Close
End Sub Remarque : Pour utiliser la proprit Sort, il faut spcifier la proprit CursorLocation adUseClient avant douvrir le Recordset.
III.2.5 - Ajouter ou modifier des enregistrements Aprs louverture dun recordset modifiable (Options adOpenKeyset, adLockOptimistic de Open), on utilisera la mthode AddNew afin dinsrer un nouvel enregistrement.
Exemple :
Sub ADOAjouterRecord() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=.\NorthWind.mdb;" rst.Open "SELECT * FROM Customers", cnn, adOpenKeyset, adLockOptimistic
' Ajouter un nouveau record rst.AddNew
' Spcifier les valeurs des champs rst!CustomerId = "HENRY" rst!PostalCode = "98107"
' Enregistrer les changements faits dans lenregistrement en cours du recordset rst.Update
' Fermer le recordset rst.Close
End Sub Le curseur du recordset est automatiquement positionn sur lenregistrement nouvellement insr avec AddNew.
Chapitre 3 Le langage de programmation de Access : VBA
48
Il est possible de passer les valeurs de lenregistrement en paramtres de AddNew ;il faudra alors dcrire un tableau (Array) de champ, puis un tableau de valeurs :
Dans lexemple prcdent :
rst.AddNew Array("CustomerId", "PostalCode"), Array("HENRY", "98107") rst.Update
Pour modifier les donnes dun recordset ouvert, on accde au champ changer par la proprit Value de Fields ou directement par la syntaxe ! :
Dans lexemple prcdent, la place de AddNew :
' Update the CustomerId of the first record rst.Fields("CustomerId").Value = "New Name" rst!PostalCode = "New PostalCode"
Il nest pas ncessaire en ADO dappeler la mthode Update pour confirmer les changements. Ils sont automatiquement pris en compte lorsquon se dplace dans le recordset vers un autre enregistrement.
Grce ces mthodes dtailles, il est possible deffectuer la plupart des traitements courants pour lesquels lutilisation de VBA est ncessaire.
Cependant, des annexes sont disponibles la fin de ce rapport pour celui qui souhaite de plus amples prcisions. A ce titre, la version informatique de ce rapport comporte de nombreux liens hypertextes vers le site Internet de rfrence qui nous a permis dcrire ce chapitre : Microsoft developper network, o il est possible de trouver de nombreuses explications et exemples de code.
49
CCoonncclluussiioonn
Nous avons vu lors de ladaptation des travaux pratiques que les diffrences entres Access XP et Access 97 sont peu significatives. Peu de nouveauts ont t apports la cration des tables, requtes, formulaires, tats...
Toutefois Microsoft Access a su suivre lvolution concernant le Web et mettre disposition un nouvel objet dans la cration dune base de donnes en loccurrence les pages daccs aux donnes. Ils ont galement instaur la prise en charge du XML, standard universel de prsentation des donnes. Et nous avons vu que les pages daccs aux donnes sont non seulement une source pour Internet mais elles peuvent aussi tre utilises au sain mme dune base en remplacement dun formulaire ou dun tat.
Microsoft Access a galement rvolutionn le mode daccs aux donnes en changeant radicalement de technologie : passant de DAO (Data Access Objects) ADO (ActiveX Data Objects). Comme nous lavons vu la technologie ADO facilite laccs aux donnes en crant une mthode unique contrairement la technologie DAO qui ncessitait un accs particulier pour chaque type dobjet.
Dautre part, il nous parat important de signaler que laccs des sources dinformations concernant cette tude est trs difficile. En effet peu voire pas douvrages traitent des changements et volutions dAccess. Ceci fut trs contraignant pour la ralisation de ce projet. Bien que le thme de ce projet est intressant et instructif (car la technologie ADO est galement utilise par la technologie ASP (Active Server Pages) dveloppe par Microsoft pour la cration de site Internet en lien avec des bases de donnes) la difficults daccs aux sources et laide obsolte dAccess ont largement contribu la difficult de ralisation de ce projet.
De plus la plupart de nos sources dinformations sont en anglais car elles proviennent essentiellement du site Microsoft Developper Network entirement en anglais.
En rsum lutilisation dAccess XP pour lutilisateur non initi qui connat le mode de fonctionnement dAccess 97 ne sera pas trop boulevers. Alors que lutilisateur confirm qui dsire raliser de la programmation en VBA peut se retrouver confront une incapacit de cration tant les technologies sont diffrentes.
Access XP est loin dtre un logiciel parfait mais ses volutions sont remarquables. Il est tout de mme regrettable que Microsoft Access ne fasse voluer son aide que par lajout rpt dinformation sans relles mises jour.
51
BBiibbll iiooggrraapphhiiee
Laide de Access XP nous a aussi t trs utile, mme si la navigation lintrieur de cette aide nest pas facile car elle a t complte sans cesse depuis le dbut dAccess ce qui conduit parfois des redondances dinformations voire des informations obsoltes.
Afin dcrire la partie programmation VBA de ce rapport nous avons essentiellement utilis le centre de documentation en ligne MSDN (Microsoft Developper Network) ladresse www.msdn.com. Ce site est trs fourni en informations sur la technologie ADO ainsi quen exemples de codes facilitant la mise en pratique des informations recueillies. Cependant, il est entirement en anglais, et si une version franaise existe (www.microsoft.com/france/msdn/), elle est beaucoup moins dveloppe et mise jour. Nous recommandons donc de sappuyer sur le site amricain beaucoup plus fourni.
Nous avons par ailleurs utilis aussi les forums de discussions regroupant des dveloppeurs.
Enfin nous nous sommes galement appuy sur deux livres :
- HASENFRATZ JM
ACCESS 2002 Grer ses bases de donnes
Grenoble, PUG, 2002
Cet ouvrage naborde peu (voire pas) les nouveauts dAccess 2002 et encore moins la programmation VBA.
- JONES E
ACCESS 2002 et VBA Le guide du dveloppeur
Paris, OEM, 2002
Cet ouvrage, bien que trs fourni, survole compltement la relle nouveaut de programmation VBA en loccurrence le modle ADO.
Il est prciser quaucun ouvrage distribu naborde la grande nouveaut apporte par ADO ce qui est trs regrettable. Mais ce phnomne nest pas exceptionnel car les ouvrages dits par Microsoft ou autres sont rarement mis jour.
53
RReemmeerrcciieemmeennttss
Nous tenons remercier Mme Sylvie Damy, tutrice de ce projet pour ses conseils, ses orientations et ses relectures tout au long de llaboration de ce projet.
Nous tenons aussi remercier John John, ingnieur-support chez Microsoft qui nous a ouvert les portes de la documentation ADO sur le site MSDN.
Annexe A DAO vers ADO Aide mmoire
55
AAnnnneexxeess
AAnnnneexxee AA :: DDAAOO vveerrss AADDOO -- AAiiddee--mmmmooiirreeLe tableau ci-dessous est un aide-mmoire destin tablir des correspondances entre les mthodes et proprits de DAO et celles de ADO, ADOX et JRO. Toutefois, les correspondances entre les mthodes et proprits numres ci-dessous ne sont pas forcment directes ni symtriques. Il peut exister des diffrences, lgres ou mme nettes, entre les mthodes et proprits mises en parallle. Pour plus d'informations sur les proprits et mthodes de ADO, ADOX et JRO, veuillez consulter la documentation relative au modle objet Objet DAO Proprit/Mthode Modle :
ADO/ADOX/ JRO
Objet Proprit/Mthode
DBEngine DefaultType1 N/A N/A N/A DBEngine DefaultPassword1 N/A N/A N/A DBEngine DefaultUser1 N/A N/A N/A DBEngine IniPath ADO Connection Jet OLEDB:Registry
Path2 DBEngine LoginTimeout ADO Connection ConnectionTimeout DBEngine SystemDB ADO Connection Jet OLEDB:System
Database2 DBEngine Version ADO Connection Version DBEngine BeginTrans ADO Connection BeginTrans DBEngine CommitTrans ADO Connection CommitTrans DBEngine Rollback ADO Connection RollbackTrans DBEngine CompactDatabase JRO JetEngine CompactDatabase DBEngine CreateDatabase ADOX Catalog Create DBEngine CreateWorkspace ADO Connection Open DBEngine Idle JRO JetEngine RefreshCache DBEngine OpenDatabase ADO Connection Open DBEngine RegisterDatabase1 N/A N/A N/A DBEngine RepairDatabase1 N/A N/A N/A DBEngine SetOption ADO Connection Properties3 Workspace IsolateODBCTrans ADO Connection Isolation Levels2 Workspace LoginTimeout ADO Connection ConnectionTimeout Workspace Name1 N/A N/A N/A Workspace Type1 N/A N/A N/A Workspace UserName ADO Connection User Id2 Workspace BeginTrans ADO Connection BeginTrans Workspace CommitTrans ADO Connection CommitTrans Workspace Rollback ADO Connection RollbackTrans Workspace Close ADO Connection Close Workspace CreateDatabase ADOX Catalog Create Workspace CreateGroup ADOX Groups Append Workspace CreateUser ADOX Users Append Workspace OpenDatabase ADO Connection Open Database CollatingOrder ADO Connection Locale Identifier2 Database Connect ADO Connection ConnectionString
Annexe A DAO vers ADO Aide mmoire
56
Database Name ADO Connection Data Source2 Database QueryTimeout ADO Connection CommandTimeout Database Replicable JRO Replica MakeReplicable Database ReplicaId JRO Replica ReplicaId Database ReplicationConflictFu
nction JRO Replica ConflictFunction
Database RecordsAffected ADO Connection Execute(RecordsAffected)
Database Transactions ADO Connection Transaction DDL2 Database Updatable ADO Connection Mode Database V1xNullBehavior N/A N/A N/A Database Version ADO Connection DBMS Version2 Database Close ADO Connection Close Database CreateProperty N/A N/A Not supported in this
release Database CreateQueryDef ADOX Command Dim New4 Database CreateRelation ADOX Key Dim New4 Database CreateTableDef ADOX Table Dim New4 Database Execute ADO Connection Execute Database MakeReplica JRO Replica CreateReplica Database NewPassword ADOX Catalog Modify Database OpenRecordset ADO Recordset Open Database PopulatePartial JRO Replica PopulatePartial Database Synchronize JRO Replica Synchronize Recordset AbsolutePosition ADO Recordset AbsolutePosition Recordset BOF ADO Recordset BOF Recordset EOF ADO Recordset EOF Recordset Bookmark ADO Recordset Bookmark Recordset Bookmarkable ADO Recordset Supports Recordset CacheSize ADO Recordset Jet OLEDB:Fat Cursor
Cache Size2 Recordset CacheStart1 N/A N/A N/A Recordset DateCreated ADOX Table DateCreated Recordset LastUpdated ADOX Table DateModified Recordset EditMode ADO Recordset EditMode Recordset Filter ADO Recordset Filter Recordset Index ADO Recordset Index Recordset LastModified1 N/A N/A N/A Recordset LockEdits ADO Recordset LockType Recordset Name1 N/A N/A N/A Recordset NoMatch ADO Recordset Find Recordset PercentPosition N/A N/A Not supported in this
release. Recordset RecordCount ADO Recordset RecordCount Recordset RecordStatus ADO Recordset EditMode Recordset Restartable1 N/A N/A N/A Recordset Sort ADO Recordset Sort Recordset Transactions1 N/A N/A N/A Recordset Type ADO Recordset CursorType Recordset Updatable ADO Recordset Recordset.Supports(adU
pdate) Recordset ValidationRule ADOX Table ValidationRule Recordset ValidationText ADOX Table ValidationText
Annexe A DAO vers ADO Aide mmoire
57
Recordset AddNew ADO Recordset AddNew Recordset CancelUpdate ADO Recordset CancelUpdate Recordset Clone ADO Recordset Clone Recordset Close ADO Recordset Close Recordset CopyQueryDef ADO Recordset Source Recordset Delete ADO Recordset Delete Recordset Edit1 N/A N/A N/A Recordset FillCache1 N/A N/A N/A Recordset FindFirst ADO Recordset Find Recordset FindLast ADO Recordset Find Recordset FindNext ADO Recordset Find Recordset FindPrevious ADO Recordset Find Recordset GetRows ADO Recordset GetRows Recordset Move ADO Recordset Move Recordset MoveFirst ADO Recordset MoveFirst Recordset MoveLast ADO Recordset MoveLast Recordset MoveNext ADO Recordset MoveNext Recordset MovePrevious ADO Recordset MovePrevious Recordset OpenRecordset ADO Recordset Open Recordset Requery ADO Recordset Requery Recordset Seek ADO Recordset Seek Recordset Update ADO Recordset Update QueryDef CacheSize ADO Command Jet OLEDB:Fat Cursor
Cache Size2 QueryDef Connect ADO Command Jet OLEDB:Link
datasource2 QueryDef DateCreated ADOX Procedure DateCreated QueryDef LastUpdated ADOX Procedure DateModified QueryDef KeepLocal JRO Replica Get/SetObjectReplicabili
ty QueryDef LogMessages N/A N/A Not supported in this
release. QueryDef MaxRecords ADO Command MaxRecords QueryDef Name ADOX Procedure Name QueryDef ODBCTimeout ADO Command Jet OLEDB:ODBC
Command Timeout2 QueryDef RecordsAffected ADO Command Execute(RecordsAffecte
d) QueryDef Replicable JRO Replica Get/SetObjectReplicabili
ty QueryDef ReturnsRecords1 N/A N/A N/A QueryDef SQL ADO Command CommandText QueryDef Type N/A N/A Not supported in this
release. QueryDef Updatable N/A N/A N/A QueryDef Close ADO/X Command
/Procedure
Set to Nothing
QueryDef CreateProperty N/A N/A Not supported in this release
QueryDef Execute ADO Command Command.Execute QueryDef OpenRecordset ADO Recordset Open TableDef Attributes ADOX Table Properties5
Annexe A DAO vers ADO Aide mmoire
5