Académique Documents
Professionnel Documents
Culture Documents
VBA Access 2007 - Programmer Sous Access PDF
VBA Access 2007 - Programmer Sous Access PDF
MichleAMELOT
Rsum
A la fois simple, pratique et complet, ce livre sadresse aux dveloppeurs et aux utilisateurs avertis souhaitant crer des applications
professionnelles conviviales, fiables et performantes sous Access. Outre les lments de base du langage VBA vous permettant de crer vos
propres procdures et fonctions, vous apprendrez manipuler vos donnes en utilisant les objets DAO ou ADO et le langage SQL,
personnaliser vos formulaires et tats, concevoir un ruban Access spcifique votre application, piloter les autres applications Office 2007
via la technologie Automation, exporter des informations sur Internet (au format XML ou HTML) et utiliser les API Windows.
En plus des nombreux exemples fournis dans cet ouvrage - en tlchargement sur notre espace Livres (www.eni-livres.com) - le dernier
chapitre vous guide dans la cration dune mini-application Access.
L'auteur
Consultante et formatrice, Michle Amelot est spcialise dans la cration de logiciels spcifiques autour des technologies Microsoft.
Elle accompagne des quipes de dveloppement dans la conduite de leurs projets. Cest, entre autres, cette connaissance approfondie
des besoins des utilisateurs et des dveloppeurs, qui lui permet dans ses ouvrages de faciliter lapprentissage et la pratique de la
programmation en langage VBA.
Ce livre numrique a t conu et est diffus dans le respect des droits dauteur. Toutes les marques cites ont t dposes par leur diteur respectif. La loi du 11
Mars 1957 nautorisant aux termes des alinas 2 et 3 de larticle 41, dune part, que les copies ou reproductions strictement rserves lusage priv du copiste et non
destines une utilisation collective, et, dautre part, que les analyses et les courtes citations dans un but dexemple et dillustration, toute reprsentation ou
reproduction intgrale, ou partielle, faite sans le consentement de lauteur ou de ses ayants droit ou ayant cause, est illicite (alina 1er de larticle 40). Cette
reprsentation ou reproduction, par quelque procd que ce soit, constituerait donc une contrefaon sanctionne par les articles 425 et suivants du Code Pnal.
Copyright Editions ENI
Access2007disposedulangagedeprogrammationVisualBasicEditionApplication(VBA)quiluipermetd'tendre
sesfonctionnalitspourvousoffrirlemeilleurdesesperformances.
C'est un langage puissant, qui ne prsente aucune difficult pour tre compris par les dbutants. Les fonctions
deVBAsontdrivesengrandepartiedeVisualBasicauxquelless'ajoutentdesinstructions(objets,mthodes,
fonctions...)spcifiques,ncessaireslamanipulationdesobjetsd'Access.
Pourbienexploiterlecontenudecemanuel,ilestimpratifd'avoirmanipulAccess2007entantqu'utilisateur,
c'estdiresavoirgrer(crer,modifier,supprimer,manipuler)lestables,lesrequtes,lesformulaires,lespages
d'accsauxdonnesetlestats.Desconnaissancesgnralesenprogrammationsontgalementprrequises.
UnebaseAccessestconstitued'ununiquefichierportantl'extension.ACCDBetcontenantlesdiffrentsobjets
del'application.Cesobjetssont:
Lestables
Ellescontiennentlesdonnesdelabaseetpeuventtreenliaisonlesunesaveclesautres.
Lesrequtes
Ellespermettentd'effectuer:
Lesformulaires
Ilssontutilisspourconsulteroumettrejourlesdonnes.
Lestats
Ilssontutilisspourimprimerdesrapports,depuislasimplelisted'unetablejusqu'desrapportspluscomplexes
comprenantdesregroupementsd'enregistrementsetdescalculs.
Lesmacros
Elles permettent l'automatisation de plusieurs tches avec un langage particulier mais ne permettent pas
d'atteindrelapuissancededveloppementdeVBA.
Lesmodules
Ils contiennent une partie du code VBA de l'application, savoir des dclarations, des fonctions, des
procdures...
VBAprsenteunenvironnementdeprogrammationorientobjet.
Un objet est une entit autonome possdant des caractristiques (proprits : taille, couleur, valeur...) et des
comportements (mthodes) qui lui sont propres. Certains objets possdent une reprsentation visuelle
(Formulaire,Etats...),tandisqued'autresnesontaccessiblesqu'encodeVBA(DBEngine,Container...).
Laplupartdesobjetsvisuelsontlapossibilitderagirdesvnements(surouverture,aprsmisejour...).
La programmation VBA permet d'induire, en fonction des vnements, des comportements particuliers sur les
objets par le code : mthodes, procdures et fonctions. Par ce biais, elle facilite l'criture de code car elle
repose sur une conception modulaire. Elle permet ainsi une grande souplesse de fonctionnement et une
maintenanceplusaise.
Structured'unobjet
vnement:Actionutilisateurousystmeagissantsurunobjetetdclenchantlecodecorrespondant.
Mthode:Codeprdfiniserapportantuntyped'objet.
Procdure:Squenced'instructionsnerenvoyantpasdevaleur.
Fonction:Squenced'instructionsrenvoyantunevaleur.
Access2007faitpartiedelasuitelogicielleMicrosoftOffice2007(galementappeleOffice12)etbnficiepar
consquentdelaplupartdesamliorationsdecetteversion:
- Nouvelle interface utilisateur : ruban et onglets regroupant toutes les commandes et remplaant les menus et barres d'outils.
- Partage efficace des informations entre applications Office (notamment change d'informations entre Access et Outlook et
Access et SharePoint).
D'autresnouveautsonttapportesAccess2007:
- Volet de navigation ;
- Nouveaux types de champs : champs plusieurs valeurs, type de donnes "Pice jointe" permettant de stocker des
informations provenant de tout type de fichier, texte enrichi dans les champs mmo...
Contrairementl'interfaced'Access,l'environnementdedveloppementaconservsesmenusetbarresd'outils.
Toutefois, la documentation en ligne a t considrablement amliore : aspect de Visual Studio, exemples de
codedetcheetmodleobjetenrichi(informationssurleschangementsparrapportauxversionsprcdentes).
Lesmacrosreprsententunemanirefaciledegrerdesenchanementsd'actionssimples,telsquel'ouvertureet
lafermeturedeformulaires.
ToutefoisVBAprsentebiend'autresavantages:
- il facilite la maintenance des bases de donnes car les procdures vnementielles Visual Basic sont intgres dans la
dfinition du formulaire ou de l'tat,
Conversiondemacrosdansunformulaireouuntat
Dans le volet de navigation, cliquez avec le bouton droit de la souris sur le formulaire ou l'tat, puis cliquez sur Mode cration.
Cliquez sur l'icne Convertir les macros de formulaire en Visual Basic ou Convertir les macros d'tat en Visual Basic situe en
bas droite du groupe Macros :
Labotededialoguesuivantes'affichealors :
Dsactivez si vous le souhaitez les options proposes par dfaut. Il est toutefois recommand de conserver la gestion des erreurs
pour la fiabilit de l'application, et les commentaires pour simplifier la lecture du code.
Conversiondemacrosglobales
Cliquez sur l'icne Convertir les macros en Visual Basic situe en bas droite du groupe Macros.
Cliquez sur Convertir pour continuer : la macro est convertie en code VBA dans un module intitul "Macro convertie" suivi du nom
de la macro.
Lesmacrosetlascurit
Lesparamtresdescuritdesmacrospermettentdecontrlercequiseproduitlorsquevousouvrezunebase
dedonnesAccesscontenantunemacro.
Modificationdesparamtresdescurit
Par dfaut, lorsque vous installez Access, les macros sont dsactives. Si vous ouvrez un classeur contenant
desmacros,l'avertissementsuivantestaffichdanslabarredesmessages:
Sivouscliquezsur Options,unebotededialoguedescurits'affichepourvouspermettred'activerlesmacros
contenuesdansvotrebaseAccess.Vouspouvezalorsslectionnerl'optionActivercecontenuetcliquersurle
boutonOK:lesmacrossontalorsactivesetl'alertedescuritdisparat.
VouspouvezgalementmodifierlesparamtresdescuritpourtouteslesbasesdedonnesAccessdelafaon
suivante:
Cliquez sur le bouton Microsoft Office , puis sur le bouton (situ en bas de la bote de dialogue).
En cas de changement des paramtres de scurit, la nouvelle option choisie s'appliquera toutes les bases de donnes Access
l'exclusion de la base actuellement active. Pour l'appliquer cette base, vous devez la fermer puis l'ouvrir nouveau.
Descriptiondesdiffrentesoptionsdescurit
Dsactivertouteslesmacrossansnotification
Touteslesmacrosettouteslesalertesdescuritsontdsactives.
Dsactivertouteslesmacrosavecnotification
Optionpardfaut.Lesmacrossontdsactivesmaisl'alertedescuritestaffiche.
Dsactivertouteslesmacrosl'exceptiondesmacrossignesnumriquement
Si les macros d'un classeur sont signes numriquement par un metteur approuv, les macros peuvent tre
excutes. Si l'metteur n'a pas t approuv, une notification est affiche : il est alors possible d'activer les
macros signes ou d'approuver l'metteur. Les macros non signes numriquement ne pourront pas tre
actives.
Activertouteslesmacros
Si cette option est slectionne, toutes les macros sont actives. Il n'est pas recommand d'utiliser ce
paramtreenpermanence.
Quelle que soit l'option choisie, si un logiciel antivirus fonctionnant avec Microsoft Office System 2007 est install, les classeurs
Editeursapprouvs
LesapplicationsAccessdveloppespardesditeursapprouvssecaractrisentparlescritressuivants:
- Le certificat associ la signature numrique a t mis par une autorit de certification reconnue.
PourajouterunditeurlalisteEditeursapprouvs:
Activez l'option Dsactiver toutes les macros avec notification dans les paramtres de scurit (cf. Gnralits Passage des
macros VBA Les macros et la scuritModification des paramtres de scurit cidessus).
Ouvrez une base de donnes Access dont le code est sign par un Editeur approuv.
Vouspouveztoutmomentconnatrelalistedesditeursapprouvsdelafaonsuivante:
Cliquez sur le bouton Microsoft Office , puis sur le bouton (situ en bas de la bote de dialogue).
IlestgalementpossiblededsactiverunditeurapprouvencliquantsurleboutonSupprimer.
Emplacementsapprouvs
Toutfichierenregistrdansunemplacementapprouvpeuttreouvertsansl'interventionduCentredegestion
delaconfidentialit.
Vous pouvez tout moment ajouter un dossier dans la liste des Emplacements approuvs de la faon
suivante:
L'IDE (Integrated Development Environment) est l'environnement dans lequel vous pouvez saisir, modifier et
testervotrecodeVBA.CetenvironnementestgalementappelVBE(VisualBasicEditor).
L'IDEmetvotredispositiondenombreuxoutilsquifacilitentlaprogrammationetlamiseaupointducodeVBA :
outilsdedbogage,assistancelasaisie,explorateurd'objets...
- En slectionnant une procdure vnementielle depuis une feuille de proprits dans un formulaire ou un tat.
Toutes les fentres de l'environnement IDE peuvent tre affiches partir du menu Affichage.
Labarred'outilsStandard(1)
1 Afficher Access
2 Insrer un module, un module de classe ou une procdure (Function ou Sub)
3 Enregistrer
4 Couper
L'Explorateurdeprojet(2)
TouslesmodulesdelabasededonnesouduprojetVBAsontaffichsdansl'explorateurdeprojets,selonune
structurearborescente.Ilssontregroupsentroisensembles:
LafentreProprits(3)
Elle permet d'afficher les proprits des diffrents modules. Pour afficher les proprits d'un formulaire ou d'un
tat, celuici doit tre ouvert dans Access si ce n'est pas le cas, slectionnez le formulaire ou l'tat dans
l'explorateurdeprojetetchoisissezl'optionObjetdumenuAffichage.
LafentreCode(4)
Danscettefentresetrouventdeuxzonesdelistedroulantes :
- la zone procdure (11) affiche les procdures ou les vnements de l'objet slectionn dans la zone objet. Les vnements
dj utiliss apparaissent en gras.
Lecomplmentautomatiqued'instructions(5)
Le complment automatique d'instructions prsente les informations qui sont le complment logique de
l'instructionauniveaudupointd'insertion.
Parexemple,lalistedroulantedesmthodesetpropritsdisponiblespourunobjets'afficheautomatiquement
lorsquevoustapezlenomdel'objetsuivid'unpoint.
Si cette liste n'est pas active, slectionnez Options dans le menu Outils et cochez la case Complment
automatiquedesinstructionsdel'ongletditeur.
LafentreExcution(6)
Ellepermetd'afficherlesvaleursdesvariables,delesmodifieretd'excuterdesinstructions.
Les fentres Excution, Variables locales et Espions sont utilises lors du dbogage de l'application.
Ellecontienttouteslesvaleursdesvariablesaccessiblesdanslaporteencours.
LafentreEspions(8)
Elleaffichelesvaleursdesvariablesquionttdfiniescommevariablesespions.
L'Explorateurd'objets(9)
Ilpermetdevisualiser,pourchaqueobjet,sesproprits,mthodesetconstantes.
Paramtragedescouleursdel'diteur
Lesmotscls,lesfonctionsetlesinstructionsVBAsontaffichesenbleu,lesobjets,mthodesetpropritsen
noiretlescommentairesenvert.Lesinstructionscontenantdeserreurssontmisesenvidenceenrouge.
Vous pouvez modifier le style (couleurs, police, taille) des diffrentes parties du code. Pour cela, slectionnez
OptionsdanslemenuOutilsetcliquezsurl'ongletFormatdel'diteur.
Paramtragedelaprsentationducode
Diffrents outils, comme la vrification automatique de la syntaxe, la dclaration obligatoire des variables, le
complmentautomatiqued'instructions...facilitentlasaisieetlamiseaupointducodeVBA.
Pouractivercesoutils,slectionnezOptionsdanslemenuOutilsetcliquezsurl'ongletditeur.
Pour pouvoir utiliser un objet d'accs aux donnes, un objet d'automation, ou un contrle ActiveX spcifique,
vous devez rfrencer la bibliothque d'objet correspondante. Une bibliothque d'objets est gnralement un
fichierDLLouOCXquicontientlecodedel'objet.
Pouractiverunerfrenceunebibliothque,slectionnezl'optionRfrencesdanslemenuOutils.
Vous pouvez ajouter des rfrences en cliquant sur le bouton de commande Parcourir.
Cettesectionvavousguiderpaspasdanslacrationd'unepremireprocdureenVBA.
Cette procdure demande l'utilisateur de saisir une date sous forme abrge (19/06/07), contrle la date et
l'affichedansunformatdatecomplet(mardi19juin2007).
tape1:crationd'unnouveaumodule
DepuisAccess:
Cliquez sur la flche situe en bas de l'icne Macro puis choisissez l'option Module.
Depuisl'environnementVBE:
tape2:attribuerunnomaumodule
Pardfaut,lemodulecrestintitulModule1(ouModulesuividupremiernumrodisponiblesid'autresmodules
ontdjtscrsetnonrenomms).
Pourmodifierlenomdumodule :
Dans la fentre Proprits (cliquez sur F2 si la fentre Proprits n'est pas affiche), modifiez la valeur de la proprit (Name).
tape3:Crationd'uneprocdure
tape4:Testdelaprocdure
Pourexcuterlecodedelaprocdure :
Saisissez une date dans la bote de dialogue affiche et cliquez sur le bouton de commande OK :
Lemessagesuivantestalorsaffich:
Afin d'optimiser les performances de VBA, certaines techniques peuvent contribuer acclrer la vitesse
d'excutiondevotrecode.
- Pour faire rfrence aux proprits, contrles et objets d'accs aux donnes, les variables sont prconises.
- Le mot rserv Me doit tre utilis pour faire rfrence au formulaire ou l'tat au sein d'une procdure vnementielle.
- Les modules doivent tre organiss pour ne pas surcharger la mmoire. Un module est mis en mmoire uniquement si une de
ses procdures est appele par d'autres codes.
Ondistinguetroistypesdemodules:
Lalistedecesmodulesestaffichedefaonhirarchiquedansl'explorateurdeprojetsdel'interfaceVBA.
Si l'explorateur de projet n'est pas affich, choisissez l'option Explorateur de projets du menu Affichage ou utilisez le raccourci-
clavier Ctrl R.
Les modules Microsoft Access Objets de classe contiennent les procdures vnementielles associes aux
formulairesettats.
Lesmodulesstandards (ou modules) sont composs d'une ou de plusieurs procdures pouvant tre appeles
endenombreusescirconstancespartirdesdiffrentsmodules.
Seuls les modules standards apparaissent dans la liste des modules du volet de navigation.
Il est recommand de regrouper dans un ou plusieurs modules les procdures "utilitaires" pouvant tre utilises par diffrentes
applications (ex : traitement des dates). Ces modules pourront ensuite tre exports dans d'autres bases Access partir de l'option
Exporter un fichier du menu Fichier.
Lesmodulesdeclasseindpendantssontutilisslorsdelacrationdeclassesd'objets.Laprogrammation
based'objetsseradtailledanslechapitreObjetsetcollections.
LeslmentsdulangageVisualBasicdcritsdanscechapitrepeuventtreutilissdanslesdiffrentsmodules.
Les procdures sont des sousprogrammes qui permettent de dcomposer une tche de programmation
complexeenunesuitedetchespluspetitesetplussimples.
Elles permettent d'organiser le code l'intrieur des modules afin d'obtenir un code plus facile maintenir et
facilementrutilisable.
DansVBAAccess2007,ilexistetroistypesdeprocdures:
Dans ce chapitre, nous utiliserons uniquement les procdures Sub et Function qui sont les plus courantes (les
procduresdepropritserontprsentesdanslechapitre Objetsetcollections).
Ilexistedespointscommunsentrecesdeuxprocdures :
Certainescaractristiquessontspcifiquesauxfonctions:
LesprocduresSub
IlexistedeuxtypesdeprocduresSub:
Une procdureSubgnrale est une procdure dclare dans un module standard ou au niveau gnral d'un
moduledeformulaireoud'tat.L'appeld'unetelleprocdureestexplicitementdfinidanslecodeduprogramme.
Exemple
Cette procdure gnrale demande l'utilisateur de confirmer son souhait de quitter l'application, et quitte Access si l'utilisateur
rpond Oui.
Ce code peut tre appel partir de tout bouton de commande ou option de menu permettant de quitter l'application.
Exemple
Cette procdure vnementielle permet d'afficher le formulaire "Employs" lorsque l'utilisateur clique sur un bouton de commande
cmdEmploys.
Certaines procdures Sub vnementielles peuvent tre gnres automatiquement partir d'assistants (ex : assistant boutons de
commande).
LesprocduresFunction
Les procduresFunction,pluscourammentappeles fonctions, renvoient une valeur, telle que le rsultat d'un
calcul.Lavaleurretournedoitporterlenomdelafonction.
Ce sont les seules procdures pouvant tre appeles depuis une macro.
Le langage Visual Basic comporte de nombreuses fonctions intgres telles que les fonctions se rapportant aux
dates(day,week,year,format...).
Enplusdecesfonctionsintgres,vouspouvezcrervospropresfonctionspersonnalises.
Exemple
Cette fonction demande l'utilisateur de confirmer son souhait de quitter l'application, et renvoie True si l'utilisateur rpond Oui et
False sinon.
Dclarationdesprocdures
Syntaxed'uneprocdureSub
Syntaxed'uneprocdureFunction
PourcreruneprocdureSubouFunction,vousdevezrespecterlestapessuivantes:
- dclarez la procdure en fonction de son type avec le mot cl Sub ou Function, suivi du nom de la procdure,
- s'il s'agit d'une fonction, prcisez ventuellement le type de la valeur retourne aprs le mot cl As,
- rdigez le code permettant d'effectuer le traitement souhait. Utilisez ventuellement Exit Sub ou Exit Function pour sortir de
la procdure. S'il s'agit d'une fonction, affectez le rsultat au nom de la fonction,
Portedesprocdures
Laported'uneprocduredfinitl'tenduedesonutilisation.
Uneprocdurepublique(dclareaveclemotclPublic)peuttreappeledepuistoutmodule,touteprocdure
vnementielleoutoutemacrodelabasededonnes.
LaprocdureFriendestutiliseuniquementdanslesmodulesdeclasse.
LemotclStaticindiquequelesvariableslocalesdelaprocduresontprservesentrelesappels.
Enl'absencedesmentionsPublic,PrivateouFriend,lesprocduressontpubliquespardfaut.
Argumentsdesprocdures
Les arguments sont utiliss pour transmettre aux procdures des paramtres sous forme de donnes. Le nombre
d'argumentspeutvarierdezroplusieurs.
Pour dclarer un argument, vous pouvez simplement spcifier son nom. Nanmoins, la syntaxe complte de
dclarationd'unargumentestlasuivante:
Optional:indiquequel'argumentestfacultatif.Touslesargumentsfacultatifsdoiventtresituslafindela
listedesargumentsettredetypevariant.
Byval : indique que l'argument est pass par valeur. La procdure accde une copie de la variable sa valeur
initialen'estdoncpasmodifieparlaprocdure.
ParamArray:utilisuniquementpourledernierargumentdelaliste,indiquequeceluiciestuntableaufacultatif
d'lmentsdetypeVariant.IlnepeuttreutilisaveclesmotsclsByVal,ByRefouOptional.
Variable:prciselenomdel'argument.Pourlesvariablestableau,ilnefautpasprciserlesdimensions.
Type:prciseletypededonnesdel'argumentpasslaprocdure(Byte,Boolean,Integer,Long...).
Lesargumentsnomms
Lepassaged'argumentsuneprocdureentenantcomptedeleurordred'apparitionestparfoisdifficilemettre
enuvre,notammentlorsquecertainsparamtressontfacultatifs.Demme,lalisibilitdesappelsdeprocdures
comportantplusieursparamtresn'estpastoujoursvidente.
Les arguments nomms facilitent le passage des arguments en prsentant les avantages suivants :
Lasyntaxedesargumentsnommsest :
NomArgument := Valeur
Exemple
Appeld'uneprocdure
Syntaxe
SilemotclCallestindiqu,vousdevezplacerlalisted'argumentsentreparenthses.
Pourstockerlersultatd'unefonctiondansunevariable,utilisezlasyntaxesuivante:
Exemplesdeprocdures
Lorsquel'utilisateurcliquesurleboutondecommandecmdCalculduformulairedesaisied'unefacture,lemontant
delaremisedoittrecalculdelafaonsuivante:
Procdurevnementielle
La fonction Remise est appele, avec comme argument, le montant de la facture (contenu dans la zone de texte txtMntFact du
formulaire). La remise calcule sera directement affiche dans la zone de texte txtMntRem.
Fonction
Si le montant de la facture est infrieur 1000, Remise conserve sa valeur initiale, soit zro.
LafonctionMsgBox
Cettefonctionafficheunmessagedansunebotededialogue,ventuellementaccompagnd'uneicneetdeun
troisboutons.
Syntaxedel'instruction
Utiliselorsqu'iln'yaqu'unseulbouton.
Syntaxedelafonction
Utiliselorsqu'ilyaplusd'unbouton.Ellepermetdesavoirquelboutonatactivgrcesavaleurderetour.
message :Textedumessagedanslabotededialogue.
boutons : Expression numrique qui reprsente la somme des valeurs spcifiant les boutons afficher, le style
d'icneutiliser,l'identitduboutonpardfaut,ainsiquelamodalit.
titre:Textedanslabarredetitre.
helpfile:Fichierd'aideutiliser.
Context:Rubriquedel'aideconcerne.
Valeursdel'argumentBoutons
Lesvaleursderetourpossiblessontgalementdfiniespardesconstantes :
ou
Lestypesdevariables
Lesvariablespermettentdestockerdesvaleursintermdiairestoutmomentdel'excutionducodeVBAafinde
lesexploiterultrieurementpoureffectuerdescalculs,descomparaisons,destests
Les variables sont identifies par un nom, permettant de faire rfrence la valeur qu'elles contiennent, et un
typedterminantlanaturedesdonnesqu'ellespeuventstocker.
Numriques
>
Type tendue Taille
en
octets
Byte 0255 1
Integer 3276832767 2
(entier)
Long 2147483648 4
(entierlong) 2147483647
Single 3,402823E381,401298E45 4
(relsimple (valeursngatives)
virgule 1,401298E453,402823E38
flottante) (valeurspositives)
Double 1,79769313486231E308 8
(reldouble 4,94065645841247E324
virgule (valeursngatives)
flottante) 4,94065645841247E324
1,79769313486231E308
(valeurspositives)
Currency 922337203685477,5808 8
(montaire 922337203685477,5807
virgulefixe)
Decimal +/79 228 162 514 264 337 593 543950 335 12
sanssparateurdcimal
+/7,9228162514264337593543950335
avec 28 chiffres droite du sparateur
dcimal le plus petit nombre diffrent de zro
est+/0.0000000000000000000000000001
Chanesdecaractres
LetypeestString.Ilexistedeuxtypesdechanes:
- les chanes de longueur variable peuvent contenir environ 2 milliards (231) de caractres.
- Les chanes de longueur fixe peuvent contenir de 1 environ 64000 (216) caractres.
Exemple
Boolen
Date
Le type est Date. La variable peut prendre les valeurs de date et d'heure du 1er janvier 100 au 31 dcembre
9999.Elleoccupehuitoctets.
Variant
Letypeest Variant.Lavariablepermetdestockerdesvaleursdedonnesdetoutessortes:dates,nombres
virgule flottante, chanes de caractres, rfrences des objets... Elle occupe seize octets, plus un octet par
caractresilavaleurestunechane.
Objet
Le type est Object. La variable permet de stocker la rfrence un objet sous forme d'une adresse de quatre
octets.
C'estuntypegnrique,maispourobtenirdesperformancessuprieures,ilestsouhaitabled'utiliserpluttlenom
del'objettelqu'ilestdfinidanslazoneClassesdel'explorateurd'objets.
Exemple
Ouverture de base de donnes Access en utilisant le type gnrique Objet ou partir de l'objet Database.
Dfiniparl'utilisateur
Ce type est utilis surtout pour la dclaration de variables contenant plusieurs types d'informations. La dfinition
dutypenepeutsefairequedanslasectiondedclarationd'unmodule.
Exemples
Lesdclarationsdevariables
Ilexistedeuxfaonsdedclarerdesvariables:implicitementetexplicitement.
Dclarationimplicite
Ds que VBA rencontre une variable qui n'a pas fait l'objet d'une dclaration explicite, il la dclare de faon
impliciteenluidonnantuntypeVariant.
End Sub
Dclarationexplicite
Lavariableestdclareavantsonutilisation.
Ilestpossibled'imposerladclarationexplicitedesvariablesenutilisantdanslasectiondedclarationdechaque
module, l'instructionOptionExplicit.PourquecetteinstructionsoitdfiniepardfautdansVBA,activezl'option
DclarationdesvariablesobligatoiredumenuOutilsOptionsongletditeur.
Les dclarations explicites de variables peuvent se faire dans la section de dclarations des modules, ou dans le
corpsd'uneprocdureoud'unefonction.
Ladclarationestraliseparl'unedesquatreinstructionssuivantesutilisantlammesyntaxe:
chaquefoisquel'instructionDimestexcute,lavariableestrinitialise(0pournumrique,videpourString,
EmptypourVariant).S'ilestncessairedegarderlaprcdentevaleur,ilfaututiliserStaticlaplacedeDim.
Si aucun type n'est prcis (ex : dim var), le type par dfaut Variant est affect la variable.
Laportedesvariables
Une variable est dite locale une fonction ou une procdure, si elle est dclare dans le corps de la fonction
oudelaprocdureavec Dimou Static.Cettevariablen'estpasconnue(visible)endehorsdelafonctionoude
laprocdure.
Une variable peut tre visible de toutes les procdures ou fonctions d'un module (standard, de classe, formulaire
outat),sielleestdclaredanslasectiondedclarationdumoduleavecPrivate(ouDim).
Unevariableest publiquetoutel'application(c'estdirevisibledepuisn'importequelendroitdel'application),
sielleestdclaredanslasectiondedclarationd'unmoduleavecl'instructionPublic.
Pour faire rfrence, partir d'un module, une variable publique se trouvant dans un autre module de formulaire ou d'tat, il convient
d'utiliser la syntaxe suivante :
Forms!<NomFormulaire>.<NomVariable>
Lestableaux
Untableausedclaredelammefaonquelesvariables,avecdesinstructionsDim,Static,PrivateouPublic.
Un tableau est une variable comportant plusieurs compartiments permettant de stocker autant de valeurs. Par
opposition,unevariableclassiquedsigneuncompartimentdestinuneseulevaleur.
On peut faire rfrence au tableau globalement ou accder individuellement ses lments en utilisant des
indices.
Quel que soit le type des lments, un tableau ncessite 20 octets de mmoire, auxquels viennent s'ajouter
quatreoctetspourchaquedimensionetlenombred'octetsoccupsparlesdonnes.
Siletypededonnesn'estpasspcifi,leslmentsdutableaudclarprennentletypeVariant.
Le premier poste d'un tableau se voit attribuer l'indice 0 par dfaut. Toutefois, il est possible de mettre cette
valeurpardfaut1enutilisant,ensectiondedclaration,l'instructionOptionBase1.
L'utilisationd'uneclauseTopermetgalementdedfinirexplicitementlesindicesdedbutetdefin.
Exemples
Option Base 1
' 12 lments indics de 1 12
Dim Frais (12)
Sub Affiche_Tableau()
Dim Multiplie(1 To 10, 1 To 10) As Integer
Dim i, j As Integer
Dim strResult As String
' 1re ligne de la table de multiplication
For i = 1 To 10
strResult = Format(i, "000") & " "
Next i
Debug.Print strResult
' Initialisation du tableau
For i = 1 To 10
strResult = Format(i, "00")
For j = 1 To 10
Multiplie(i, j) = i * j
strResult = strResult & " " & Format(Multiplie(i, j),
"000")
Next j
Debug.Print strResult
Next i
' Renvoie le rsultat de 4 * 7
MsgBox "4 * 7 = " & Multiplie(4, 7)
' Renvoie le rsultat de 7 * 4
MsgBox "7 * 4 = " & Multiplie(7, 4)
Lestableauxdynamiques
Il s'agit de tableaux dont les dimensions sont dfinies l'excution. Ils permettent l'optimisation de la place
occupeenmmoire.
Dclaration :
Dim Tableau ()
Utilisation :
Il est possible d'utiliser l'instruction ReDim pour modifier le tableau dynamique aussi souvent que ncessaire. Par
dfaut,lesvaleursprsentesdansletableausontcrases.L'instructionReDim Preservepermetd'tendreun
tableautoutenconservantlesvaleursexistantes.
Lesconstantes
Uneconstantereprsenteunevaleurnumriqueoudetypechanequinedoitpastremodifie.
L'instruction Constpermetdedclareruneconstanteetdedfinirsavaleurfixe.Unefoisdclare,laconstante
nepeuttremodifienirecevoirunenouvellevaleur.
Ladclarationd'uneconstanteestralisedansuneprocdureoudanslasectiondclarationd'unmodule.
Lesconstantesdeniveaumodulesontprivespardfaut.
Pourdclareruneconstantedeniveaumodulepublique,ilestncessairedefaireprcderl'instructionConst du
motclPublic.
Exemple
acForm
vbCurrency
Lesconstantesintrinsques
UneconstanteintrinsquepeuttreutilisedansunemacrooudansducodeVisualBasic.
Les constantes intrinsques sont caractrises par un prfixe de deux lettres identifiant la bibliothque d'objets
oestdfinielaconstante.
Prfixedesconstante
Les constantes de la bibliothque Visual Basic sont dcrites dans l'annexe B de cet ouvrage. Pour utiliser les constantes de Microsoft
Office, vous devez slectionner la rfrence "Microsoft Office 12.0 Object Library" (option Rfrences du menu Outils).
Il existe plusieurs catgories de constantes intrinsques (constantes d'action, constantes de procdures vnementielles...).
Exemple
L'exemple suivant montre comment afficher un formulaire et le personnaliser. Il utilise les constantes strNomAppli et strNomSoc
dclares dans le code et plusieurs constantes intrinsques.
Ilestsouventncessairedetesterdesconditionsspcifiquesavantd'excuterdesinstructions.
Les structures de dcisions, appeles aussi alternatives ou branchements conditionnels, permettent, au terme
d'unevaluation,d'opterpourunblocdecodeouunautre.
Ondistinguedeuxinstructionsdebranchementconditionnel :
La fonction IIf peut galement tre utilise pour dfinir une valeur en fonction d'une condition.
L'instructionIF
If
Permetd'excuterdesinstructionsenfonctiondursultatd'unecondition.
LesinstructionsIf...Then...Elsepeuventtreimbriquesautantdefoisquencessaire.
La syntaxe multiligne, avec une indentation approprie, prsente l'avantage d'une plus grande lisibilit.
Syntaxe1(suruneligne)
<inst.>peuttreconstitudeplusieursinstructionssparesparlecaractre(:).
Syntaxe2(surplusieurslignes)
Autrepossibilit
Exemple
If A>B Then
MsgBox "A>B"
Else
If A = B Then
MsgBox "A=B"
Else
L'instructionSelectCase
Select Case
Excutedessquencesd'instructionsspcifiesenfonctiondelavaleurd'uneexpression.
L'instructionSelectCasepermetderemplaceravantageusementleElseIfdansdesinstructionsIf...Then...Else
lorsdelacomparaisonentreuneexpressionetplusieursvaleurs.
Syntaxe
<liste d'expression>peutprendrelesformessuivantes:
Exemple
LafonctionIIf
IIf
Retourneunevaleurenfonctiond'unecondition.
Syntaxe
Ilestpossibled'imbriquerplusieursappelsdefonctionIIf.
Exemple
Lesstructuresenboucles(ourptitives)permettentderpterl'excutiond'unensembled'instructions.
Ondistingueplusieurstypesdestructuresenboucles:
Do...Loop
While...Wend
For...Next
For Each...Next
Do...LoopetWhile...Wendrptentuntraitementjusqu'cequ'unecertaineconditionsoitralise.
For...Nexteffectueuntraitementunnombredefoisdonn,enfonctiond'uncompteur.
ForEach...Nextpermetdeparcourirleslmentsd'unecollection.
L'instructionDo...Loop
Do...Loop
Excute une squence d'instructions tant que (While) ou jusqu' ce que (Until) la condition spcifie soit
vrifie.
Syntaxe1
Squenced'instructionsventuellementnonexcute(conditiontesteavantlasquence).
Syntaxe2
Squenced'instructionsexcuteaumoinsunefois(conditiontesteaprslasquence).
Do
<squence d'instructions>
[Exit Do]
[<squence d'instructions>]
Loop [{While | Until} <condition>]
Exit Do est souvent utilis aprs l'valuation d'une condition interne la boucle et permet de sortir de la boucle sans que la condition
de contrle de la boucle ne soit vrifie.
Exemple
Calcule et affiche le montant des frais annuels en fonction d'un tableau (FraisMensuel) de douze postes chargs antrieurement.
L'instructionWhile...Wend
While...Wend
Excuteunesquenced'instructionstantquelaconditionspcifieestvrifie.
Syntaxe
While <condition>
<squence d'instructions>
Wend
Exemple
Calcule et affiche le montant des frais annuels en fonction d'un tableau (FraisMensuel) de douze postes chargs antrieurement.
L'instructionFor...Next
For...Next
Permetderpterl'excutiond'unesquenced'instructionsenfonctiond'uncompteur.
Syntaxe
Exit For souvent place aprs l'valuation d'une condition, permet de sortir prcocement de la boucle.
Exemple
Calcule et affiche le montant des frais annuels en fonction d'un tableau (FraisMensuel) de douze postes chargs antrieurement.
LemotclSteppermetd'incrmenteroudedcrmenterlavariabledecompteurd'unpasspcifi.
Exemple
La variable de compteur j est incrmente de 5 chaque itration. la fin de la boucle, total correspond la somme de 5, 10, 15,
Dim j As Integer
Dim total As Integer
total = 0
For j = 5 To 20 Step 5
total = total + j
Next j
MsgBox "Le total est de " & total
L'instructionForEach...Next
Permetdeparcourirtousleslmentsd'untableauoud'unecollection.
Syntaxe
Exemple
Les oprateurs permettent d'effectuer des oprations arithmtiques sur des variables et/ou des constantes, de
comparerdesvariablesentreelles,detesterplusieursconditions...
Ondistingueplusieurscatgoriesd'oprateurs:
- l'oprateur de concatnation.
L'oprateur d'affectation est le signe d'galit. La valeur de l'expression situe droite du signe gal est affecte la variable situe
gauche du signe. (exemple : IntA = 12, 12 est affect la variable IntA, IntA = IntB * 12, la valeur d'IntB multiplie par 12 est affecte
IntA).
Lesoprateursarithmtiques
Ilspermettentd'effectuerdescalculsarithmtiquespartirdevariableset/oudeconstantesnumriques.
Oprateur Calculralis
+ Addition
Soustraction
/ Divisionaveccommersultatunnombrevirguleflottante
Mod Restedeladivisiondedeuxnombres
\ Divisionaveccommersultatunnombreentier
* Multiplication
^ lvationlapuissance
Lesoprateursdecomparaison
Ilspermettentdecomparerdeuxvaleursnumriquesoudeuxchanesdecaractres.
Oprateur Calculralis
< Infrieur
<= Infrieurougal
> Suprieur
>= Suprieurougal
= gal
<> Diffrentde
L'instructionOptioncompareutiliseauniveaumodulepermetdedfinirlamthodedecomparaisonpardfaut
CompareBinary
(option par dfaut) fournit des comparaisons de chanes bases sur un ordre de tri driv de la reprsentation
binaireinternedescaractres :
A<B<E<Z<a<b<e<z<<<<<...
CompareText
fournit des comparaisons de chanes bases sur un ordre de tri qui ne distingue pas les majuscules des
minuscules:
(A=a)<(=)<(B=b)<(E=e)<(=)<(Z=z)<(=)...
CompareDatabase
fournit des comparaisons de chanes bases sur l'ordre de tri dtermin par l'identificateur de paramtres
rgionauxdelabasededonnescourante.
Lesoprateurslogiques
Ilspermettentdetestersimultanmentdeux(ouplusieurs)valeursboolennesouexpressionsrenvoyantcetype
valeur.Ilssontgnralementutilissavecl'instructionIf.
Oprateur Calculralis
And Si toutes les expressions ont la valeur True, le rsultat est True. Si l'une des expressions a la
valeurFalse,lersultatestFalse.
Or Sil'uneaumoinsdesexpressionsapourvaleurTrue,lersultatestTrue(ouinclusif).
Xor SiuneetuneseuledesexpressionsapourvaleurTrue,lersultatestTrue(ouexclusif).
Not Renvoielecontrairedel'expression.
Eqv RenvoieTruesilesdeuxexpressionssontidentiques.
Exemple
(A>=1)And(A<=9)renvoieTruesiAestcomprisentre1et9,
Not(A>=10)renvoieTruesiAeststrictementinfrieur10,
(A>0)Or(B>0)Or(C>0)renvoieTruesiaumoinsl'unedesvaleursestpositive.
L'oprateurdeconcatnation
L'oprateurdeconcatnationestlesigne&.Ilpermetd'assemblerdeschanesdecaractres,desvaleursetdes
expressions.Lersultatestunechanedecaractres.
Exemple
Prioritdesoprateurs
Lorsque plusieurs oprateurs sont contenus dans une mme expression, chacun est valu dans un ordre
prdfini,appelprioritdesoprateurs.
Lesoprateursarithmtiquesetlogiquessontvalusdansl'ordredeprioritcidessous(prioritdcroissantede
gauchedroite):
Arithmtique :^,*,/,Mod,+,
Logique :Not,And,Or,Xor,Eqv
Exemple
L'expression "3 + 4 * 5" donne comme rsultat 23. La multiplication (4*5) est effectue avant l'addition ( + 3):
L'utilisation de parenthses permet de modifier l'ordre de priorit afin qu'un lment d'une expression soit valu avant les autres. Les
oprations situes l'intrieur de parenthses sont toujours traites avant les autres. Exemple : l'expression "(3 + 4) * 5" renvoie 35.
L'addition est effectue en priorit. Il est conseill d'utiliser des parenthses pour une meilleure lisibilit du code.
Lescommentaires
Lescommentairespermettentdedocumenterunprogrammeafindelerendrepluslisible.
Syntaxe
Rem <commentaire>
ou
'<commentaire>
Exemple
'=======================================================================
Rem Procdure permettant de comparer deux zones
Rem de texte txtA et txtB
'=======================================================================
Private Sub cmdRsultat_Click ()
'si txtA suprieur txtB
If txtA > txtB Then
lblRsultat.Caption = "A>B"
Else
'si txtA gal txtB
If txtA = txtB Then
lblRsultat.Caption = "A=B"
Else
'txtA infrieur txtB
lblRsultat.Caption = "A<B"
End If
End If
End Sub
Lecaractredecontinuation
UneinstructionVBApeuttrecritesurplusieurslignesenutilisantuncaractredecontinuation:lecaractre
desoulignement(_)prcdd'unespace.
Exemple
If A _
> _
b then _
Bien sr, cet exemple n'est pas digne d'une programmation structure, mais il met en vidence le fait qu'il est
possibledescinderunelignedecoden'importequelendroit.
L'indentation
Il est important d'aligner sur le mme retrait les instructions de mme niveau. L'entteetlepieddeprocdure
tantalignsgauche,lecontenudoittredcald'uncrandroitel'aided'unetabulation.
Cesindentationsarentlastructuredelaprocdurequidevientainsipluslisible.
Lesnomsdesprocdures,variablesetconstantes
Lesnomsdesprocdures,variablesetconstantesdoiventrespecterlesrglessuivantes:
Exemples
Nbclient
Nb_client
Nbclient1
Il est recommand d'utiliser des conventions d'appellation pour les variables, les contrles et les objets. Elles
permettent de standardiser le code et par consquent de le rendre plus lisible et plus facile maintenir par
diffrentsdveloppeurs.
Conventiond'appellationdesvariables
Ilestrecommandd'utiliserdeuxprfixes:
- le premier pour prciser la porte de la variable : g pour globale, m pour module, aucun prfixe pour locale,
Exemple
Typedevariable Prfixe
Boolen bln
Byte byt
Currency cur
Date,heure dtm
Double dbl
Error err
Typedevariable Prfixe
Integer int
Long lng
Object obj
Single sng
String str
Dfiniparl'utilisateur udt
Variant var
Conventiond'appellationdescontrles
Delammefaonquepourlesvariables,lesnomsdecontrlesdesformulairesetdestatsdoiventtreprfixs
selonleurtype.
Contrle Prfixe
DonnesADO ado
Zonedelistemodifiable(combo) cbo
Boutondecommande cmd
Cadre(frame) fra
Grouped'option grp
Image img
tiquette lbl
Boutond'option opt
Zonedetexte txt
Conventiond'appellationdesobjets
LesobjetsAccessoulesvariablesobjetsserapportantauxobjetsAccesspeuventaussitreprfixs.
Contrle Prfixe
Table tbl
Requte qry
Formulaire frm
tat rpt
Macro mac
Index idx
Champ fld
Collection col
Proprit pty
Pagesd'accsauxdonnes pag
VBA Access est un langage de programmation orient objet, mme s'il ne dispose pas de toutes les
fonctionnalitsdeslangagesdecetype.
LaplupartdeslmentsmanipulsdansAccesssontdesobjets:lestables,leschamps,lesenregistrements,les
formulaires...
Les objets sont organiss selon un modle hirarchique : certains objets contiennent des objets qui en
contiennent euxmmes d'autres... Par exemple, l'objet Application est compos de plusieurs objets Form
(formulaires de l'application), qui sont euxmmes composs de plusieurs objets Control (contrles d'un
formulaires).
Unensembled'objetsdemmenatureconstitueunecollection(collection Forms:ensembledesformulairesou
objetsFormdel'application).
Un objet dispose d'un ensemble de caractristiques appeles proprits (ex : taille, couleur pour un contrle
dans un formulaire...) et de comportements ou actions appeles mthodes (ex : la mthode close de l'objet
Formulaire permet de fermer celuici). Il rpond des vnements provoqus par l'utilisateur (ex : clic sur un
boutondecommande)ouparlesystme.
Les classes sont des modles permettant de crer des objets de mme nature. Les objets issus d'une mme
classe hritent systmatiquement de toutes les mthodes, proprits et vnements de leur classe d'origine. Il
estpossibledecrerdesclassesd'objetsavecVBAAccessenutilisantdesmodulesdeclasse.
Ilexisteplusieursensemblesd'objetsdansAccess:
Chaque ensemble peut tre reprsent sous forme d'un modle hirarchique. Ce chapitre dcrit plus
particulirement les objets gnraux d'Access, les objets d'accs aux donnes seront abords dans le chapitre
suivant.
Lediagrammeciaprspermetdedistinguerlesprincipauxobjetsglobauxd'Access.
Principalescollections
Autrescollections
ObjetsduModle
AnswerWizard Objetreprsentantl'aideintuitivedeMicrosoftOffice.
Application Objet faisant rfrence l'application Microsoft Access
active.
Assistant Objet reprsentant le Compagnon Office de Microsoft. Vous
pouvez utiliser la proprit Visible pour afficher le
Compagnon,lapropritOnpouractiverleCompagnon,etla
propritFileNamepourmodifierleCompagnon.
AutoCorrect Objet reprsentant les options de correction automatique
d'Access.
DBEngine Objet reprsentant le moteur de base de donnes Microsoft
Jet. En tant qu'objet principal la racine de la hirarchie,
l'objet DBEnginecontientetcontrletouslesautresobjets
Lesproprits
Les proprits servent dcrire un objet. Certaines proprits sont en lecture seule et ne peuvent donc pas
tremodifiesparducodeVBA.
Syntaxe
Exemple
Propritsreprsentantdesobjets
Les objets globaux et les objets instancis dans le code partir de classes fournies par VBA possdent des
propritsdontlavaleurestmisejourautomatiquementparlesystme.
Lesmthodes
Lesmthodespermettentd'effectuerdesactionspropresauxobjets.
- certaines mthodes peuvent renvoyer une valeur au mme titre que les procdures Function, d'autres non au mme titre que
les procdures Sub.
Syntaxedemthodenerenvoyantpasdevaleur
Exemple
Lesdiffrentsargumentsdelamthodedoiventtresparspardesvirgules.Siunargumentfacultatifn'estpas
dfiniexplicitement,lamthodeutiliseraunevaleurpardfaut.
Syntaxedemthoderenvoyantunevaleur
Exemple
Lesvnements
Un vnement est une action spcifique qui se produit sur un objet. Microsoft Access est en mesure de
rpondreplusieurstypesd'vnements :ouvertureoufermeturedeformulaires,clicsdesouris,modificationde
donnes,etc.Lesvnementsrsultentgnralementd'uneactiondel'utilisateur.
L'utilisation d'une procdure vnementielle vous permet d'associer votre propre code en rponse un
vnementquiseproduitdansunformulaire,untat,uncontrle...
Exemple
Lorsque l'utilisateur clique sur le bouton de commande "Quitter", une bote de dialogue demandant une confirmation est affiche.
La gestion des vnements tant l'un des aspects les plus importants dans le dveloppement d'applications Access, le chapitre
Gestion des vnements est entirement consacr ce sujet.
Lescollections
Pourfairerfrenceunobjetd'unecollection,vouspouvezutiliserl'unedessyntaxessuivantes:
NomCollection!NomObjet
NomCollection![NomObjet]
NomCollection("NomObjet")
NomCollection(var)
ovarreprsenteunevariabledetypestringcontenantlenomdel'objet.
NomCollection(index)
oindexreprsentelenumrod'indexdel'objetdanslacollection.
Afin d'assurer une meilleure lisibilit du code, il est conseill d'utiliser toujours la mme syntaxe. Les 3ime et 5ime syntaxes sont
recommandes car elles permettent d'activer l'assistant de l'diteur de code. De plus la syntaxe 5 est trs utile pour parcourir les
objets d'une collection.
Attention le premier lment de la plupart des collections a pour index 0. N'utilisez les index que pour parcourir une collection. vitez
par exemple Me.controls(5) pour faire rfrence un contrle car l'index du contrle peut changer si le formulaire est modifi.
Exemple
Collectionspardfaut
Dfinition
Objetspossdantunecollectionpardfaut
Exemple
Rfrence au contrle txtDateDeb du formulaire Formations (la collection Controls est la collection par dfaut d'un formulaire).
Forms![Formations].[txtDateDeb].Value
Ou
Forms!Formations.txtDateDeb.Value
ou
Forms!Formations!txtDateDeb.Value
Affichageautomatiqued'instructions
L'diteur VBA dispose d'une technologie permettant de vous assister lors de l'utilisation d'objets. Ds que vous
tapez un nom d'objet reconnu par VBA suivi d'un point, la liste droulante des mthodes et proprits de cet
objetestalorsaffiche.Sivousslectionnezunemthode,l'assistantvousaidegalementsaisirlesdiffrents
argumentsqu'ellecomporte.
Exemple
Tapez le nom d'objet DoCmd suivi d'un point, la liste droulante suivante est affiche.
Vous pouvez faire dfiler les lments de la liste droulante en tapant les premires lettres de la mthode,
proprit ou collection recherche ou l'aide de l'ascenseur. Pour slectionner un lment de la liste, double
cliquezdessus.
Tapez un point si vous venez de slectionner un objet et si vous souhaitez voir la liste des proprits et
mthodes s'y rapportant. Si vous avez slectionn une mthode, tapez un espace pour saisir la liste des
paramtresdelamthode.
Pourpoursuivrel'exemple :
Lalistedesargumentsdelamthodeestalorsafficheets'adapteaufuretmesurequevouslessaisissez.
Les arguments facultatifs sont entre crochets. L'argument courant est en gras. Si pour un argument donn, il
existeunelistedevaleursprdfinies,lalistedroulantedesconstantescorrespondantesestalorsaffiche.
Saisissez maintenant le nom du paramtre transmis dans la fonction, savoir strFormName, suivi d'une virgule et de l'argument
acNormal, et de 3 virgules (pour les deux arguments optionnels).
Pour obtenir la liste des proprits et mthodes d'un objet, vous pouvez galement procder de la faon suivante :
- placez le curseur derrire le point (situ aprs le nom de l'objet),
- cliquez sur le bouton droit de la souris et slectionnez l'option Rpertorier les proprits/mthodes du menu contextuel ou utilisez
le raccourci-clavier Ctrl J.
De mme, pour obtenir la liste des constantes disponibles comme argument d'une mthode, vous pouvez procder de la faon
suivante :
- placez le curseur la place de l'argument (aprs la mthode ou aprs une virgule),
- cliquez sur le bouton droit de la souris et slectionnez l'option Rpertorier les constantes du menu contextuel.
L'instructionWith
L'instructionWithpermetd'accderplusieursfoisaummeobjetenlenommantuneseulefois.
Elleoffreplusieursavantages:
Syntaxe
With <objet>
<code utilisant des mthodes et proprits>
<se rapportant l'objet>
End With
Exemple
L'instructionForeach...Next
L'instructionForEach...Nextpermetdepasserenrevuelesobjetsd'unecollectionouleslmentsd'untableau.
Syntaxe
Exemple
L'exemple suivant permet d'affecter une couleur de police chaque contrle du formulaire "employ" en fonction de son type
(proprit ControlType). Il utilise la collection par dfaut de l'objet Form (Screen.ActiveForm quivaut
Screen.ActiveForm.Controls).
L'instructionIfTypeOf
L'instructionIfTypeOfpermetdetesterletyped'unobjet.
Syntaxe
Exemple
L'instructionSet
L'instructionSetpermetd'attribuerunerfrenced'objetunevariable,appelevariableobjet.
Cetteinstructionpeuttreutilisepourcrerunerfrenceversunnouvelobjet(enutilisantventuellementune
mthodepermettantdecrerl'objet)oupouraffecterunerfrenceunobjetdjexistant.
Syntaxes
Crationd'unerfrenceversunnouvelobjet
<NomObjet> nomdelavariableobjet
<expression objet> nomd'unobjetoud'unevariableobjetdemmetype
Le mot cl New permet de crer une nouvelle instance de la classe. Si la variable objet contient dj une rfrence, cette dernire est
alors perdue.
Vous ne pouvez utiliser le mot cl New pour rfrencer un objet que si le composant ActiveX de l'objet fournit une bibliothque de type
(ex : objets ADO, objets Excel...).
Affectationd'unerfrenceunobjetexistant
Rinitialisationdesvariablesobjets
Exemples :
Les exemples 1 et 2 permettent de crer une nouvelle table et de l'ajouter la base de donnes courante. Pour excuter ces
exemples, vous devez slectionner la rfrence Microsoft DAO 3.6 Object Library au projet (Outils Rfrences).
Description
Une classe est en quelque sorte un moule d'o naissent les objets. Par exemple, il est possible de raliser de
petits santons en pltre avec un moule adquat. On peut dire que tous les santons raliss sont des Objets,
chacund'euxpouvantavoirtermedescouleursetunhabillagediffrents,etquelesmoulessontdesClasses.
Ainsi, les objets issus d'une mme classe hritent systmatiquement de toutes les mthodes (codes), les
proprits (donnes) et les vnements de leur classe d'origine. Par la suite, les caractristiques et le
comportementdechacund'euxpourronttreadaptsenfonctiondesbesoinsdel'application.
Enfait,toutobjetAccessestissud'uneclasse.
Lesmodulesdeclasse
Les modules de classe vous permettent de crer et de manipuler dans vos applications vos propres types
d'objets.
Lesmodulesdeclassesprsententlescaractristiquessuivantes:
- ils comportent des procdures publiques Sub et Function correspondant aux mthodes propres de l'objet,
- ils comportent des procdures Property Get permettant de lire les valeurs de proprits de l'objet et des procdures Property
Set/Property Let permettant de fixer les valeurs de ces proprits.
Une fois l'ensemble de ces procdures dcrites au sein du module de classe, il est possible de crer un nouvel
objetdutypedfini.Pourcelailsuffitdecrerunenouvelleinstancedelaclasseparlebiaisd'unevariableobjet
dutypedelaclasse :
Dim<nomdel'objet>AsNew<nomdelaclasse>
Les modules de classe sont peu utiliss en programmation VBA. Ils s'adressent avant tout aux dveloppeurs
confirms.
Exempledemodulesdeclasse
Cet exemple vous guidera pas pas dans la cration et l'utilisation d'un module de classe. Le module cr
permettrad'afficherlesmessagesutilisateurs.
Cemodulecomporteleslmentssuivants:
- une mthode Confirmation qui affiche une bote de dialogue invitant l'utilisateur rpondre par "oui" ou "non" une
question, et rcupre la rponse de l'utilisateur,
- deux proprits : la proprit IsBeep indique si un beep doit tre mis avant l'affichage du message, la proprit Title
contient le titre de la bote de dialogue.
Exemple
Pourcrerunmoduledeclasse :
Si la fentre Proprits n'est pas affiche, choisissez l'option Fentre proprits du menu Affichage ou utilisez le raccourci
clavier F4.
Dfinissez les variables ncessaires pour l'utilisation des proprits dans le module de classe Message. La variable strTitle est
associe la proprit Title, la variable blnBeep la proprit IsBeep.
Crez les proprits IsBeep et Title en utilisant l'option Procdure du menu Insertion.
Pour chaque proprit, les procdures Property Get et Property Set sont cres :
Maintenantquecetteclasseestcre,nousallonsl'utiliserpartird'unformulaire.
Crez pour cela un formulaire Employs avec deux boutons de commande cmdFermer et cmdQuitter.
La bote de message affiche par la mthode Confirmation utilise les deux proprits et renvoie la rponse de
l'utilisateur.
Il est possible d'enrichir le module de classe Message en dfinissant de nouvelles proprits et de nouvelles mthodes (ex :
messages d'erreur...).
Prsentation
Compte tenu du nombre important d'objets Access et de leur diversit, il est utile de pouvoir rechercher
rapidementdesinformationsserapportantauxobjets.
L'explorateurd'objetspermetd'afficherdesinformationsrelativesauxobjets,mthodes,proprits,vnements
etconstantes.
Vouspouvezl'afficherdediffrentesfaons:
1.Listedesbibliothquesd'objetsactuellementcharges.
2.lmentrecherch:objet,proprit,collection,vnement,mthode...
3. Rsultat de la recherche : liste des classes d'objets (objets et collections) et des membres les composant
(objet, collection, proprit, vnement ou mthode). Le mot recherch peut tre dans la liste des classes ou
danscelledesmembres.
5.Mthodes,proprits,vnementsetconstantesserapportantl'objetslectionnouencadrdanslaliste
degauche.LemembreslectionndanslalisteRsultatestencadr.
6.Dtaildel'lmentslectionn.
Recherchedansl'explorateurd'objets
Poureffectuerunerecherchedansl'explorateurd'objets,procdezdelamaniresuivante:
Si la fentre des Rsultats affiche plusieurs lignes, dplacezvous sur celle qui vous intresse (la partie basse de la fentre est
alors ractualise).
Le module de classe cr prcdemment apparat dans la liste des classes avec les mthodes et proprits
rattaches.
Cette partie dcrit les proprits et mthodes des objets couramment utiliss dans Access. Les objets Form et
ReportserontdcritsdanslechapitrePersonnalisationdesformulairesettats.
Pour obtenir la liste exhaustive des objets, des proprits et mthodes, vous pouvez rechercher dans l'aide VBA
Accessouutiliserl'explorateurd'objets.
L'objetApplication
L'objetApplicationfaitrfrencel'applicationMicrosoftAccessactive.
Proprits
Mthodes
BuildCriteria
Permetdeconstruirefacilementlescritresd'unfiltre.
CurrentUser Permetderetournerlenomdel'utilisateuractueldelabase
dedonnes.
Exemple
Sub cmdQuitter_Click()
Application.Quit acSaveYes
End Sub
Exemple
Le code suivant permet de modifier les couleurs par dfaut des feuilles de donnes (contenues dans l'onglet Feuilles de donnes de
la bote de dialogue Options d'Access).
With Application
' Police bleue fonc
.SetOption "Default Font Color", 4
' Arrire plan : blanc
.SetOption "Default Background Color", 15
' Quadrillage bleu clair
.SetOption "Default Gridlines Color", 12
End With
Fonctionsapplicablesunjeud'enregistrements
L'objetDoCmd
L'objetDoCmdpermetd'excuterpartirdeVisualBasiclaplupartdesactionsexcutablesvialesmacros.
chaque action macro correspond une mthode. Les arguments de l'action deviennent les arguments de la
mthode.L'objetDoCmdnedisposepasdeproprits.
Les actions macro correspondant aux mthodes sont indiques entre parenthses.
Excutiond'actions
CancelEvent (AnnulerEvnement)
Annuleunvnement.
Quit (Quitter)
QuitteACCESS.
RunCommand (ExcuterCommande)
Excuteunecommanded'unmenuoud'unebarred'outils.
(ExcuterMacro)
RunMacro Excuteunemacro.
(ExcuterSql)
RunSql ExcuteunordreSQL.
Donnesdesformulairesettats
ApplyFilter (AppliquerFiltre)
Appliqueunfiltreunetable,unformulaire,untat.
FindNext (TrouverSuivant)
Continuelarecherche.
FindRecord (TrouverEnregistrement)
Recherched'unenregistrement.
Import/Exportdedonnes
CopyDatabaseFile (CopierFichierBaseDeDonnes)
Copie la base de donnes connecte au projet actif un
fichier de base de donnes Microsoft SQL Server pour
l'exporter.
OutputTo (CopierVers)
Permet d'exporter un objet Access (table, formulaire) dans
une autre base Access ou un autre type de fichier (Excel,
XML...).
SendObject (EnvoyerObjet)
Envoieunobjetverslamessagerie.
TransferDatabase (TransfrerBase)
Importeouexporteunebasededonnes.
TransferSpread (TransfrerFeuilleCalcul)
Importeouexporteunefeuilledecalcul.
Sheet
TransferShare (TransfrerListeSharePoint)
Permet d'importer ou de lier des donnes partir d'un site
PointList MicrosoftWindowsSharePointServices3.0.
TransferSQL (TransfrerBaseDeDonnesSQL)
Transfre l'intgralit de la base de donnes Microsoft SQL
Database
ServerspcifieversuneautrebasededonnesSQLServer.
TransferText (TransfrerTexte)
ImporteouexportedutexteauformatASCII.
Manipulationd'objets
Close (Fermer)
Fermeunobjet(formulaire,tat...).
CloseDatabase (FermerBaseDonnes)
Fermelabasededonnesouvertedansl'interfaceAccess.Si
la base de donnes contient des objets qui n'ont pas t
enregistrslorsquevousutilisezlamthodeCloseDatabase,
des botes de dialogues identiques celles qui s'affichent
lorsque vous cliquez sur Fermer la base de donnes
apparaissent.
CopyObject (CopierObjet)
Permet de copier un objet Access dans la mme base ou
dansuneautrebase.
(SupprimerObjet)
DeleteObject Supprimeunobjet.
(Agrandir)
Maximize Agranditunefentre.
Minimize (Rduire)
Rduitunefentreenicne.
MoveSize (DplacerDimensionner)
Dplaceoudimensionneunefentre.
OpenDataAccess (OuvrirPageAccsDonnes)
Ouvreunepaged'accsauxdonnes.
Page
OpenDiagram (OuvrirSchma)
Ouvreunschmadebasededonnes.
Modificationdel'interfaceAccess
AddMenu (AjouterMenu)
Permetdecrerunebarredemenuouunmenucontextuel.
Hourglass (Sablier)
Affichelepointeurdesourisensablierounon.
LockNavigation (VerrouillerVoletNavigation)
Permet d'empcher les utilisateurs de supprimer des objets
Pane
de base de donnes qui sont affichs dans le volet de
navigation.
(AccderA)
SetDisplayed Prcise les catgories qui sont affiches sous Atteindre la
Categories catgoriedanslabarredetitreduvoletdenavigation.
SetMenuItem (DfinirElmentMenu)
Permet de dfinir l'tat (actif ou inactif, coch ou non
coch) d'lments de menu personnalis ou global pour la
fentreactive.
SetWarnings (Avertissements)
Active/dsactive l'affichage des messages d'avertissement
standards.
ShowToolbar (AfficherBarreOutils)
Affiche/masqueunebarred'outils.
Divers
Beep (Bip)
Emetunbipsonore.
SetHiddenAttribute Activel'attributcachd'unobjetAccess.
SingleStep (PasAPas)
Suspend l'excution de la macro active et ouvre la bote de
dialoguePaspas.
Actionsdemacrosnonprisesencompteparl'objetDoCmd
BoiteMsg Utilisezlafonctionoul'instructionMsgBox.
ExcuterApplication UtilisezlafonctionShell.
ExcuterCode AppelezdirectementlafonctiondansVisualBasic.
EnvoiTouches Utilisezl'instructionSendKeys.
L'objetScreen
L'objet Screen fait rfrence l'objet actif qu'il s'agisse d'un formulaire, d'une page d'accs aux donnes, d'un
tatoud'uncontrle.
L'objet Screen est surtout utilis dans les procdures vnementielles de ses diffrents objets (Control, Data
AccessPage,Form,Report).Cetobjetnecomportequedesproprits :
Proprits
ActiveControl Fournitunerfrenceaucontrleactif.
ActiveData Fournitunerfrencelapaged'accsauxdonnesactive.
AccessPage
ActiveDataSheet Fournitunerfrencelafeuillededonnesactive.
ActiveForm Fournitunerfrenceauformulaireactif.
ActiveReport Fournitunerfrencel'tatactif.
Application Permetd'accderl'objetApplicationetsesproprits.
MousePointer Permetdespcifierletypedepointeurdesouris.
Parent Fournitunerfrenceaupre(objetconteneur)d'uncontrle,
d'unesection,d'unsousformulaire...
PreviousControl Fournit une rfrence au dernier contrle actif avant le
contrleencours.
Exemple
LacollectionReferences
La collection References contient les objets Reference correspondant aux bibliothques d'objets provenant
d'autresapplications.
Pour ajouter (ou supprimer) une rfrence une bibliothque d'objets, choisissez l'option Rfrences du menu
Outils.
Lafentresuivantevouspermetalorsdeslectionnerlesrfrencessouhaites:
Proprits
Count Dterminelenombred'objetsrfrences.
Parent Nonutilise.
Mthodes
Propritsdel'objetReference
BuiltIn Indiquesiunerfrencepardfautquiestncessairepourle
bonfonctionnementd'Access.
FullPath Renvoie le chemin d'accs et le nom du fichier de la
bibliothquerfrence.
Guid Renvoie le GUID, identificateur de la bibliothque dans le
RegistreWindows.
Indique si une rfrence valide est affecte l'objet dans le
IsBroken RegistreWindows.
Kind Indiqueletypederfrence.
Major Indique le numro de version principal de l'application
laquelleestassocielarfrence.
Mineur Indiquelenumrodeversionmineurdel'application.
Name Indiquelenomdelarfrence.
Exemple
LacollectionPrinters
Propritsdel'objetPrinter
BottomMargin Margebassed'unepageimprime.
ColorMode Indique si l'imprimante doit imprimer en couleur
(acPRCMColor)ounon(acPRCMMonochrome).
ColumnSpacing Indique l'espacement vertical des sections Dtail d'un
formulaire.
Copies Indiquelenombredecopiesimprimer.
Permet de n'imprimer que les donnes d'une table ou d'une
DataOnly
requteenmodeFeuillededonnes.
Les autres proprits (ColumnSpacing, RowSpacing, ItemSizeHeight...) permettent d'effectuer le formatage de la section Dtail
d'un formulaire ou d'un tat.
Lesobjetsd'accsauxdonnessonttrsutiles:ilspermettent,viaVBA,demanipulerlesdonnes(recherches,
misesjour,ajoutsd'enregistrements...)debasesdedonneslocalesoudistantes.
Dans les versions antrieures Access 2000, le seul modle d'accs aux donnes tait le modle DAO:Data
AccessObjects.
AvecAccess2000estapparulemodleADO :ActiveXDataObjects.
Microsoftrecommanded'utiliserlemodleADOpourlesraisonssuivantes :
Si vous dveloppez unenouvelleapplication, vous pouvez utilisez le modle ADO mme si votre application
accde une base de donnes locale de type Access. Si vous souhaitez par la suite migrer vos donnes sous
MSDE(MicrosoftDataEngine)ouSQLServer,votrecodefonctionneradefaonoptimale.
Sivousfaitesvoluer uneapplicationexistanteutilisantlemodleDAO,ilestpossibledemodifiervotrecode
afindetransformerlesobjetsDAOenobjetsADO.
Prsentation
La bibliothque d'objets DAO (Data Access Objects) prend en charge deux environnements de bases de donnes
diffrents,appelsespacesdetravail :
- les espaces de travail Microsoft Jet: ils permettent d'accder des bases de donnes de type Access, des serveurs de bases
de donnes ODBC (Open Database Connectivity) et des bases de donnes externes telles que dBASE, Microsoft Excel et
Paradox accessibles via un pilote ISAM (Indexed Sequential Access Method),
- les espaces de travail ODBCDirect: ils permettent d'accder des serveurs de base de donnes ODBC de faon "directe",
c'estdire sans charger le moteur de base de donnes Microsoft Office 12. Cet espace de travail est par consquent
recommand pour excuter des requtes, des procdures stockes, ou des fonctions spcifiques ODBC sur un serveur distant
de type SQL Server.
Pour pouvoir utiliser la bibliothque d'objets DAO, il est ncessaire de cocher la rfrence Microsoft DAO 3.6
Object Library dans la liste des rfrences aux bibliothques d'objets (pour afficher cette liste, slectionnez
l'optionRfrencesdumenuOutils).
Si cette rfrence n'est pas disponible, vous devez slectionner le fichier DAO360.dll partir du bouton de
commande Parcourir. Ce fichier est gnralement situ dans le rpertoire "C:\Program Files\Fichiers
communs\MicrosoftShared\DAO".
HirarchiedesobjetsDAO
Unecollectionexistepourchacundestypesd'objetDAO,l'exceptiondel'objetDBEngine.
Toute collection inclut tous les objets d'un type donn. Par exemple, la collection DataBases contient tous les
objetsDataBaseouverts.
ToutobjetDAOpossdeunecollectionProperties,l'exceptiondesobjetsError.
La plupart des objets DAO disposent de collections par dfaut. Par exemple, la collection par dfaut d'un objet
RecordsetestlacollectionFields.Lecodepeutainsitresimplifi.
Containers:EnsembledesobjetsContainerd'unebasededonnes.
Databases:Contienttouteslesbasesdedonnes(objetsDataBase)ouvertesdansunWorkspace.
Documents:EnsembledesobjetsDocumentd'unContainer.
Errors:Ensembledeserreurs(Error)dumoteurd'accsauxdonnes(DBEngine).
Fields : Ensemble des champs (Field) d'une table (TableDef), d'une requte (QueryDef), d'un index (Index),
d'unjeud'enregistrements(Recordset)oud'unerelation(Relation).
Groups : Ensemble des groupes d'utilisateurs (Group) d'un Workspace ou ensemble des groupes d'utilisateurs
(Group)auxquelsappartientunutilisateur(User).
Indexes:Ensembledesindex(Index)d'unetable(TableDef).
Parameters:Ensembledesparamtres(Parameter)d'unerequte(QueryDef).
Properties:Ensembledesproprits(Property)d'unobjet.
QueryDefs:Contienttouteslesdfinitionsderequte(QueryDef)d'unebasededonnes(Database).
Recordsets:Ensembledesjeuxd'enregistrementsouverts(Recordset)d'unebasededonnes(Database).
Relations:Ensembledesrelations(Relation)d'unebasededonnes(Database).
TableDefs:Contienttouteslesdfinitionsdetable(TableDef)d'unebasededonnes(Database).
Users:Ensembledesutilisateurs(User)d'unWorkspaceoud'ungrouped'utilisateurs(Group).
Workspaces:ContienttouslesobjetsWorkspaceactifs.
Proprits
Count :Renvoielenombred'lmentsdanslacollection.
Item :Renvoieunmembrespcifiqued'unecollectionenfonctiondesapositionoudesacl.
Exemple
Append:Ajouteunobjetlacollection.
Delete:Supprimeunobjetdelacollection.
Refresh:Ractualiselecontenudelacollection.
Les collections Errors, Databases, Containers, Documents, Parameters et Recordsets ne peuvent utiliser
lesmthodesAppendetDelete.Leurcontenuestdirectementgrparlemoteurdelabasededonnes.
L'objetDBEngine
Ilreprsentelemoteurd'accsauxdonnesMicrosoftJet.Ilcontientetcontrlel'ensembledesobjetsDAO.
Proprits
DefaultType:Dfinitletyped'espacedetravail,MicrosoftJetouODBCDirect.
DefaultUser etDefaultPassword:Nomd'utilisateuretmotdepasseutilissparlemoteurdebasededonnes
MicrosoftJetquandunobjetWorkspaceestcrsansnomd'utilisateurnimotdepassespcifique.
InitPath:DfinitourenvoiedesinformationssurlaclduregistreWindowsquicontientdesvaleursrelativesau
moteurdebasededonnesMicrosoftJet.
SystemDB : Dfinit ou renvoie le chemin d'accs au fichier d'informations sur le groupe de travail en cours
(MDW).
Version:Valeurquiindiquelaversiondelabasededonnesoudumoteurdebasededonnesassocil'objet.
Mthodes
CompactDatabase:Compacteunebasededonnesferme.
CreateWorkspace:CreunnouvelobjetWorkspace.
Idle : Interrompt le traitement, permettant ainsi au moteur de base de donnes Microsoft Jet de terminer les
tchesenattente.
SetOption:Permetdemodifiertemporairementlesoptionsdumoteurd'accsauxdonnesMicrosoftJet.
Collections
Workspaces,Properties,Errors
Exemple
DBEngine.CompactDatabase "c:\devis\devis.accdb", _
"c:\devis\devis2.accdb"
LesobjetsWorkspace
Proprits
Name:Renvoielenomdel'objetWorkspace.
Type:Renvoieoudfinitletypedeconnexiondel'objetWorkspace(constantedbUseJetsil'objetWorkspaceest
connectaumoteurdebasesdedonnesMicrosoftJet,constantedbUseODBCsil'objetWorkspaceestconnect
unesourcededonnesODBC).
UserName:Renvoielenomdupropritairedel'objetWorkspace.
Autresproprits
DefaultCursorDriver,IsolateODBCTrans,LoginTimeout
Mthodes
BeginTrans:Dmarreunenouvelletransaction.
Close:FermeleWorkspace.
CommitTrans:Termineetvalidelatransactionencours.
CreateDatabase:CreunnouvelobjetDatabase.
CreateGroup:Creunnouveaugrouped'utilisateurs.
CreateUser:Creunnouvelutilisateur.
OpenDatabase:Ouvreunebasededonns.
RollBack:Annuleettermineunetransactionencoursetymetfin.
Collections
Databases,Users,Groups,Properties
Exemple
LesobjetsDatabase
UnobjetDatabasereprsenteunebasededonnesouverte.
Proprits
CollatingOrder:Dfinitlamthodedecomparaisondeschanesdecaractresselonlalangue.
Connect:Dterminelesinformationsncessairesl'ouvertured'unebasededonnesexterneoul'attachement
d'unetabled'unebaseexterne.
DesignMasterID:DtermineleGUIDdelastructurematred'unjeuderplicas.
Name:Renvoielenomdelabase.
Replicable:Indiquesilabasededonnespeutfairel'objetd'unerplication.
ReplicaID:Renvoiel'identifiantd'unrplica.
Transactions:Indiquesilabasededonnesdelaconnexionprendencomptelestransactions(ODBCDirect).
Updatable:Indiquesilesmodificationsdel'objetDatabasesontautorises.
Version:Identifielaversionduformatdelabasededonnes.
V1xNullBehavior:IndiquesileschanesdelongueurnullesontconvertiesenvaleursdetypeNull.
Mthodes
Close:Fermel'objetDatabase.
CreateProperty:CreunnouvelobjetProperty.
CreateQueryDef:CreunnouvelobjetQueryDef.
CreateRelation:CreunnouvelobjetRelation.
CreateTableDef:CreunnouvelobjetTableDef.
Execute:ExcuteunerequteactionouuneinstructionSQL.
MakeReplica:CreunRplicadelabasededonnes.
NewPassword:DfinitunnouveaumotdepassepourunebasededonnesMicrosoftJet.
OpenRecordset:CreunnouvelobjetRecordset.
PopulatePartial:SynchroniselesmodificationsapportesunRplicapartielparrapportunRplicaintgral.
Synchronize:SynchronisedeuxRplica.
Collections
TableDefs,QueryDefs,Relations,Containers,Recordsets,Properties
Exemple
Cration d'un objet RecordSet de type table en lecture seule sur la table Clients de la base de donnes courante.
LesobjetsRecordset
UnobjetRecordsetreprsentelesenregistrementsd'unetableouceuxissusd'unerequte.
Ilexistequatretypesd'objetsRecordset:
Les types d'objets Recordset concerns par chaque proprit ou mthode sont reprsents par T (Table), D (Dynaset), S (Snapshot),
F (Forward Only).
Proprits
AbsolutePosition:Dterminelapositionrelatived'unenregistrementdansunrecordset(DS).
BOF:IndiqueunpositionnementaudbutduRecordset(DSTF).
Bookmark:Renvoieoudfinitunsignetquiidentifiedefaonuniqueunenregistrement(DST).
Bookmarkable:IndiquesileRecordsetprendenchargelessignets(DST).
CacheStart:Dfinitourenvoielesignetdupremierenregistrementplacerenmmoirecache(D).
DateCreated:Renvoieladateetl'heuredecrationdelatablesousjacente(T).
EditMode:Indiquel'tatdemodificationdel'enregistrementencours(DT).
EOF:IndiqueunpositionnementlafinduRecordset(DSTF).
Filter:Permetdedfinirlefiltreappliquer(DSF).
Index:Dfinitl'indexutiliser(T).
LockEdits:Dfinitlaconditiondeverrouillage(DTS).
LastModified:Renvoieunsignetindiquantledernierenregistrementmodifi(DT).
LastUpdated:Renvoieladateetl'heuredederniremodificationdelatabled'originesousjacente(T).
Name:RenvoielenomduRecordset(DSTF).
RecordCount:Indiquelenombred'enregistrementssollicits(DSTF).
Restartable : Indique si le Recordset prend en charge la mthode Requery qui excute nouveau la requte
sousjacente(DSFT).
Sort:Dfinitl'ordredetri(DS).
Transactions:IndiquesileRecordsetsupportelestransactions(DTSF).
Type:IndiqueletypedeRecordset(DSTF).
Updatable:Indiquelesmisesjourautorises(DTSF).
ValidationText:Spcifielemessaged'erreursilaconditiondevalidationestfausse(DSTF).
ValidationRule:SpcifielaconditiondevalidationduRecordset(DSTF).
Mthodes
AddNew:Creunnouvelenregistrement(DT).
CancelUpdate:Annulelesmisesjourenattente(DT).
Clone:CreunecopieduRecordset(DST).
Close:FermeleRecordset(DSTF).
CopyQueryDef:Creunecopiedel'objetQueryDefassociauRecordset(DSF).
Delete:Supprimel'enregistrementcourant(DT).
Edit:Passel'enregistrementcourantenmodeEdition(DT).
FindFirst:Localiselepremierenregistrementrpondantaucritreetenfaitl'enregistrementcourant(DS).
FindLast:Localiseledernierenregistrementrpondantaucritreetenfaitl'enregistrementcourant(DS).
FindNext:Localisel'enregistrementsuivantrpondantaucritreetenfaitl'enregistrementcourant(DS).
FindPrevious:Localisel'enregistrementprcdentrpondantaucritreetenfaitl'enregistrementcourant(DS).
GetRows:Extraitplusieurslignesd'unRecordsetetlescopiedansuntableau(DSTF).
MoveFirst:Localiselepremierenregistrementetenfaitl'enregistrementcourant(DST).
MoveLast:Localiseledernierenregistrementetenfaitl'enregistrementcourant(DST).
MoveNext:Localisel'enregistrementsuivantetenfaitl'enregistrementcourant(DST).
MovePrevious:Localisel'enregistrementprcdentetenfaitl'enregistrementcourant(DST).
Move:Changelapositiondel'enregistrementcourant(DST).
OpenRecordset:CreunnouveauRecordset(DST).
Seek:LocaliseparrapportunIndexslectionn,lepremierenregistrementrpondantauxcritresspcifiset
enfaitl'enregistrementcourant(T).
Update:Metjourl'enregistrement(DT).
Exemple
With rstCli
' Saisie du code client
strCodeCli = InputBox("Saisissez le code client")
' Index courant : cl primaire
.Index = "PrimaryKey"
' Recherche
.Seek "=", strcodecli
' Enregistrement non trouv
If .NoMatch Then
MsgBox "Client non trouv"
Else
' Enregistrement trouv
MsgBox "Socit : " & rstCli("Cli_Societe")
End If
End With
rstCli.Close
Utilisation de la mthode Find : recherche des clients dont le nom de Socit commence par une valeur donne.
LesobjetsTabledef
Un objet TableDef reprsente la dfinition enregistre d'une table ou d'une table attache cre dans une base
externe.
Proprits
Attributes : Dtermine les caractristiques de la table dcrite par l'objet TableDef (exclusivit, attachement,
systme...).
ConflictTable : Renvoie le nom de la table de conflits contenant les enregistrements entrs en conflit pendant
uneoprationdesynchronisation.
Connect:Retournelesinformationssurlasourcedel'objetTableDef.
DateCreated:Indiqueladateetl'heuredecrationdelatablesousjacente.
KeepLocal:Dterminesilatablenedoitpasfairepartied'uneoprationderplication.
LastUpdated:Indiqueladateetl'heuredederniremodificationdelatablesousjacente.
Name:Renvoielenomdelatable.
RecordCount:Indiquelenombred'enregistrementsdanslatable.
Replicable:Dterminesilatabledoitfairepartied'uneoprationderplication.
ReplicaFilter:Dfinitlesenregistrementsd'unetabledevantfairepartied'uneoprationderplication.
SourceTableName:Spcifielenomdelatableattache.
Updatable:Indiquesilamodificationdelastructureestautorise.
ValidationText:Spcifielemessaged'erreursilaconditiondevalidationestfausse.
ValidationRule:Spcifielaconditionrespecterpourlavalidationdel'objet.
Mthodes
CreateField:Creunnouveauchamp(Field).
CreateIndex:CreunnouvelIndex.
CreateProperty:CreunnouvelobjetProperty.
OpenRecordset:CreunnouveauRecordset.
Collections
Fields,Indexes,Properties
Exemple
LesobjetsFieldetIndex
Field
Un objet Field reprsente un champ d'une table (TableDef), d'une relation (Relation), d'une requte (QueryDef), d'un jeu
d'enregistrements (Recordset) ou d'un index (Index).
Proprits
AllowZeroLength:Dfinitsiunechanevideestautorisecommevaleurduchamp.
Attributes:Indiquecertainescaractristiquesduchamp.
CollatingOrder:Spcifielescaractristiquesdecomparaisondechanesdecaractresetl'ordredetri.
DataUpdatable:Indiquesilechamppeuttremisjour.
DefaultValue:Dfinitlavaleurpardfautduchamp.
FieldSize:Renvoielatailled'unchampMemoouBinaireLong(ObjetOLE).
ForeignName : Spcifie, dans une Relation, le nom du champ d'une table externe (table lie) qui correspond
unchamp(clprimaire)delatablesource(tablederfrence).
Name:Renvoielenomduchamp.
OrdinalPosition:Spcifiel'ordred'affichagedeschamps.
Required:Dfinitsilechampdoitcontenirobligatoirementunevaleur.
Size:Dfinitourenvoielatailleduchamp.
SourceField:Indiquelenomduchampsourcedesdonnes.
SourceTable:Indiquelenomdelatablesourcedesdonnes.
Type:Indiqueletypededonneduchamp.
Value:Renvoielavaleurduchamp.
ValidationText:Spcifielemessaged'erreurrenvoysilaconditiondevalidationduchampestfausse.
ValidationOnSet:Spcifiesilavalidationdevaleurduchampestimmdiatelorsdesamodification.
Mthodes
AppendChunk:Ajoutedesdonnesd'uneexpressionchaneunchampdetypeMemoouObjetOLE.
CreateProperty:CreunnouvelobjetProperty.
GetChunk:Littoutouunepartied'unchampMemoouObjetOLE.
Collections
Properties
Exemple
Affiche la liste de tous les champs (nom et type) de la table Clients dans la fentre Excution.
Index
Un objet Index reprsente un index associ un objet TableDef ou Recordset de type table.
Proprits
Clustered:Indiquesil'indexreprsentel'indexderegroupementd'unetable.
DistinctCount:Renvoielenombredevaleursuniquespourcetindexdanslatableassocie.
Foreign:Indiquesil'indexestuneclexternedelatable.
IgnoreNulls : Indique s'il y a cration d'une entre d'index pour les enregistrements dont les champs indexs
contiennentlavaleurNull.
Name:Renvoielenomdel'index.
Primary:Indiquesil'indexestlaclprimaire.
Required:Dfinitsitousleschampsdel'indexdoiventcontenirobligatoirementunevaleur.
Unique:Indiquesilesvaleursdel'indexsontuniques(pasdedoublons).
Mthodes
CreateField:Creunnouveauchamppourl'index.
CreateProperty:Creunenouvelleproprit.
Collections
Fields,Properties
Exemple
LesobjetsQueryDefetParameter
QueryDef
L'objet QueryDef reprsente la dfinition enregistre d'une requte dans une base de donnes.
Proprits
Connect:Donnelesinformationssurlabasededonnesutilisedanslarequte.
DateCreated:Indiqueladateetl'heuredecrationdelarequte.
KeepLocal:Dterminesilarequtedoitfairepartieounond'uneoprationderplication.
LastUpdated:Indiqueladateetl'heuredederniremisejourdelarequte.
MaxRecords:Dfinitlenombremaximumd'enregistrementsquelarequtedoitretourner.
Name:Renvoielenomdelarequte.
RecordsAffected:Indiquelenombred'enregistrementsaffectsparladerniremthodeExecute.
Replicable:Dterminesilarequtedoitfairepartied'uneoprationderplication.
ReturnsRecords:Indiquesilarequtearetourndesenregistrements.
SQL:Dfinitourenvoiel'instructionSQLassocielarequte.
Type:Dfinitletypedelarequte(slection,ajout...).
Updatable:Indiquesilesmisesjoursontautorisestraverslarequte.
Mthodes
Close:Fermelarequte.
CreateProperty:Creunenouvelleproprit.
Execute:LanceunerequteActionouexcuteuneinstructionSQL.
OpenRecordset:CreunnouveauRecordset.
Collections
Fields,Parameters,Properties
Exemple
Parameter
Proprits
Name:Dfinitourenvoielenomduparamtre.
Type:Dfinitourenvoieletypededonnesduparamtre.
Value:Dfinitourenvoielavaleurduparamtre.
Collections
Properties
Exemple
LesobjetsRelation
UnobjetRelationreprsenteunerelationentreleschampsdedeuxobjetsTableDef.
Proprits
Attributes:Indiquecertainescaractristiquesdelarelation(unplusieurs,intgrit...).
ForeignTable:Dfinitourenvoielenomdelatableexterne.
Name:Dfinitourenvoielenomdelarelation.
PartialReplica : Dfinit si la relation doit tre prise en compte pour le remplissage d'un Rplica partiel partir
d'unRplicaintgral.
Table:DfinitourenvoielenomdelaTableDefouduQueryDefsource.
Mthodes
CreateField:CreunnouvelobjetField.
Fields,Properties
Exemple
Enregistrement dans une table des diffrentes relations et de leurs proprits. La table Relations contient 3 champs texte
(Rel_Source, Rel_Externe, Rel_Typerel et 3 champs boolen (Rel_Integrite, Rel_Maj_Cascade, Rel_Sup_Cascade).
LesobjetsContaineretDocument
Container
Un objet Container reprsente l'ensemble des informations portant sur une base de donnes et sur chaque type d'objets qu'elle
contient.
Proprits
AllPermissions:Retournetouteslesautorisationsquis'appliquentlaproprit UserNamedel'objetContainer
encours.
Name:Indiquelenomducontainer.
Owner:Indiquelepropritaireducontainer.
Permissions : Dfinit les permissions d'un utilisateur ou d'un groupe d'utilisateurs identifis par la proprit
UserNamedel'objetContainer.
UserName:Dfinitlenomdel'utilisateur.
Exemple
Affichage de la liste des noms de tous les objets Container de la base dans la fentre Excution.
Document
Un objet Document reprsente l'ensemble des informations portant sur un type d'objet (base de donnes, table, requte ou relation
enregistre).
Proprits
AllPermissions(3.0) : Retourne toutes les autorisations qui s'appliquent la proprit UserName en cours de
l'objetDocument.
Container:Retournelenomdel'objetContainerauquelappartientleDocument.
DateCreated:Retourneladateetl'heuredecrationdelatablesousjacente.
KeepLocal:Dterminesiledocumentdoitounonfairepartied'uneoprationderplication.
LastUpdated:Renvoieladateetl'heuredederniremodificationdelatablesousjacente.
Name:RenvoielenomduDocument.
Owner:RenvoielenomdupropritaireduDocument.
Permissions : Dfinit les permissions de l'utilisateur ou du groupe d'utilisateurs identifis par la proprit
UserNamedel'objetDocument.
UserName:Dfinitlenomdel'utilisateur.
Collections
Properties
Exemple
LesobjetsGroupetUser
User
Proprits
Name:Dfinitourenvoielenomducompteutilisateur.
PID:Renvoielenumrod'identificationpersonnelducompteutilisateur.
PassWord:Renvoielemotdepasseducompteutilisateur.
Mthodes
CreateGroup:CreunnouvelobjetGroup.
NewpassWord:Dfinitunnouveaumotdepassepourl'utilisateur.
Collections
Groups,Properties
Group
Proprits
Name:Dfinieourenvoielenomdugrouped'utilisateurs.
PID:Dfinitlenumropersonnelducomptedegroupe.
Mthodes
CreateUser:CreunnouvelobjetUser.
Users,Properties
Exemple
Pour chaque groupe, affichage dans la fentre Excution des noms de groupes et d'utilisateurs du groupe.
L'objetError
UnobjetErrorreprsenteledtaild'uneerreurd'accsauxdonnes.
Proprits
Description:Renvoieletextedel'erreur.
HelpContext:Fournitunidentificateurdecontexted'aide,souslaformed'unevariabledechane,correspondant
unerubriqued'unfichierd'aideMicrosoftWindows.
HelpFile:Indiquelechemind'accscompletaufichierd'aideconsidr.
Number:Retournelenumrodel'erreur.
Source:Fournitlenomdel'objetoudel'applicationquiagnrl'erreur.
Exemple
Dclenchement intentionnel d'une erreur et affichage de toutes les proprits de l'objet Error.
End Sub
Lemessageaffichestlesuivant:
LesobjetsProperty
UnobjetPropertyreprsenteunepropritd'unobjet.
Proprits
Inherited:Indiquesilapropritesthrite.
Name:Dfinitourenvoielenomdelaproprit.
Type:Dfinitourenvoieletypedelaproprit.
Value:Dfinitourenvoielavaleurdelaproprit.
Exemple
Affichage du nom et de la valeur de chaque proprit d'un objet Recordset dans la fentre Excution.
Prsentation
La bibliothque d'objets ADO (ActiveX Data Objects) vous permet d'crire une application qui accde des
donnessituessurunserveurdebasesdedonnesetdelesmanipulerparlebiaisd'unfournisseurOLE DB.
ADOal'avantaged'trefaciled'emploi,performant,etd'utiliserpeudemmoireetd'espacedisque.ADOoffreles
fonctionnalitsdebasepermettantdecrerdesapplicationsclient/serveuretdesapplicationsWeb.
Pour pouvoir utiliser la bibliothque d'objets ADO, il est ncessaire de cocher la rfrence Microsoft ActiveX
DataObjects2.xLibrary dans la liste des rfrences aux bibliothques d'objets. Si cette rfrence n'est pas
disponible,vousdevezslectionnerlefichierMSADO15.dllpartirduboutondecommandeParcourir.Cefichier
estgnralementsitudanslerpertoire"C:\ProgramFiles\Fichierscommuns\System\ADO".
VouspouvezgalementutiliserlesextensionsADOenslectionnantlarfrenceMicrosoftADOExt2.xforDLL
and Security (fichier MSADOX.DLL). Ces extensions vous permettent d'accder des objets complmentaires
(catalog,users,views...)aumodleADO.
Lefichierd'aideADO210.chmvouspermetd'obtenirdesinformationsdtaillessurl'utilisationdesmodlesADO.
ADOetOLEDB
OLE DB est une technologie permettant un accs uniforme aux donnes stockes dans diverses sources
d'informations : bases de donnes relationnelles ou non relationnelles, messageries, systmes de fichiers
Quasimenttouteslesdonnesdel'entreprisesontaccessiblesparOLEDB.
ADO (ActiveX Data Objects) est l'interface de programmation utilise pour accder aux donnes de tous les
fournisseursdedonnesOLEDB.
Architecturetechnologique
*Microsoft Office 12.0 Access Database Engine OLE DB Provider remplace Microsoft Jet 4.0 OLE DB Provider.
Les fournisseurs de donnes ou Providers sont des pilotes permettant de communiquer avec les sources de donnes.
HirarchiedesobjetsADO
ADOvouspermetd'excuterlasquenced'actionssuivante:
- tablir une connexion une base de donnes OLE DB ou ODBC au moyen de l'objet Connection.
- crer une commande permettant d'envoyer une requte SQL au serveur en utilisant l'objet Command,
- excuter la commande. Si la commande renvoie des lignes, les stocker dans un objet Recordset,
- exploiter les donnes de l'objet Recordset: trier, filtrer, modifier, supprimer les enregistrements,
- si une transaction a t utilise: accepter ou rejeter les mises jour apportes au cours de cette dernire.
Exemple
DescriptiondesobjetsADO
Connection:Reprsenteuneconnexionavecunesourcededonnes.
Command:Dfinitunecommandespcifiqueexcutersurunesourcededonnes.
Recordset:Reprsentelejeud'enregistrementscompletd'unetabledebasesdedonnesoulesrsultatsd'une
commande(ex :rsultatsd'unerequteSQL).
Record : Fonctionne essentiellement comme un objet Recordset d'une seule ligne. La source des donnes dans
un objet Record peut tre une commande qui renvoie une ligne de donnes partir du fournisseur. L'utilisation
d'objetsRecordlaplaced'objetsRecordsetpourrecevoirlesrsultatsd'unerequterenvoyantuneseuleligne
dedonnesliminelachargedetraitementliel'instanciationdel'objetRecordset,lequelestpluscomplexe.
Stream:Fournitlemoyendelire,crireetgrerunfluxd'octetsconstitudetexteoudedonnesbinaires.
LescollectionsADO
Parameters:CollectiondetouslesobjetsParameterd'unobjetCommand.L'objetParameterreprsenteun
paramtre ou argument associ un objet Command bas sur une requte paramtre ou une procdure
stockeparamtre.
Properties : Collection de tous les objets Property pour un objet donn (Connection, Command,
Recordset).L'objetPropertyreprsenteunecaractristiquedynamiqued'unobjetADOdfiniparl'utilisateur.
Fields:CollectiondetouslesobjetsFieldcorrespondunecolonne(ouchamp)d'unobjetRecordset.
LesobjetsConnection
Mthodes
BeginTrans :Commenceunenouvelletransaction.
Cancel : Interrompt et annule l'excution d'une requte lance en mode asynchrone l'aide des mthodes
ExecuteouOpen.
Close:Fermeuneconnexionouverteainsiquetouslesobjetsdpendantdecelleci.
CommitTrans:Enregistrelesmodificationseffectuessurlesdonnesetarrtelatransactionencours.
Execute:Excutelarequte,l'instructionSQL,laprocdurestockeouletextepropreaufournisseurOLEDB.
Open:Ouvreuneconnexionunesourcededonnes,afindepouvoirexcuterdescommandes.
RollbackTrans : Annule les modifications effectues sur les donnes durant la transaction en cours et arrte
celleci.
Proprits
Attributes : Dfinit ou renvoie une ou plusieurs caractristiques d'un objet Connection. La valeur par dfaut
estzro.
CommandTimeout : Indique le dlai respecter, en secondes, lors d'une tentative d'excution d'une
commandeavantd'interromprecettetentativeetdegnrerunmessaged'erreur.Lavaleurpardfautest30.
ConnectionString : Dfinit ou renvoie les informations utilises pour tablir une connexion avec la source de
donnes.
ConnectionTimeout : Indique le dlai respecter, en secondes, lors d'une tentative de connexion avant d'y
mettreuntermeetdegnrerunmessaged'erreur.Lavaleurpardfautest15.
CursorLocation:Dfinitourenvoieletypedecurseurutiliserpardfautpourcetteconnexion(curseurct
clientoucurseurctserveur).
DefaultDatabase:Indiquelabasededonnespardfautd'unobjetConnection.
IsolationLevel:Indiqueleniveaud'isolationd'unobjetConnection.
Mode:Indiquelesautorisationsdemodificationdedonnesd'unobjetConnection.
Provider:IndiquelenomdufournisseurOLEDBdel'objetConnection.
State:Indiquesil'objetConnectionestouvertouferm.Enlectureseule.
Version:Indiquelenumrodeversiond'ADO.Enlectureseule.
Exemple
Utilisation des mthodes CommitTrans et RollbackTrans pour confirmer ou annuler la mise jour d'enregistrements.
LesobjetsCommand
Mthodes
Cancel : Interrompt et annule l'excution d'une requte lance en mode asynchrone l'aide de la mthode
Execute.
CreateParameter:CreunnouvelobjetParameteretspcifiesesproprits.
Execute : Excute la requte, l'instruction SQL ou la procdure stocke spcifie par la proprit
CommandText.
Proprits
ActiveConnection:Indiquel'objetConnectionauquelestassocielacommande.
CommandText:ContientletextedelacommandeenvoyeraufournisseurOLEDB.
CommandTimeout : Indique le dlai (en secondes) respecter, lors d'une tentative d'excution de la
commandeavantd'interromprecettetentativeetdegnrerunmessaged'erreur.Lavaleurpardfautest30.
CommandType:Indiqueletypedel'objetCommand.
Name:Indiquelenomdel'objetCommand.
State:Indiquesil'objetCommandestouvertouferm.Enlectureseule.
Exemple
LesobjetsRecordset
Mthodes
AddNew:CreunnouvelenregistrementpourunobjetRecordsetpouvanttremisjour.
Cancel:Annulel'excutiond'uneoprationOpenasynchroneenattente.
CancelBatch:Annuleunemisejourparlotsenattente.
Clone:CreunobjetRecordsetendoublepartird'unobjetRecordsetexistant.
Close:Fermel'objetRecordsetouvertainsiquetouslesobjetsdpendantdeceluici.
CompareBookmarks:Comparedeuxsignetsetrenvoieunevaleurindiquantleurspositionsrelatives.
Delete:Supprimel'enregistrementencoursouungrouped'enregistrements.
Find:RecherchedansunobjetRecordsetl'enregistrementcorrespondantdescritresspcifiques.
GetRows:Extraitplusieursenregistrementsd'unobjetRecordsetetlesplacedansuntableau.
GetString:RenvoieunobjetRecordsetsousformedechane.
Move:Dplacelapositiondel'enregistrementencoursdansunobjetRecordset.
MoveLast:Dplacelapositiondel'objetencoursjusqu'audernierenregistrementdansl'objetRecordset.
MovePrevious:Dplacelapositiondel'enregistrementencoursjusqu'l'enregistrementprcdentdansl'objet
Recordset.
NextRecordset : Renvoie le jeu d'enregistrements suivant dans le cas d'une commande comportant plusieurs
requtesd'extraction.
Open:Ouvreuncurseurquireprsentelesenregistrementsd'unetableoulesrsultatsd'unerequte.
Requery:Metjourlesdonnesd'unobjetRecordsetenrexcutantlarequtesurlaquellel'objetestbas.
Resync:Actualiselesdonnesdel'objetRecordsetencourspartirdelabasededonnessousjacente.
Save:Enregistrel'objetRecordsetdansunfichier.
Seek:Recherchedansl'indexd'unobjetRecordsetunenregistrementcorrespondantunevaleur,etremplace
l'enregistrementencoursparceluitrouv.(Ils'agitd'unenouvellefonctionnalitd'ADO2.1).
Supports:DterminesiunobjetRecordsetprendenchargeuntypedefonctionnalitparticulier.
Update:Enregistrelesmodificationsapportesl'enregistrementencoursdel'objetRecordset.
UpdateBatch:Enregistretouteslesmisesjourparlotsenattentesurledisque.
Proprits
AbsolutePage :Indiquelapagedel'enregistrementencours.
AbsolutePosition:Indiquelapositionordinaledel'enregistrementencoursdansunobjetRecordset.
ActiveCommand:Indiquel'objetCommandquiacrl'objetRecordsetcorrespondant.Enlectureseule.
ActiveConnection:IndiquequelobjetConnectionappartientl'objetRecordset.
BOF : Indique si le pointeur d'enregistrement est positionn avant le premier enregistrement de l'objet
Recordset.Enlectureseule.
Bookmark:Renvoieunsignetquiidentifiedemanireuniquel'enregistrementencoursdansl'objet Recordset
oudplacel'enregistrementencourssurunenregistrementidentifiparunsignetvalide.
CacheSize:Indiquelenombred'enregistrementsd'unobjetRecordsetstockenmmoirecache.
CursorLocation:Dfinitourenvoieletypedecurseurutiliserpardfautpourcetteconnexion(curseurct
clientoucurseurctserveur).
CursorType:IndiqueletypedecurseurutilispourcetobjetRecordset.
DataMember:Indiquelenomdumembrededonnesextrairedel'objetdfiniparlapropritDataSource.En
lectureseule.
DataSource : Indique qu'un objet contenant des donnes doit tre reprsent comme objet Recordset. En
lectureseule.
EditMode:Indiquelestatutdemodificationdel'enregistrementencours.Enlectureseule.
EOF : Indique si le pointeur d'enregistrement est positionn aprs le dernier enregistrement dans l'objet
Recordset.Enlectureseule.
Index:Indiquelenomdel'indexencourspourleRecordset.
LockType:Indiqueletypedeverrouillagedesenregistrementslorsdesmodifications.
MarshalOptions:Indiquelesenregistrementsrenvoyerauserveur.
MaxRecords : Indique le nombre maximal d'enregistrements renvoyer un objet Recordset pour une mme
requte.Lavaleurpardfautestzro(aucunelimite).
PageCount:Indiquelenombredepagesdedonnescontenuesdansl'objetRecordset.Enlectureseule.
PageSize:Indiquelenombred'enregistrementscontenusdansunepageduRecordset.
Properties:RfrencelaCollectiondesobjetsPropertydel'objetRecordsetencours.
RecordCount:Indiquelenombreactueld'enregistrementsdansl'objetRecordset.Enlectureseule.
Sort:Spcifieunouplusieursnomsdechampsselonlesquelsl'objetRecordsetesttri,etdterminel'ordrede
tridechaquechamp.
Source:Indiquelasourcedesdonnesd'unobjetRecordset.
State:Indiquel'tatduRecordset :ouvert,fermouoprationasynchroneencours.Enlectureseule.
Status : Indique le statut de l'enregistrement en cours en ce qui concerne les mises jour par lots ou autres
oprationsglobales.Enlectureseule.
StayInSync:Indique,dansunobjet Recordsethirarchique,silaligneparentdoitchangerlorsquel'ensemble
desenregistrementsenfantssousjacentschange.Enlectureseule.
Exemple
Utilisation de la mthode Find : recherche des clients dont le nom de Socit commence par une valeur donne.
LacollectionFields
Mthodes
Append:AjouteunobjetFieldunecollectionFields.
Delete:SupprimeunobjetFielddelacollectionFields.
Refresh:MetjourlesobjetsFielddanslacollectionFields.
LesobjetsField
Mthodes
AppendChunk:AjoutedesdonnesunobjetFielddetypebinaireoudegrandetaille.
Proprits
ActualSize:Indiquelalongueurdelavaleurd'unchamp.Enlectureseule.
Attributes:Indiqueuneouplusieurscaractristiquesd'unobjetField.
DefinedSize:Indiquelatailledel'objetField.Encritureseule.
Name:Indiquelenomdel'objetField.
NumericScale:Indiquel'chelledesvaleursnumriquesdel'objetField.Encritureseule.
OriginalValue:Indiquelavaleurdel'objetFieldavantmodification.Enlectureseule.
Precision:Indiqueledegrdeprcisiondesvaleursdetypenumriquedansl'objetField.Enlectureseule.
Properties:ComprendtouslesobjetsPropertyd'unobjetField.
Type:Indiqueletypededonnesdel'objetField.
UnderlyingValue:Indiquelavaleurencoursdel'objetFielddanslabasededonnes.Enlectureseule.
Value :Indiquelavaleurdel'objetField.
LacollectionParameters
Mthodes
Append:AjouteunobjetParameterlacollectionParameters.
Delete:SupprimeunobjetParameterdelacollectionParameters.
Refresh:MetjourlesobjetsParameterdanslacollectionParameters.
Exemple
Affichage de la liste de tous les champs (nom et type) de la table Clients dans la fentre Excution.
LesobjetsParameter
Mthodes
AppendChunk:AjoutedesdonnesunobjetParameterdetypebinaireoutextedegrandetaille.
Proprits
Attributes:Indiqueuneouplusieurscaractristiquesd'unobjetParameter.
Name:Indiquelenomdel'objetParameter.
NumericScale:Indiquel'chelledesvaleursnumriquesdel'objetParameter.
Precision:IndiqueledegrdeprcisiondesvaleursdetypeNumericdel'objetParameter.
Properties :ComprendtouslesobjetsPropertyd'unobjetParameter.
Size:Indiquelataillemaximale,enoctetsouencaractres,d'unobjetParameter.
Type:Indiqueletypededonnesdel'objetParameter.
Value:Indiquelavaleurattribuel'objetParameter.
LacollectionProperties
Mthodes
Refresh:MetjourlesobjetsPropertydanslacollectionPropertiespartirdesinformationsdufournisseur.
LesobjetsProperty
Proprits
Attributes:Indiqueuneouplusieurscaractristiquesd'unobjetProperty.
Name:Indiquelenomdel'objetProperty.Enlectureseule.
Type:Indiqueletypededonnesdel'objetProperty.
Value:Indiquelavaleurdel'objetProperty.
LacollectionErrors
Mthodes
Clear:Supprimel'ensembledesobjetsErrordelacollectionErrors.
Refresh:MetjourlesobjetsErrorpartirdesinformationsdufournisseurOLEDB.
Proprits
Count:Indiquelenombred'objetsErrordelacollectionErrors.Enlectureseule.
Item:Permetl'indexationdelacollectionErrorsafinderfrencerunobjetErrorspcifique.Enlectureseule.
LesobjetsError
Proprits
Description:Renvoielachanedescriptiveassociel'objetError.Enlectureseule.
HelpContext:IndiqueleContextIDdufichierd'aideassocil'objetError.Enlectureseule.
HelpFile:Indiquelenomdufichierd'aideassocil'objetError.Enlectureseule.
Number:Indiquelenumroidentifiantdemanireuniquel'erreurporteparl'objetError.Enlectureseule.
Source:Indiquelenomdel'objetoudel'applicationl'origined'uneerreur.Enlectureseule.
SQLState:IndiquelavaleurrenvoyeparlefournisseurOLEDB.Chanedecinqcaractresconformelanorme
SQLANSI.Enlectureseule.
LelangageSQL(StructuredQueryLangageoulangagederequtestructur)estunlangaged'interrogationet
degestiondebasesdedonnesrelationnelles.
Access 2007 utilise SQL comme langage de requte. Lorsque vous crez une requte en mode Cration de
requte, Access construit en tche de fond les instructions SQL quivalentes. En fait, la plupart des proprits
delarequteenmodeCrationderequteontdesclausesquivalentesetdesoptionsaccessiblesenlangage
SQL.
Ilestpossibled'afficheroudemodifierl'instructionSQLcorrespondantunerequteenpassantenmodeSQL.
Exemple
CertainesrequtesSQL,nommesrequtesspcifiquesSQL,nepeuventtrecresdanslagrilledecration
derequtesmaisdoiventtresaisiesdirectementenmodeSQL.Ils'agit :
- des "requtes directes" qui vous permettent de travailler directement avec les tables sur le serveur,
- des "requtes dfinition des donnes" qui vous permettent de crer, supprimer ou modifier la structure des tables,
- des "requtes Union" qui vous permettent de regrouper les champs de deux tables (ou plus) dans un mme champ rsultat de
la requte. Ces requtes sont trs utiles pour fusionner des enregistrements provenant de tables diffrentes.
Les requtes SQL s'intgrent parfaitement VBA et peuvent tre utilises partir des mthodes de diffrents
objets:
- etc.
LesrequtesSQLsontaussitrsutilisesdanslesformulaires :
- etc ...
LaplupartdecespropritspeuventtremodifiesparducodeVBA.
Lesavantagesdel'utilisationd'instructionsSQLenVBAsontlessuivants :
Vitessed'excution:uneinstructionSelectestplusrapidequeleparcourssquentield'unetable.
Performance accrue : en mode client/serveur, les requtes sont compiles par le SGBD qui optimise leurs
performances.
Maintenanceplusfacile:lecodedesinstructionsSQLestpluscourt,doncpluslisiblequel'quivalentVBA.
Standardisation:lelangageSQLestlestandardd'interrogationdesbasesdedonnesrelationnelles.
L'instructionSELECT
SELECT est l'instruction SQL la plus utilise : elle correspond la requte Slection sous Access. Elle permet
d'extrairedeschampsd'unensembled'enregistrementsrpondantcertainscritres.
Syntaxe
All (valeurpardfaut):Touslesenregistrementsrpondantauxcritressontprisencompte.
Distinct :Lesenregistrementspourlesquelsleschampsslectionnscontiennentdesdonnesendoublesont
omis.
<liste de champs> : Liste des champs slectionns, spars par des virgules, en respectant la syntaxe
suivante :
*|table.*|[table.]champ1[ASalias1][,
[table.]champ2[ASalias2][,...]]
* :Indiquequetousleschampsdela(des)table(s)spcifie(s)sontslectionn(s).
alias1, alias2 : Indiquent les noms utiliser comme enttes de colonne la place des noms de colonnes
originauxdanstable.
<liste de tables> : Nom de la ou des tables contenant les donnes extraire. Si la requte utilise plusieurs
tables,lemodedejointuredoitgalementtreprcisdanslaclauseFROM.
Exemples
LaclauseFROM
LaclauseFROMspcifielestablesoulesrequtesdontsontextraiteslesdonnes.
Syntaxe
[ LEFT | RIGHT | INNER ] :Ces oprateurs permettent de dfinir le type de jointure entre les tables.
LEFT JOIN : Utilisez une opration LEFT JOIN pour crer une jointure externe gauche. Le rsultat de la jointure externe gauche
comprend tous les enregistrements issus de la premire table (celle de gauche: <table1>) mme ceux pour lesquels il n'existe pas
de valeur correspondante dans la deuxime table (celle de droite: <table2>).
RIGHT JOIN : Utilisez une opration RIGHT JOIN pour crer une jointure externe droite. Le rsultat de la jointure externe droite
comprend tous les enregistrements issus de la deuxime table (celle de droite: <table2>) mme ceux pour lesquels il n'existe pas
de valeur correspondante dans la premire table (celle de gauche: <table1>).
<oprateur de comparaison> : Utilisez tout oprateur de comparaison relationnelle tel que: = , <, >, <= , >= ,<> (diffrent de).
L'oprateur = est le plus couramment utilis.
Exemples
Premier exemple
Deuxime exemple
LaclauseWHERE
LaclauseWHEREpermetdefiltrerlesenregistrementspartirdecritres.
LesconditionsdelaclauseWHEREs'exprimentaveclesoprateurssuivants :
- oprateurs de comparaison: =, <, >, <=, >=, <> (diffrent de), Is [Not] Null, [Not] In, Between.
Exemples
LaclauseGROUPBY
LaclauseGROUPBYcorrespondaux"Totaux"desrequtesAccess(appelsRegroupementsdanslesanciennes
versions).Ellepermetderegrouperdesdonnessurunouplusieurschamps.Elleestprincipalementutilisepour
effectuerdesfonctionsd'agrgationSQLtellesqueSum(somme),Count(compte),Avg(moyenne)...
Exemples
LaclauseHAVING
La clause HAVING spcifie les enregistrements regroups afficher dans une instruction SELECT dote d'une
clause GROUP BY. Une fois le regroupement effectu suivant la liste des champs du GROUP BY, seuls sont
conservslesenregistrementsquivrifientlaconditionspcifiedanslaclauseHAVING.
Exemple
Cette requte extrait les commandes dont le montant total est suprieur 10000 .
LaclauseORDERBY
La clause ORDER BY trie, par ordre croissant ou dcroissant, les enregistrements rsultants d'une requte en
fonctionduoudeschampsspcifis.
Syntaxe
[ORDER BY champ1 [ASC | DESC ][, champ2 [ASC | DESC ]][, ...]]]
ASC:Ordrecroissant.
DESC:Ordredcroissant.
Exemple
Cette requte renvoie le nombre de commandes passes par client, tri par ordre dcroissant du nombre de commande.
L'instructionUPDATE
L'instruction UPDATE correspond une requte de Mise jour qui modifie les valeurs des champs dans la table
spcifie,pourlesenregistrementsquirpondentaucritrefourni(facultatifs).
Syntaxe
UPDATE table
SET champ1 = nouvellevaleur1[, champ2 = nouvellevaleur2]...
[WHERE critre]
Exemple
Cette requte modifie le code pays de tous les enregistrements de la table Clients.
Cette requte modifie dans la table Clients le code pays des enregistrements des clients dont la ville est 'Marseille'.
L'instructionDELETE
L'instruction DELETE correspond une requte Suppression qui supprime des enregistrements dans la table
mentionnedanslaclauseFROM,selonlescritresfournis(facultatifs).
Syntaxe
Si aucune clause Where n'est spcifie, tous les enregistrements sont supprims.
Exemple
L'instructionINSERTINTO
L'instructionSQLINSERTINTOcorrespondunerequteAjoutquiajoutedesenregistrementsdansunetable.
Syntaxe
Cette requte doit contenir le mme nombre de valeurs, du mme type et dans le mme ordre, que de colonnes valoriser.
L'instruction SELECT doit renvoyer autant de valeurs, dans le mme ordre et du mme type que les colonnes valoriser (champs de
l'instruction INSERT).
Exemples
Autresinstructions
Requtesd'interrogation
TRANSFORM:Creunerequteanalysecroise.Cetteinstructionestutiliselorsdelacrationd'unerequte
partirdel'assistantRequteanalysecroised'Access.
UNION : Cre une requte qui fusionne les rsultats de deux, ou plusieurs, requtes ou tables indpendantes.
Lesstructuresdestableset/oudesrequtesfusionnesdoiventtreidentiques.
Crationetgestiondetables
CREATETABLE:Creunenouvelletable.
CREATEINDEX:Creunnouvelindexpourunetableexistante.
ALTERTABLE:Modifielastructured'unetable.
DROPTABLE:Supprimeunetabledelabasededonnes.
DROPINDEX:Supprimeunindexd'unetable.
Crationetgestiond'utilisateursetdegroupes
CREATEUSER:Creunouplusieursnouveauxutilisateurs.
ADDUSER:Ajouteunouplusieursutilisateursungrouped'utilisateursexistant.
DROPUSER:Supprimeunouplusieursutilisateurs.
CREATEGROUP:Creunouplusieursnouveauxgroupes.
DROPGROUP:Supprimeunouplusieursgroupesd'utilisateurs.
GRANT:Attribuedesprivilgesspcifiquesunutilisateurouungrouped'utilisateursexistant.
REVOKE:Retiredesprivilgesspcifiquesunutilisateurouungrouped'utilisateursexistant.
Vous pouvez obtenir de plus amples informations au sujet du langage SQL et de ses instructions, partir de la rubrique "Rfrence
de Microsoft jet SQL", du sommaire de l'aide Access.
Afindedmontrerl'intrtdulangageSQL,lesexemplessuivantsproposentdeuxprocduresquivalentes:l'une
utiliselelangageSQL,l'autrenon.
Pour raliser ces exemples vous devez crer une table Clients avec un champ nomm Cli_Societe, et saisir
quelquesenregistrementsdanscettetable.VouspouvezgalementimporterlatableClientsdelabaseexemple
Comptoir.mdb livre avec Access 2003 et renommer les champsSocit en Cli_Societe, Pays en Cli_Pays et
VilleenCli_Ville.
Misejourd'enregistrements
Lecodedel'exemplesuivantpermetdemodifierlecontenud'unchampdansunetablepourdesenregistrements
rpondantcertainscritres.
rstClient.Update
End If
rstClient.MoveNext
Loop
End Sub
Chargementd'unelistedroulante
Le code de l'exemple ciaprs permet d'afficher dans une liste droulante (contrle zone de liste) le nom des
clientsdontlenomdeSocitcommenceparunelettredonne(lalettreestsaisiedansunezonedetexte).
Pourtestercetexemplevousdevez:
Code VBA utilisant une requte SQL de type SELECT. Le contenu de la liste est le rsultat de la requte SQL.
Code VBA quivalent sans requte SQL. La liste est renseigne partir d'une liste de valeur.
Les exemples prcdents permettent de constater que le code utilisant SQL est plus court et son excution plus rapide, ce qui peut
s'avrer trs intressant par exemple si la table client contient un nombre important d'enregistrements.
Dfinition
Unvnementestissud'uneactiondel'utilisateuroudusystmesurunobjet.Ildclenchel'excutionducode
correspondantlaprocdurevnementielledel'objetactiv.
L'utilisation d'une procdure vnementielle ou d'une macro permet d'ajouter la rponse propre l'application
unvnementseproduisantdansunformulaire,untatouuncontrle.
AssociationdecodeVBAunvnement
VouspouvezaffecteruncodeVBAl'vnementd'unobjetdedeuxfaons :
- partir des listes droulantes d'objets et d'vnements dans l'diteur Visual Basic
Leslistesd'vnementssuivantessontclassespartypeetcomportent:
- le nom de l'vnement,
- le nom de la proprit correspondante dans la fentre des proprits de l'objet (entre parenthses),
- la description de l'vnement,
- la mention Annulation indique si l'vnement peut tre annul ou pas. L'annulation d'un vnement fait l'objet du paragraphe
Annulation d'un vnement.
EvnementsdetypeFentre
Open:(Surouverture)
Seproduitl'ouvertureduformulairemaisavantquelepremierenregistrementsoitaffich.
Seproduitl'ouvertured'untat,maisavantsonimpression.
Annulation:Oui
Load:(Surchargement)
Seproduitl'ouvertureduformulairelorsquelepremierenregistrementestaffich.
Annulation:Non
Resize:(Surredimensionnement)
Seproduitlorsdupremieraffichageduformulaireetlorsdesmodificationsdesataille.
Annulation:Non
UnLoad:(Surlibration)
Se produit lors de la fermeture et lorsque les enregistrements sont librs, mais avant que le formulaire ne
disparaisse.
Annulation:Oui
Close:(Surfermeture)
Seproduitlorsqueleformulaireoul'tatdisparatlafermeture.
Annulation:Non
EvnementsdetypeFocus
Lesvnementsdetype"focus"peuvents'appliquerauxformulaires(Activate,Deactivate,GotFocus,LostFocus)
ouauxcontrles(Enter,Exit,SetFocus,LostFocus).
On dit qu'un objet a le focus lorsqu'il peut recevoir une saisie de l'utilisateur via des actions la souris ou au
clavier.Lesobjetsquiontlefocussontappelsobjetsactifs(ActiveFormouActiveControl).
Activate:(Suractiv)
Seproduitlorsquelafentreduformulaireoudel'tatdevientactive.
Annulation:Non
Deactivate:(Surdsactiv)
Seproduitlorsdel'activationd'uneautrefentre,maisavantqu'ellenesoitactive.
Seproduitgalementlorsdelafermeturedelafentre.
Enter:(Surentre)
Seproduitavantqu'uncontrleneprennelefocuspartird'unautrecontrleoul'ouvertureduformulaire.
Annulation:Non
Exit:(Sursortie)
Se produit avant qu'un contrle ne perde le focus au profit d'un autre contrle du formulaire ou d'un autre
formulaire.
Annulation:Oui
GotFocus:(Surrceptionfocus)
Seproduitlorsqu'uncontrleouunformulairesanscontrleactifreoitlefocus.
Annulation:Non
LostFocus:(Surpertefocus)
Seproduitlorsqu'uncontrleouunformulaireperdlefocus.
Annulation:Non
EvnementsdetypeDonnes
Les vnements de type "donnes" s'appliquent aux formulaires associs une source de donnes (proprit
RecordSourcerenseignepartird'unnomdetableoud'unerequte)etauxcontrlesassocisunchampdela
sourcededonnesduformulaire(propritControlSourcerenseigne).
AfterInsert:(Aprsinsertion)
Seproduitaprsl'ajoutd'unnouvelenregistrementdanslatable.
Annulation:Non
AfterUpdate :(AprsMAJ)
Seproduitaprslamisejourd'uncontrleoud'unenregistrementavecdesdonnesmodifies.
Annulation:Non
AfterDelConfirm:(Aprssuppression)
Seproduitaprsquel'utilisateuraitrpondulademandedesuppressiondesenregistrements.
Annulation:Non
BeforeInsert:(Avantinsertion)
Se produit lors de la frappe du premier caractre d'un nouvel enregistrement, mais avant l'ajout rel de
l'enregistrement.
Annulation:Oui
BeforeUpdate :(AvantMAJ)
Seproduitavantlamisejourd'uncontrleoud'unenregistrementavecdesdonnesmodifies.
Annulation:Oui
BeforeDelConfirm:(Avantsuppression)
Seproduitaprsquel'utilisateuraitsupprimdesenregistrements,etavantqu'Accessnedemandeconfirmation.
Annulation:Oui
NotInList:(Surabsencedansliste)
Annulation:Non
Current:(Suractivation)
Seproduitlorsquelefocuspassed'unenregistrementl'autre.
Seproduitgalementl'ouvertureavantquelepremierenregistrementnedevienneceluiencours.
Annulation:Non
Change:(Surchangement)
Seproduitlorsdelamodificationducontenud'unezonetexteoulistemodifiable(clavieroumacro/VisualBasic).
Annulation:Non
Updated:(SurMAJ)
Seproduitlorsquelesdonnesd'unobjetOLEonttmodifies.
Annulation:Non
Delete:(Sursuppression)
Seproduitavantlasuppressioneffective.Lorsdel'appuisur[Suppr]parexemple.
Annulation:Oui
Dirty:Seproduitlorsquelecontenud'unformulaireoulapartietexted'unezonedelistemodifiablechange.
Seproduitgalementlorsdupassaged'unepageuneautredansuncontrleOnglet.
Annulation:Oui
EvnementsdetypeSouris
Click:(Surclic)
Seproduitlorsdel'appuisurleboutongauchedelasourissuruncontrleouunezonevierged'unformulaire.
Annulation:Non
DblClick:(Surdoubleclic)
Se produit lors de deux appuis sur le bouton gauche de la souris sur un contrle ou une zone vierge d'un
formulaire.
Annulation:Oui
MouseDown:(Sursourisappuye)
Seproduitlorsdel'appuisurunboutondelasourissuruncontrleouunformulaire.
Annulation:Oui
MouseMove:(Sursourisdplace)
Seproduitlorsquel'utilisateurdplacelasourissurunformulaireouuncontrle.
Annulation:Non
MouseUp:(Sursourisrelche)
Seproduitlorsquel'utilisateurrelcheleboutondelasourissuruncontrleouunformulaire.
Annulation:Non
EvnementsdetypeClavier
Annulation:Non
KeyPress:(Surtoucheactive)
Se produit lors de l'appui sur une touche mettant un caractre ANSI standard ou lors de l'excution de
SendKeysouEnvoiTouches.
Ilestpossiblecependantd'empcherl'objetderecevoirlatoucheenattribuantlavaleur0l'argumentkeyAscii
delaprocdureKeyPressdel'objet.
Annulation:Oui(parmacroouVBA)
KeyUp:(Surtoucherelche)
Seproduitlorsquel'utilisateurrelchelatoucheoulorsdel'excutiondeSendKeysouEnvoiTouches.
Ilestpossiblecependantd'empcherl'objetderecevoirlatoucheenattribuantlavaleur0l'argumentKeyCode
delaprocdureKeyUpdel'objet.
Annulation:Non
La proprit KeyPreview (aperu des touches) d'un formulaire dtermine si les procdures vnementielles de clavier du niveau
formulaire sont appeles avant celles du niveau contrle. Vous pouvez utiliser la proprit KeyPreview pour crer une procdure de
gestion du clavier au niveau d'un formulaire.
Exemple
L'exemple suivant montre comment afficher un formulaire lorsque l'utilisateur tape sur la touche [F1], et ce quel que soit le contrle
actif.
vnementsdetypeImpression
Cesvnementss'appliquentauxtatsAccess.
Format:(Auformatage)
SeproduitlorsqueMicrosoftAccessdterminequellesdonnesappartiennentquellessections.
Annulation:Oui
Print:(Surimpression)
Seproduitlorsdelamiseenformedesdonnesd'unesectionpourimpression.
Annulation:Oui
Retreat:(Aureformatage)
SeproduitlorsqueMicrosoftAccessretourneunesectionprcdentependantlamiseenformed'untat.
NoData:(Suraucunedonne)
SeproduitlorsqueMicrosoftAccessamisenformeuntatenvuedesonimpressionetqueceluicinecontient
aucunedonne.
Annulation:Oui
Page:(Surlapage)
SeproduitaprsqueMicrosoftAccessaitmisenformeunepaged'untatenvuedesonimpression,maisavant
quelapagenesoitimprime.
Annulation:Non
Les vnements Format, Print et Retreat s'appliquent aux sections des tats.
vnementsdetypeFiltre
ApplyFilter:(Surfiltreappliqu)
Seproduitlorsquel'utilisateurappliqueunfiltre.
Annulation:Oui
Filter:(Surfiltre)
Seproduitlorsquel'utilisateurcreunfiltre.
Annulation:Oui
vnementsdetypeErreuretMinuterie
Error:(Surerreur)
Seproduitlorsqu'uneerreursurvient.
Annulation:Non
Timer:(Surminuterie)
Seproduitlorsqu'undlaispcifis'estcoul.
Annulation:Non
Dans certains cas, il est souhaitable de pouvoir annuler un vnement. Pour cela, il existe deux faons de
procder:
- en spcifiant le nom d'une macro, contenant l'action AnnulerEvnement, comme paramtre de la proprit de type vnement
correspondante, par exemple pour annuler la mise jour d'un contrle ou pour placer le nom de la macro contenant l'action
AnnulerEvnement sur sa proprit AvantMAJ. L'action AnnulerEvnement en Visual Basic utilise la mthode CancelEvent
de l'objet Docmd.
Exemple
Si la date est incorrecte, l'vnement Exit (Sortie) est annul : le curseur reste positionn sur le champ.
Tous les vnements ne sont pas annulables (voir tableaux des catgories d'vnements prcdents).
Une action utilisateur ou systme gnre directement un vnement, mais plusieurs vnements sousjacents
peuventtreactivs.
Voiciquelquessquencestypesd'enchanementsd'vnements:
Ouvertured'unformulaire:
Fermetured'unformulaire:
Entredansuncontrle:
Enter GotFocus
Sortied'uncontrle:
Exit LostFocus
Passaged'unformulaireunautre:
Deactivate(form1) Activate(form2)
Modificationd'unezonedetexte:
Misejourd'uncontrle:
Misejourd'unenregistrement:
Introductiondanslepremierchampd'unnouvelenregistrement:
Suppressiond'enregistrements:
DansMicrosoftAccesslesvnementsdemisejourinterviennentdeuxniveaux :
Danslecasd'unemisejourd'uncontrle,cesontlesvnementsBeforeUpdateetAfterUpdateducontrle
luimmequisontexcuts.
Dans le cas d'une mise jour d'enregistrement, ce sont les vnements BeforeUpdate et AfterUpdate du
formulairequisontexcuts.
Lesvnements"misejourdescontrles"sontexcutsavantlesvnements"misejourduformulaire".
Ondistinguediffrentstypesd'erreurdanslelangageVBA :
Leserreursdesyntaxe
LeserreursdesyntaxepeuventtredcelesautomatiquementlorsdelasaisieducodedansVBA.
Pouractiverlavrificationdesyntaxe,danslemenuOutils:
Slectionnez Options.
Exemple
Les erreurs de syntaxe non corriges provoqueront une erreur de compilation (cf. message affich).
Leserreursdecompilation
LeserreursdecompilationsontdceleslorsqueAccesstentedecompilervotrecode.
LecodeVBApeuttrecompildedeuxfaons:
- la demande de l'utilisateur en slectionnant l'option Compiler du menu Dbogage. Dans ce cas le code est entirement
compil.
- Automatiquement lors de l'excution du code. Dans ce cas, le code contenu dans les procdures n'est compil que lors du
premier appel de la procdure. Les procdures non appeles ne seront pas compiles.
Il est recommand de compiler le programme avant de l'excuter afin de gagner du temps sur la mise au point.
Ilestpossibled'viterleserreursd'excutionduesdesvariablesnondclaresenutilisantl'instructionOption
Explicit.Sivoustentezd'utiliserunevariablenondclare,uneerreurseproduitlorsdelacompilation.
Leserreursd'excution
Les erreurs d'excution sont dceles lorsque Access lance l'excution de votre code. Une instruction, une
opration, un appel de fonction... invalides provoquent une erreur d'excution. Par exemple, l'utilisation d'une
variable non dclare ou un calcul effectu sur une variable comportant une valeur non numrique peuvent
provoqueruneerreurd'excution.
Exemple
La variable dblRayon transmise comme argument contient une valeur non numrique.
Leserreursdelogiquesontliesdeserreursderaisonnementouunemauvaisetraductiond'unraisonnement
encodeVBA.Parexempleunalgorithmedecalculpeutproduireuneerreurdersultatsi,lorsdesatranscription
enVBA,uneoprationestomiseoumaltraduite,ousil'algorithmeesterron.
Leserreursdelogiquesontlesplusdifficilesdtecter.Ellesn'entranentgnralementpasd'erreurd'excution,
maisproduisentunrsultatdiffrentdeceluiattendu.
Dansl'exemplecitprcdemment,silavaleurdePiestfausseoulaformuledecalculduvolumeincorrecte,la
valeurretourneparVolSphereseraerrone.
Prsentation
Le mode dbogage permet, entre autres, de dtecter et de corriger interactivement les erreurs autorisant ainsi
lapoursuitedel'excutionduprogramme.
Lorsqu'une erreur d'excution se produit, un code erreur est affich, l'excution du programme est interrompue
parAccessetlemodedbogageestactiv.
Aveclesdiffrentsoutilsdedbogage,onpeut :
- etc.
Labarred'outilsDbogage
Labarred'outilsDbogagepermetd'accderdirectementauxdiffrentsoutilsdedbogage.
2. Excuter (F5) : Excute le code de la procdure en cours, la feuille UserForm active ou une macro.
3. Arrt (Ctrl Pause) : Interrompt l'excution du programme en cours et passe en mode Arrt.
5. Basculer le point d'arrt (F9) : Dfinit ou supprime un point d'arrt sur la ligne en cours ; le code est excut jusqu'au point
d'arrt, puis passe en mode dbogage.
6. Pas pas dtaill (F8] : Excute le code, instruction par instruction, en parcourant la procdure en cours et des procdures
appeles.
7. Pas pas principal (Shift F8) : Excute le code, instruction par instruction, uniquement pour la procdure en cours (les
instructions des procdures appeles sont excutes en continu).
8. Pas pas sortant (Ctrl Shift F8) : Excute en continu les lignes restantes de la procdure en cours.
9. Fentre variable locales : Affiche les valeurs des variables locales de la procdure.
10. Fentre excution (raccourci-clavier Ctrl G) : Affiche la fentre excution permettant d'excuter interactivement une instruction.
12. Espion express (Shift F9) : Affiche la valeur actuelle de l'expression slectionne.
L'objetDebug
L'objet Debug permet d'envoyer des donnes pour affichage dans la fentre Excution au moment de
l'excution.
Mthodes
Print :Affichedutexteoulersultatdel'valuationd'uneexpressiondanslafentreExcution.
Assert :Suspendl'excutiondemanireconditionnelle,laligneoapparatlamthode.
Exemple
VolSphere = 4 / 3 * Pi * ((dblRayon) ^ 3)
Debug.print dblRayon
Debug.Assert VolSphere > 0
Principe
Lorsqu'uneerreurd'excutionseproduit,uncodeerreurestgnrparAccess.Lagestiondeserreursconsiste
identifierl'erreureninterceptantsoncodeetlatraiterpour,parexemple:
Le systme de gestion des erreurs d'Access offre deux possibilits pour intercepter l'erreur selon l'endroit o elle
s'estproduite:
- dans la procdure vnementielle Error d'un formulaire ou d'un tat, si l'erreur a t provoque au niveau de l'interface de
Microsoft Access ou du moteur Microsoft Jet,
Afin de pouvoir traiter les erreurs, il est ncessaire d'en connatre la liste. La liste des codes erreur est dtaille en Annexe A.
LaprocdurevnementielleError
LaprocdurevnementielleErrorpossdedeuxarguments:
DataErr :Contientlecodedel'erreur.
Response : Permet d'afficher (acDataErrDisplay) ou non (acData ErrContinue) le message d'erreur standard
d'Access.
Exemple
L'exemple suivant permet d'intercepter une erreur et de remplacer le message standard d'Access (ex : un index ou une cl principale
ne peut contenir de valeur nulle : correspondant au numro d'erreur 3058), par un message spcifique.
L'instructionOnError
OnErrorGoTo
L'instructionOnErrorGoToindiqueunesquenced'instructionsexcuterencasd'erreur.Cetteinstructiondoit
treplaceavantlesinstructionspouvantdclencheruneerreur.
Syntaxe
<tiquette> : Nom de l'tiquette indiquant le dbut de la squence d'instructions. Une tiquette est compose
d'unnomcommenantparunelettreetdusignedeuxpoints(:).
Ex:Gest_erreur:
La squence d'instructions appele pour grer les erreurs est place en gnral la fin de la procdure ou de la
0 :Dsactiveletraitementd'erreurs.
D'autre part, dans la squence d'instructions de traitement d'erreurs, il est ncessaire d'indiquer quel endroit
doitreprendrel'excutiondelaprocdureoufonctionaprsletraitementdel'erreur.Pourcela,ilfaututiliserl'une
desinstructionssuivantes:
Resume :Reprendl'excutionduprogrammel'instructionquiaprovoqul'erreur.
Exemple
Sub MaProcdure()
On Error GoTo Erreur
...
Exit Sub
Erreur:
Select Case Err
Case 11
'Division par Zro
MsgBox ...
...
Resume Next
Case 13
'Types incompatibles
...
End Select
End Sub
L'objetErr
L'objetErrcontientdesinformationspermettantdeconnatrel'originedel'erreur.
Proprits
Description:Renvoieunechainedecaractresexpliquantl'originedel'erreur.
HelpContext:Renvoiel'identificateurdecontexteassociunerubriqued'unfichierd'aide.
HelpFile:Renvoieunechanedecaractrescontenantlechemind'accscompletaufichierd'aide.
LastDLLError:Renvoieuncoded'erreursystmeproduitparunappelunebibliothquedeliaisonsdynamiques.
Number:Renvoieunevaleurnumriqueindiquantlenumrodel'erreur.
Source:Renvoieunechanedecaractrescontenantlenomdel'objetoudel'applicationquiagnrl'erreur.
Mthodes
Clear:Effacedemanireexplicitelecontenudel'objetErr.
Raise:Permetdegnrerdeserreursd'excution.
Exemple
Le code suivant permet d'afficher un message donnant des informations sur la nature de l'erreur.
Le langage VBA permet de personnaliser vos formulaires et tats lors de leur excution. Vous pourrez, par
exemple,effectuerlesoprationssuivantes:
- Modifier l'apparence d'un contrle dans un formulaire ou un tat (couleur, taille, position...).
- Appliquer des filtres sur les enregistrements d'un tat ou d'un formulaire.
- Etc.
Les assistants "Boutons de commande" et "Zones de liste droulante" gnrent automatiquement du code VBA
dans des procdures vnementielles. Ils constituent des premiers exemples simples de personnalisation de
formulairesetd'tats.
Vous trouverez d'autres exemples de personnalisation de formulaires et d'tats dans la "mini application" dcrite au chapitre Code
d'une mini-application.
Un objet Form fait partie de la collection Forms qui reprsente tous les formulaires actuellement ouverts.
L'objetActiveForm(Screen.ActiveForm)etl'objetMedsignentleformulaireactif.
N'utilisez le mot rserv Me pour reprsenter un objet Form ou Report dans du code que si vous faites rfrence ce formulaire ou
tat partir du code dans le module de classe. Si vous y faites rfrence partir d'un module standard ou d'un autre module du
formulaire ou de l'tat, vous devez utiliser la rfrence complte du formulaire ou de l'tat.
Syntaxes
Pourfaire rfrenceunformulaire,vousdisposezdesdiffrentessyntaxes,permettantdefairerfrence
unobjetd'unecollection,suivantes :
Forms!<Nomformulaire>
ex: Forms!Commandes
Forms![<Nomformulaire>]
ex: Forms![Commandes]
Forms("<Nomformulaire>")
ex: Forms("Commandes")
Forms(<Index>)
ex: Forms(0)
Pour faire rfrence un sousformulaire partir d'un formulaire, vous devez utiliser le nom du contrle
contenantlesousformulairesuividumotclForm.
Exemple
[sFrmParticipant].Form!txtNbStag
[sFrmFormations].Form.RecordSource = strSQL
[sFrmFormations].Form.Requery
PropritsdisponiblesenmodeCration
Pour connatre le nom VBA et la description d'une proprit disponible en mode cration, vous devez vous
positionnerdanslafentrePropritsdel'objetFormulaireetcliquersurlatoucheF1.
Propritsdel'ongletDonnes
1. RecordSource Chanedecaractres
2. TypeRecordSet Octet
0 Feuillederponsedynamique
1 Feuillerp.Dyn(MAJglobale)
2 Instantan
3. FetchDefaults Boolen
4. Filter String
5. FilterOnLoad Boolen
6. OrderBy String
7. OrderByOnLoad Boolen
Propritsdel'ongletvnement
1. OnCurrent Chanedecaractres
2. OnLoad Chanedecaractres
3. OnClick Chanedecaractres
4. BeforeUpdate Chanedecaractres
5. AfterUpdate Chanedecaractres
6. BeforeInsert Chanedecaractres
7. AfterInsert Chanedecaractres
8. BeforeDelConfirm Chanedecaractres
9. OnDelete Chanedecaractres
10. AfterDelConfirm Chanedecaractres
11. OnDirty Chanedecaractres
12. OnGotFocus Chanedecaractres
13. OnLostFocus Chanedecaractres
14. OnDblClick Chanedecaractres
Propritsdel'ongletAutres
1. Popup Boolen
2. Modal Boolen
3. DisplayOnSharePointSite Octet
0 Nepasafficher
1 Suivreleparamtredelatable
4. Cycle Octet
0 Touslesenregistrements
1 Enregistrementencours
2 Pageencours
5. RibbonName Chanedecaractres
6. ToolBar Chanedecaractres
PropritsnondisponiblesenmodeCration
Propritsserapportantaumoded'affichageduformulaire
CurrentView:Retournelemoded'affichageencoursduformulaire.
OpenArgs : Retourne l'expression chane spcifie dans l'argument OpenArgs de la mthode OpenForm qui a
ouvertleformulaire.
Page:Spcifielenumrodelapageencours.
Section:Identifieunesectionetpermetd'accderauxpropritsdecettesection.
SelLeft:Spcifieoudterminequellecolonne(champ)figureleplusgauchedanslerectangledeslectionen
cours.
SelTop:Spcifieoudterminequelleligne(enregistrement)figuretoutenhautdurectangledeslection.
SelWidth : Spcifie ou dtermine le nombre de colonnes (champ) slectionnes dans le rectangle de slection
encours.
Propritsserapportantauxenregistrementsetleurmisejour
BatchUpdates :Indiquesileformulairespcifiprendenchargelesmisesjourparlotsdetransactions.
BookMark:Dfinitunsignetquiidentifiedefaonuniqueunenregistrement.
CurrentRecord:Permetd'identifierl'enregistrementencours.
Dirty:Permetdedterminersil'enregistrementencoursasubidesmodificationsdepuissaderniresauvegarde.
NewRecord:Dterminesil'enregistrementencoursestunnouvelenregistrement.
RecordSet : Dtermine ou renvoie l'objet DAO Recordset reprsentant la source d'enregistrement d'un
formulaire.
Propritsserapportantlaprsentationduformulaire
CurrentSectionLeft:Dtermineladistanceentwipsentrelecoinsuprieurgauchedelasectionencoursetle
coinsuprieurgaucheduformulaire(twip:unitdemesurequivalente1/20depointou1/1440depouce.
Uncentimtrecontient567twips).
CurrentSectionTop:Reprsenteladistanceen twipsentrelecoinsuprieurdelasectionencoursetlecoin
DataSheetBackColor:Spcifieoudterminelacouleurd'arrireplandelatotalitd'unefeuillededonnes.
DatasheetBorderLineStyle :Indiquelestyledetraitutiliserpourlaborduredelafeuillededonnes.
DatasheetCellsEffect : Permet de spcifier si les effets spciaux s'appliquent aux cellules d'une feuille de
donnes.
DatasheetColumnHeaderUnderlineStyle :Indiquelestyledetraitutiliserpourlebordinfrieurdesenttes
decolonnedelafeuillededonnes.
DataSheetFontHeight:Spcifielatailleenpointsutilisepourafficheretimprimerlesnomsdeschampsetles
donnesenmodeFeuillededonnes.
DataSheetFontItalic:MetenitaliquelesnomsdechampsetlesdonnesenmodeFeuillededonnes.
DataSheetFontName:Spcifielapoliceutilisepourafficheretimprimerlesnomsdeschampsetlesdonnes
enmodeFeuillededonnes.
DataSheetFontUnderline :SoulignelesnomsdechampsetlesdonnesenmodeFeuillededonnes.
DataSheetFontWeight : Spcifie l'paisseur de la police utilise pour afficher et imprimer les caractres des
nomsdechampsetdesdonnesenmodeFeuillededonnes.
DataSheetForeColor:Spcifieoudterminelacouleurdutextedelatotalitd'uneFeuillededonnes.
DatasheetGridlinesBehavior:PermetdespcifierletypedequadrillagedevantapparatreenmodeFeuillede
donnes.
DatasheetGridlinesColor:Permetdespcifierlacouleurduquadrillaged'unefeuillededonnes.
InsideHeight:Dterminelahauteur(entwips)delafentrecontenantunformulaire.
InsideWidth:Dterminelalargeur(entwips)delafentrecontenantunformulaire.
Pages:Indiquelenombretotaldepages.
Painting:Permetdespcifiersileformulairedoittreredessin.
PaintPalette:Spcifielapalettedevanttreutiliseparleformulaire.
PictureData : Permet de copier l'image du formulaire dans un autre objet qui reconnat la proprit Image
(Picture).
WindowHeight:Indiquelahauteurd'unformulaireexprimeentwips.
WindowLeft :Indiquelapositionl'cran,entwips,dubordgaucheduformulaire.
WindowTop :Indiquelapositionl'cran,entwips,dubordsuprieurduformulaire.
WindowWidth:Renvoielalargeurd'unformulaireexprimeentwips.
Propritsrenvoyantunobjet
ChartSpace :RenvoieunobjetChartSpacequireprsentel'espacegraphique.
Form:Permetdefairerfrenceunformulaireassociuncontrlesousformulaire.
Module:Permetdespcifierunmoduledeformulaire.LesmthodesInsertLines,DeleteLinesetReplaceLinede
l'objetModulepermettentdemodifierlecontenud'unmoduledecode.
Parent:Permetdefairerfrencel'objetpre.
PivotTable :RenvoieunobjetPivotTablequireprsenteleconteneurd'unelistedetableaucroisdynamique.
Printer :RenvoieoudfinitunobjetPrinterquireprsentel'imprimantepardfautdusystmeactuel.
RecordsetClone:Permetdefairerfrencel'objetRecordsetduformulaire.
Propritsrelativesl'impressionduformulaire
PrtDevMode : Permet de dfinir ou d'obtenir des informations relatives au mode du priphrique d'impression
spcifi.
PrtDevNames:Permetdedfiniroud'obtenirdesinformationsrelativesl'imprimantechoisie.
PrtMip:Dfinitouretournedesinformationssurlemodedupriphriquespcifi.
UseDefaultPrinter :Indiquesileformulaireutilisel'imprimantepardfautdusystme.
MthodesdesobjetsForm
Mthodes
GotoPage:Dplacelefocussurlepremiercontrledelapageindique.
Move:Dplaceet/ouredimensionneleformulaireauxcoordonnesindiquesparlesvaleursdesarguments.
Recalc:Recalculeimmdiatementlescontrlesduformulaire.
Refresh : Met jour les donnes du formulaire afin qu'elles contiennent les dernires modifications
ventuellementeffectuespard'autresutilisateurs.
Repaint:Effectuetouteslesmisesjourenattenteduformulaire.
Requery:Metjourlesdonnesduformulairespcifi.
SetFocus:Donnelefocusauformulaire.
UnDo:Restaureunformulairetelqu'iltaitavantd'tremodifi.
Exemple
Affichage de la fiche Client en fonction du nom de la Socit slectionne dans une zone de liste.
End Sub
Affectation d'un filtre en fonction du contenu d'une case cocher : slection des clients franais, trangers ou de tous les clients.
End Select
End Sub
Syntaxes
Pourfairerfrenceuntat,vousdisposezdesmmessyntaxesquepourlesformulaires.
Exemple
Reports![ListeCde]
Reports("ListeCde")
Reports![ListeCde]![DateCde]
PropritsdisponiblesenmodeCration
Propritsdel'ongletProprits
1. Caption Chanedecaractres
2. DefaultView Octet
0 Modesimple
1 Modecontinu
2 Feuillededonnes
3 Tableaucroisdynamique
Propritsdel'ongletDonnes
1. RecordSource Chanedecaractres
2. Filter Chanedecaractres
3. FilterOnLoad Boolen
4. OrderBy String
5. OrderByOnLoad Boolen
6. AllowFilters Boolen
Propritsdel'ongletvnement
Propritsdel'ongletAutres
1. PopUp Boolen
2. Modal Boolen
3. DisplayOnSharePointSite Octet
0 Nepasafficher
1 Suivreleparamtredelatable
4. DateGrouping
0 ParamtresUS
1 Paramtressystme
5. Cycle
0 Touslesenregistrements
1 Enregistrementencours
2 Pageencours
6. RecordLocks Boolen
7. RibbonName Chanedecaractres
8. ToolBar Chanedecaractres
9. MenuBar Chanedecaractres
10. ShortcutMenuBar Chanedecaractres
11. HelpFile Chanedecaractres
12. HelpContextID Entierlong
13. HasModule Boolen
14. FastLaserPrinting Boolen
15. Tag Chanedecaractres
Propritsserapportantaumoded'affichagedel'tat
Moveable :Indiquesil'tatpeuttredplacparl'utilisateur.
Page:Indiquelenumrodepageencours.
Propritsserapportantauxenregistrementsetleurmisejour.
CurrentRecord:Identifiel'enregistrementencours.
Dirty:Permetdedterminersil'enregistrementencoursasubidesmodificationsdepuissaderniresauvegarde.
HasData:Indiquesil'tatestdpendantd'unjeud'enregistrementsvide.
Propritsserapportantlaprsentationdel'tat
DrawMode : Spcifie comment le crayon (la couleur utilise pour le dessin) affecte les couleurs d'arrireplan
surl'tatlorsquevousutilisezlesmthodesLine,CircleouPSetpourdessinersuruntatimprimer.
DrawWidth : Spcifie la largeur de trait pour les mthodes Line, Circle et PSet lorsque vous imprimez des
lignessuruntat.
FillColor:Permetdespcifierlacouleurdelatramedesrectanglesetdescerclesdessinsdansuntatl'aide
desmthodesLineetCircle.
FillStyle:Spcifiesiuncercleouuntraitdessinl'aidedelamthodeCircleouLineesttransparent,opaque
ouavecunmotifdetrame.
FontBold : Spcifie si une police doit apparatre en gras lors de l'impression de contrles d'tats ou lors de
l'utilisationdelamthodePrintdansuntat.
Left:Dfinitlapositiongauchedel'tat.
Painting:Permetdespcifiersil'tatdoittreredessin.
PaintPalette:Spcifielapalettedevanttreutiliseparl'tat.
ScaleLeft : Spcifie les units des coordonnes horizontales reprsentant le bord gauche d'une page lorsque
vous utilisez les mthodes Circle, Line, PSet ou Print pour l'impression ou l'aperu d'un tat ou pour son
enregistrementsousformedefichier.
ScaleMode : Spcifie l'unit de mesure pour les coordonnes d'une page quand vous utilisez les mthodes
Circle,Line,PSetouPrintpourl'impressionoul'aperud'untatousonenregistrementsousformedefichier.
ScaleTop : Spcifie les units des coordonnes verticales reprsentant le bord suprieur d'une page lorsque
vous utilisez les mthodes Circle, Line, PSet ou Print pour l'impression ou l'aperu d'un tat ou pour son
enregistrementsousformedefichier.
ScaleWidth : Spcifie le nombre d'units utilises dans la largeur de la page lorsque vous utilisez les mthodes
Circle,Line,PSetouPrintpourl'impressionoul'aperud'untatousonenregistrementsousformedefichier.
WindowLeft :Indiquelapositionl'cran,entwips,dubordgauchedel'tat.
WindowTop :Indiquelapositionl'cran,entwips,dubordsuprieurdel'tat.
Propritsrenvoyantunobjet
Application:Permetd'accderl'objetApplicationd'Access.
Module : Permet de spcifier un module d'tat. Les mthodes InsertLines, DeleteLines et ReplaceLine de
l'objetModulepermettentdemodifierlecontenud'unmoduledecode.
Parent:Permetdefairerfrencel'objetpre.
Printer :RenvoieoudfinitunobjetPrinterquireprsentel'imprimantepardfautdusystmeactuel.
Recordset:Dtermineourenvoiel'objetDAORecordsetreprsentantlesenregistrementsd'untat.
Shape : Renvoie une chane reprsentant la commande de type Shape permettant d'effectuer le tri et le
regroupementdel'tatspcifi.Enlectureseule.
Report:Permetdefairerfrencel'tatassociuncontrle soustat.
Propritsrelativesl'impressiondel'tat
CurrentX:Permetdespcifierlacoordonnehorizontaledudbutdelaprochainemthoded'impressionoude
dessind'untat.
MoveLayout:SpcifiesiMicrosoft Accessdoitpasserlapositiond'impressionsuivantesurlapage.
NextRecord:Spcifiesiunesectiondoitpasserl'enregistrementsuivant.
Pages:Indiquelenombretotaldepages.
PrintCount : Renvoie le nombre d'valuations de la proprit SurImpression (OnPrint) pour la section en cours
d'untat.
PrintSection:Spcifiesiunesectiondoittreimprime.
PrtDevMode:Permetdedfinirouderestituerdesinformationsrelativesaumodedupriphriqued'impression
spcifi.
PrtDevNames:Permetdedfinirouderetournerdesinformationsrelativesl'imprimantechoisie.
PrtMip:Dfinitouretournedesinformationssurlemodedupriphriquespcifi.
UseDefaultPrinter:Indiquesil'tatutilisel'imprimantepardfautdusystme.
Autresproprits
FormatCount:Permetdedterminerlenombred'valuationsdelapropritAuFormatage(OnFormat)pourla
sectionencoursdansuntat.
GroupLevel:Faitrfrenceauniveauderegroupementsurlequelporteleregroupementouletrid'untat.
Hwnd : Retourne le descripteur (une valeur unique de type Entier long) attribu la fentre en cours par
PictureData:Permetdecopierl'imagedel'tatdansunautreobjetquireconnatlapropritImage(Picture).
Section:Identifieunesectionetpermetd'accdersesproprits.
Mthodes
Circle:Permetdedessineruncercleouuneellipse.
Line:Permetdedessinerdeslignesoudesrectangles.
Move :Dplaceet/ouredimensionnel'tatauxcoordonnesindiquesparlesvaleursdesarguments.
Print:Envoieletextedfinil'objetReport.
Pset:Dtermineunpointdel'tatpourmodifiersacouleur.
Scale:Dfinitlesystmedecoordonnes.
TextHeight:Retournelahauteurd'unechaneimprimer.
TextWidth :Retournelalargeurd'unechaneimprimer.
Unobjet ControlfaitpartiedelacollectionControlsquireprsentetouslescontrlesd'unformulaire,d'untat
ou d'un sousformulaire. L'objet ActiveControl (Screen.ActiveControl ou <NomFormulaire>.ActiveControl)
dsignelecontrleactif.
Syntaxes
Vouspouvezrfrenceruncontrledefaonimplicite:
ouexplicitementcommemembredelacollectionControls :
<Formulaire>|<Etat>.Controls{("<contrle>")|!<contrle>|
(<index contrle>)}
ex:
Me.Controls!DateCde
Me.Controls![DateCde]
Me.Controls("DateCde")
Me.Controls(0)
Chaque contrle a ses proprits, mthodes et vnements particuliers. Seules les proprits et mthodes
communestouslescontrlessonticirpertories.
Pour rfrencer un contrle du formulaire ou de l'tat actif, le mot cl Me n'est pas obligatoire. Vous pouvez directement utiliser le
nom du contrle.
Propritscommuneslaplupartdescontrles
Application:Permetd'accderl'objetApplicationdeMicrosoftAccess.
Form:Permetdefairerfrenceauformulairecontenantlecontrle.
Hyperlink:Renvoieunerfrenceunobjetlienhypertexte.
Object:PermetderetournerunerfrenceunobjetActiveXassociunobjetOLEliouincorpordansun
contrle.
ObjectVerbs:PermetdedterminerlalistedesactionsOLEprisesenchargeparunobjetOLE.
OldValue:Renvoielavaleurnonmodified'uncontrledpendant(anciennevaleur).
Parent:Permetdefairerfrencel'objetpred'uncontrle.
Report:Permetdefairerfrencel'tatcontenantlecontrle.
Mthodescommuneslaplupartdescontrles
Requery:Recalculelavaleurd'uncontrle.
SetFocus:Donnelefocusuncontrle.
SizeToFit:Ajusteuncontrleautexteoul'imagequ'ilcontient.
UnDo:Restaureuncontrletelqu'iltaitavantd'tremodifi.
LamthodeMove
Elle permet de dplacer et/ou redimensionner le contrle en fonction des coordonnes indiques par les valeurs
desarguments.
SyntaxedelamthodeMove
<expression> :Dsigneuncontrle,tatouformulaire.
Gauche : Obligatoire. Position l'cran, en twips, du bord gauche de l'objet par rapport au bord gauche de la
fentredeMicrosoftAccess.
Haut : Facultatif. Position l'cran, en twips, du bord suprieur de l'objet par rapport au bord suprieur de la
fentredeMicrosoftAccess.
Largeur :Facultatif.Largeurdsire,entwips,del'objet.
Hauteur :Facultatif.Hauteurdsire,entwips,del'objet.
Prsentation
MicrosoftAccess2007estpourvud'unnombreintressantdecontrlesfacilitantl'laborationd'uneapplication.
Ces contrles sont placs dans des formulaires ou dans des tats de faon aboutir l'interface dsire.
Chacun d'eux possde ses propres caractristiques (proprits), ses propres comportements (mthodes) ainsi
qu'une liste d'vnements auxquels ils peuvent ragir, tout cela accessible par l'intermdiaire de l'explorateur
d'objets.
Ondistinguedeuxtypesdecontrles:
- les contrles ActiveX, chacun d'eux faisant l'objet d'un fichier OCX.
Lescontrlesintrinsquesfigurenttousdanslaboteoutils.
LescontrlesActiveXpeuventtreslectionnsparl'intermdiairedel'outil delaboteoutils,quilistetous
les contrles ActiveX prsents sur le systme. Ils fonctionnent de la mme manire que les contrles
intrinsques et sont implants dans le systme par l'installation de nouveaux logiciels ou par l'achat de
bibliothquesdecontrlesActiveX.
La version Office 2007 Professionnel permet notamment l'utilisation du contrle Calendrier qui facilite l'affichage
etlamisejourd'uncalendrier.
ListedescontrlesAccess2007
Pour accder aux contrles depuis un formulaire ou un tat ouvert en Mode Cration, activez l'onglet Crer du
ruban:lalistesdescontrlesetdesoutilsdemiseenformeestalorsdisponibledepuislegroupeContrles.
Lesoptionsdedmarraged'Access2007permettentdedfinirl'aspectetlecomportementd'uneapplicationlors
desonouverture.
Pourmodifierlesoptionsdedmarrage:
Cliquez sur le bouton Microsoft Office , puis sur le bouton Options Access (en bas de la bote de dialogue).
Labotededialoguesuivanteestalorsaffiche:
Certaines de ces options correspondent des proprits de la base de donnes courantes (objet Database) et
peuventtremodifiesaumoyendulangageVBA:
PropritVBA Type
1. AppTitle String
2. AppIcon String
3. UseAppIconForFrmRpt Boolen
4. StartupForm String
5. StartupShowStatusBar Boolen
6. AllowSpecialKeys Boolen
7. AutoCompact Boolen
Pour modifier une proprit l'aide du langage VBA, vous devez utiliser la collection Properties de l'objet
Database.Silapropritn'apasdjtdfinie,vousdevezlacreraumoyendelamthodeCreateProperty.
Sub modifieOptions()
Dim intX As Integer
' Titre de l'application
intX = AddAppProperty("AppTitle", DB_Text, _
"Gestion des Formations")
' Icne de l'application
intX = AddAppProperty("AppIcon", DB_Text,
"C:\Formations\Formation.bmp")
' Option "Utiliser comme icne de formulaire ou
d'tat"
intX = AddAppProperty("UseAppIconForFrmRpt", DB_BOOLEAN,
1)
' Option "Compacter lors de la fermeture"
intX = AddAppProperty("Auto Compact", DB_BOOLEAN, 1)
End Sub
Prsentation
DansAccess2007,ilestpossibledepersonnaliserintgralementl'apparencedurubanaumoyendulangageXML.
Celangagepermet:
Le code XML peut tre stock diffrents emplacements mais il est fortement recommand de le stocker dans
unetablesystmedelabasededonnes.LesrubanscrsenlangageXMLpeuventtreassocisl'application
Accessouuniquementcertainsformulairesettats.
Configurationd'Accesspourlapersonnalisationduruban
AfindepouvoircrerettesteraumieuxvotrecodeXML,ilestrecommanddemodifierlesoptionssuivantes :
Affichagedestablessystmesdanslevoletdenavigation
Par dfaut, les tables systmes ne sont pas affiches dans le volet de navigation. Par consquent vous ne
pourrezpasaccderlatablesystmepermettantdestockervotrecodeXML.
Pourmodifiercetteoption:
Cliquez avec le bouton droit sur la barre de navigation situe en haut du volet de navigation.
Dans la bote de dialogue Options de navigation, activez l'option Afficher les objets systme, puis cliquez sur le bouton de
commande OK.
Affichagedesmessagesd'erreurscontenuesdanslecodeXML
Par dfaut, les messages d'erreurs dtects dans le code XML ne sont pas affichs. De ce fait, si votre code
XMLcontientdeserreurs,lerubannepourratreaffichetilseradifficiled'identifierlacausedel'erreur.
Pourmodifiercetteoption:
Cliquez sur le bouton Microsoft Office , puis sur le bouton Options Access (situ en bas de la bote de dialogue).
Activez l'option Afficher les erreurs du complment d'interface utilisateur situ sous Gnral.
Si une erreur est dtecte lors de l'excution du code XML permettant de gnrer le ruban personnalis, une
message d'erreur est affich. Le message indique les numros de ligne et de colonne du code concern par
Exemple:
Crationd'unetablesystmeUSysRibbons
LatablesystmeUSysRibbonspermetdestockerlecodeXMLpermettantdecrerunouplusieursrubans.
Pourcrercettetable:
RibbonIdNumroAuto
RibbonXML Mmo
Slectionnez le champ RibbonId et cliquez sur la commande Cl primaire (situe dans le groupe Outils de l'onglet Cration).
AjoutducodeXMLdepersonnalisationlatableUSysRibbons
PourassocierducodeXMLvotretable UsysRibbons,lasolutionlaplussimpleestdegnrerunformulairede
saisie.Pourcela :
Activez l'onglet Crer, puis cliquez sur Formulaire dans le groupe Formulaires.
Exemple :
Le code XML suivant permet de masquer les onglets Crer et Donnes externes du Ruban:
Associationdurubanl'applicationactive
Cliquez sur le bouton Microsoft Office , puis sur le bouton Options Access (situ en bas de la bote de dialogue).
Inscrivez le nom du ruban (ex : ruban1) dans la liste Nom du ruban situe sous Options de la barre d'outils et du ruban.
Cliquez sur le bouton de commande OK. Le message suivant est alors affich :
Fermezvotrebasededonnesetouvrezlanouveauafind'activerlenouveauruban.
Le code XML du ruban est excut l'ouverture de la base de donnes. Pour tester les modifications apportes votre code XML,
vous devez systmatiquement fermer puis rouvrir votre base de donnes.
Associationdurubanunformulaireouuntat
Sous l'onglet Autre de la feuille de proprit, cliquez sur la liste Nom du ruban et slectionnez le ruban afficher lors de
l'ouverture du formulaire ou de l'tat.
Ouvrez le formulaire en Mode Formulaire: le ruban slectionn est alors affich. la fermeture du formulaire, le ruban associ
l'application sera restaur.
LelangageXML
LelangageXML(eXtensibleMarkupLanguage)estlelangagestandarddedescriptionetd'changededonnes,
utilisnotammentsurleweb.
ToutcommelelangageHTML,lelangageXMLutilisedesbalises(ou"tags")pourdlimiteruncontenu.Unebalise
estfacilementidentifiablecarellecommenceparlecaractre<etsetermineparlecaractre>(lesbalisesde
findecontenucommencentpar/).
ElmentsXMLutilisspourpersonnaliserleruban
LesprincipalesbalisesXMLutilisesdanslecodeXMLd'unruban
Nomdebalise Description
<customUI> Baliseprincipaled'unrubanpersonnalis
<ribbon> Balisecontenantladescriptionduruban
Menu accessible depuis le bouton Microsoft
<OfficeMenu>
Office
<tab> Ongletdansleruban
<group> Groupedansunongletdansleruban
<labelControl> Etiquette(titreouintitul)
<button> Boutondecommande
<splitButton> Boutondemenu
<toggleButton> Boutonbascule
<menu> Menudroulant
<dynamicMenu> Menudroulantdynamique
<gallery> Galerieoupalettedechoix
Bouton dclenchant l'ouverture d'une bote
<dialogBoxLauncher>
dedialogue
Lespropritsassociesauxobjetsduruban
Les proprits suivantes permettent de personnaliser les diffrents contrles affichs dans le ruban (bouton de
commande,menudroulant)
Proprit Description
Id Identifiantuniqued'uncontrlepersonnalis.
Identifiant unique d'un contrle standard
idMso
Microsoft.
"true"silecontrleestaccessbile,"false"sinon.
enabled
Lavaleurpardfautest"true".
insertBeforeMso Placel'objetavantuncontrleOfficeexistant.
insertAfterMso Placel'objetaprsuncontrleOfficeexistant.
imageMso Nomdel'imageutiliserpourlecontrle.
itemSize Tailledeslmentsdumenu.
label Texteaffichsurlecontrle.
onAction MacrooucodeVBAassociaucontrle.
screentip Titredel'infobulleducontrle.
supertip Texteapparaissantdansl'infobulleducontrle.
size Tailleducontrle("normal"ou"large").
"true" si l'image du contrle est affiche, "false"
showImage
sinon.Lavaleurpardfautest"true".
Lespropritssuivantespermettentdepersonnaliserleruban :
L'exempledecodeXMLdcritdanscechapitrepermetdecrerlerubanprsentcidessous:
CodeXMLdurubanpersonnalis
<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="Initialisation">
ribbon startFromScratch="true">
' Modification du menu Microsoft Office
<officeMenu>
' Cration d'un bouton de menu
<splitButton id="spltListe1"
insertBeforeMso="FileCloseDatabase">
<menu id="spltMenu"
itemSize="large" label="Listes de formulaires">
<button id="Option1" label="Toutes les listes"
imageMso="FileCreateDocumentWorkspace"
onAction="OuvreListes"/>
<button id="Option2" label="Liste des Clients"
imageMso="DirectRepliesTo"
onAction="OuvreListeClients"/>
<button id="Option3" label="Liste des Employs"
imageMso="DistributionListAddNewMember"
onAction="OuvreListeEmployes"/>
<button id="Option4" label="Liste des Fournisseurs"
imageMso="DistributionListRemoveMember"
onAction="OuvreListeFournisseurs"/>
</menu>
</splitButton>
<menu id="menu2"
label="Menu 2"
itemSize="large"
imageMso="DistributionListSelectMembers">
<button id="btnMenu5"
label="Liste des Clients"
imageMso="DirectRepliesTo"
onAction = "OuvreListeClients"/>
<button id="btnMenu6"
label="Liste des Employs "
imageMso="DistributionListAddNewMember"
onAction = "OuvreListeEmployes"/>
<button id="btnMenu7"
label="Liste des Fournisseurs"
imageMso="DistributionListRemoveMember"
onAction = "OuvreListeFournisseurs"/>
<button id="btnMenu8"
label="Toutes les listes"
imageMso="DistributionListSelectMembers"
onAction = "OuvreListes"/>
</menu>
</group>
</tab>
' Onglet Outils Access
<tab id="tabAccess" label="Outils Access">
<group idMso="GroupPrintPreviewPrintAccess"/>
<group id="grpExport" label="Export">
<button idMso="ExportExcel" label="ExportExcel"
screentip="Export Excel"
supertip="Cliquez ici pour exporter au format Excel"/>
<button idMso="FileSaveAsPdfOrXps" label="Export PDF"
screentip="Export PDF"
supertip="Cliquez ici pour exporter au format PDF"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
CodeVBAappelparlescommandesdurubanpersonnalis
LecodeVBAsuivantestappelaumoyendespropritsOnActiondesdiffrentscontrles.
Les noms des images utilises pour personnaliser le ruban (ex : FileCreateDocumentWorkspace,
DirectRepliesTo...),correspondentl'intituldel'icnedanslagaleriedesicnesMicrosoftOffice.
Pourconnatrelalistedesnomsd'icnesdelagalerieMicrosoftOffice:
Ouvrez dans Excel 2007 le fichier Office2007IconsGallery.xlsm (fichier livr avec les exemples ou tlchargeable sur le site de
Microsoft).
Cliquez sur l'un des boutons "Galerie" pour afficher la liste des icnes.
Lorsque vous survolez une icne, son nom est affich dans l'infobulle associe:
Sil'ongletDveloppeurn'estpasaffichdansExcel:
Cliquez sur le bouton Microsoft Office , puis sur le bouton Options Excel (situ en bas de la bote de dialogue).
Activez l'option Afficher l'onglet Dveloppeur dans le ruban situ sous Meilleurs options pour travailler avec Excel.
Cliquez sur le bouton OK : l'onglet Dveloppeur a t ajout au ruban d'Excel, droite de l'onglet Affichage.
Prsentation
Automation, appele galement OLE (Object Linking and Embedding) ou OLE Automation, est une technologie
permettantdemanipulerlesobjetsd'uneautreapplicationdirectementpartird'AccessoudeVBAAccess.
Pour fonctionner, Automation ncessite un client et un serveur appel serveur OLE. Le serveur est
l'applicationoulecomposantquifournitlesservicesauclient.Leclient(appelgalementcontrleur)utiliseces
services pour piloter l'application serveur et manipuler ses objets. Par exemple si vous lancez un publipostage
WordpartirdeVBAAccess,AccessestleclientetWordleserveurOLE.
Une bibliothqued'objets est un fichier, dot gnralement d'une extension olb, fournissant les informations
permettant de manipuler les objets mis disposition par un serveur. Vous pouvez utiliser l'Explorateur d'objets
pourexaminerlecontenud'unebibliothqued'objets.
Pour avoir accs aux objets d'une autre application, vous devez rfrencer sa bibliothque d'objets de la faon
suivante:
LabotededialogueRfrencess'afficheavectouslesserveursOLEenregistrsdanslabasederegistre.
l'aide de l'explorateur d'objets, il est simple de consulter la liste des objets, mthodes et proprits d'un serveur OLE.
UtilisationdelatechnologieAutomation
Pourpouvoirmanipulerlesobjetsd'uneautreapplication,vousdevezprocderdelafaonsuivante :
Exemple
ou
RfrenceundocumentWordexistant.
LesparagraphessuivantsdcriventcommentpiloterdiffrentslogicielsdelasuiteMicrosoftOfficeenutilisantla
technologieAutomation.
Les objets, collections, mthodes et proprits des modles objet de la suite Microsoft Office tant trs nombreux, seuls les plus
utiliss sont dcrits dans les paragraphes suivants.
LemodleObjetWord
ExtraitdumodleObjetWord:
ObjetsetcollectionsWord
Documents:Collectiondetouslesclasseurs(objetsDocument)ouverts.
EmailOptions:ObjetcontenantlesattributsglobauxqueMicrosoftWordutiliselorsquevouscrezetmodifiez
desmessageslectroniquesetdesrponsescesmessages.
FileConverters : Collection de tous les convertisseurs de fichier (objets FileConvert) disponibles pour ouvrir et
enregistrerdesfichiers.
FontNames:Objetcontenantlalistedesnomsdetouteslespolicesdisponibles.
Languages : Collection des langues (objets Language) utilises dans Word pour les vrifications linguistiques
etlamiseenforme.
ListGalleries : Collection des trois premiers onglets (objets ListGallery) de la bote de dialogue Puces et
numros.
MailMessage : Objet reprsentant le message lectronique actif si Word est votre diteur de courrier
lectronique.
Options : Reprsente les options d'application et de document de Word. La plupart des proprits de l'objet
OptionscorrespondentdeslmentsdelabotededialogueOptions(menuOutils).
Selection:Reprsentelaslectionencoursd'unefentreoud'unvolet.
System:Contientdesinformationssurlesystmedevotreordinateur.
Templates:Collectiondetouslesmodles(objetsTemplate)actuellementdisponibles.
LacollectionDocuments
Mthodes
LacollectionDocumentsestconstituedetouslesobjetsDocumentouvertsdansWord.
Add:CreunnouveauDocumentetl'ajoutelacollectionDocuments.
Ex:Documents.Add Template:="Normal"
Close:FermetouslesdocumentsWordouverts.
Ex :Documents.Close
Open:OuvreleDocumentspcifietl'ajoutelacollectionDocuments.
Ex :Documents.Open _
FileName:="C:\Clients\Relance.doc", _
ReadOnly:=True
Save :Enregistretouslesdocumentsouverts.
Ex :Documents.Save
LesobjetsDocument
UnobjetDocumentpermetdefairerfrenceundocumentWord.
ActiveDocumentdsigneledocumentactif.
Mthodes
Activate:Activeundocumentdjouvert.
Ex:Documents("Achats.doc").Activate
Close:FermeundocumentWordouvert.
Ex:Documents("Achats.doc").Close
ou ActiveDocument.Close
Range:RenvoieunobjetRange(Plage).
Ex :ActiveDocument.Range(0, 50).Bold = True
Save:Enregistreundocument.
Ex :ActiveDocument.Save
SaveAs:Enregistreundocumentsousunnouveaunomet/ousousunnouveauformat.
Ex :ActiveDocument.SaveAs FileName:=strDocName
Objetsetcollections
Characters:Collectiondescaractressitusdansundocument,uneplageouuneslection.
MailMerge:FusionetpublipostagedansWord.
PageSetup:Descriptiondelamiseenpage.
Ex :ActiveDocument.PageSetup.RightMargin = InchesToPoints(1)
Paragraphs:Collectiondesparagraphesd'undocument.
SmartTags : Collection des balises actives (objets SmartTag) d'un document ou d'une plage de texte au sein
d'undocument.
Words:Collectiondesmotsdudocument.
Ex : ActiveDocument.Words.Count
Exemples
Miseengrasdescaractresd'undocumentWord.
With AppWord
.Documents.Open CurrentProject.Path & "\Relance.docx"
.ActiveDocument.Select
.Selection.Font.Bold = True
.ActiveDocument.Close wdSaveChanges
.Quit
End With
End Sub
Lancementd'unpublipostage
Le code suivant permet de gnrer une lettre de relance pour les clients ayant une commande livre et non
rgle.Lepublipostagefaitappellarequte"CommandesNonRgles"delabaseClients.mdb.
LemodleObjetExcel
ExtraitdumodleObjetExcel :
ObjetsetcollectionsExcel
Workbooks:Collectiondetouslesclasseurs(objetsWorkbook)ouverts.
Worksheets:Collectiondetouteslesfeuillesdecalculs(objetsWorksheet)d'unclasseur.
Charts:Collectiondetouteslesfeuillesgraphiques(objetsChart)d'unclasseur.
CustomViews :Collectiondevuespersonnalises(objetsCustomView)d'unclasseur.
Names : Collection de tous les objets Name dans l'application ou le classeur. Chaque objet Name reprsente
unnomdfinipouruneplagedecellules.
SmartTagOptions:Objetreprsentantlesoptionsrelativesauxbalisesactives.
Styles:Collectiondetouteslesdescriptionsdestyles(objetsStyle)d'unclasseur.
LacollectionWorkbooks
LacollectionWorkbooksestconstituedetouslesclasseursouverts.
Add:Creunnouveauclasseurquidevientleclasseuractifetl'ajoutelacollectionWorkbooks.
Ex:Workbooks.Add
Close:FermetouslesclasseursExcelouverts.
Ex :Worksheets.Close
Open:Ouvreleclasseurspcifiquidevientleclasseuractifetl'ajoutelacollectionWorkbooks.
Ex :Workbooks.Open Filename:="C:\Devis\devis.xls"
Save:Enregistretouslesclasseursouverts.
Ex :Workbooks.Save
LesobjetsWorkbook
UnobjetWorkbookpermetdefairerfrenceunclasseurExcel.
LapropritActiveWorkbookdsigneleclasseuractif.
Activate:Activeunclasseurdjouvert.
Ex:Documents("Achats.xlsx").Activate
Close:FermeunclasseurExcelouvert.
Ex:Documents("Achats.xlsx").Close
ou ActiveDocument.Close
PrintPreview:Affichelafeuilleactived'unclasseurenmodeAperuavantimpression.
Ex :ActiveWorkbook.PrintPreview
Save:Enregistreunclasseur.
Ex :ActiveWorkbook.Save
SaveAs:Enregistreunclasseursousunnouveaunomet/ousousunnouveauformat.
Ex :ActiveWorkbook.SaveAs FileName:= "Devis.xlt"
EcriturededonnesdansdescellulesExcel
Lecodesuivantpermetd'afficherlalistedescommandesnonrgles.
End Sub
LemodleObjetOutlook
ExtraitdumodleObjetOutlook :
Exemple :affichagedescontactsOutlook
Cet exemple permet d'afficher la liste des contacts Outlook (nom et adresse email) dans une zone de liste d'un
formulaireAccess.
Pourtestercetexemplevousdevez:
DDE (Dynamic Data Exchange) est un protocole d'change dynamique de donnes entre deux applications
Windows, l'une appele Client ou Destination, l'autre appele Serveur ou Source. Le lien est rompu si l'une
desdeuxapplicationsvienttreferme.
UneliaisonDDEcomprendtroisphasesprincipales:
- initialisation: l'application destination recherche l'application source et tablit avec elle un canal de communication (liaison).
L'initialisation
DDEInitiate
La fonction DDEInitiate permet d'initialiser la conversation entre deux applications. Elle renvoie le numro de
canalsilacommunicationaputretablie,sinonuneerreurseproduit.
Syntaxe
DDEInitiate (<application>,<sujet>)
Application :Nomdel'applicationSource.
Sujet :Groupededonnesutiliser.
Exemple
Laliaison
DDE
La fonction DDE permet d'entamer une conversation DDE avec une autre application, de demander cette
derniredeslmentsd'informationpourlesafficherdansuncontrlefigurantsurunformulaireousuruntat.
Syntaxe
Application :Expressionchaneidentifiantuneapplication.
Rubrique :Fichierdocumentoufichierdedonnes.
Elment :Rfrenceunedonnedel'applicationSource.
Exemple
DDESend
Syntaxe
Application :Expressionchaneidentifiantuneapplication.
Rubrique :Fichierdocumentoufichierdedonnes.
Elment :Rfrenceunedonnedel'applicationSource.
Donnes :Chaneouexpressioncontenantlesdonnesenvoyerapplication.
Exemple
DDEPoke
L'instructionDDEPokeenvoiedesinformationsl'applicationSourcesuruncanalouvert.
Syntaxe
lment :Rfrenceunedonnedel'applicationSource.
Donne :Donneenvoyerl'applicationSource.
Exemple
DDERequest
LafonctionDDERequestdemandedesinformationsl'applicationSource.
Syntaxe
lment :Rfrenceunedonnedel'applicationSource.
Exemple
DDEExecute
Syntaxe
Commande :Chanecontenantunecommandereconnueparl'autreapplication.
Exemple
Laclture
DDETerminate
L'instructionDDETerminatefermelecanaldecommunicationDDE.
Syntaxe
DDETerminate(<Numro de canal>)
Exemple
DDETerminate canal
DDETerminateAll
L'instructionDDETerminateAllfermetouslescanauxdecommunicationDDE.
Syntaxe
DDETerminateAll
Le langage XML (eXtensible Markup Language) est le langage standard de description et d'change de donnes
sur le Web, tandis que HTML (HyperText Markup Language) est le langage standard de cration et d'affichage
depagesWeb.
XSL (eXtensible Stylesheet Language) est une instance de XML permettant de contrler la prsentation des
documentsXML.
MicrosoftAccess2007offrelapossibilitd'importeroud'exporterdesdonnessouslaformed'unfichierXMLet
desprsentationssouslaformed'unfichierXSL.
En VBA, vous pouvez utiliser les mthodes ImportXML et ExportXML de l'objet Application pour importer ou
exporterdesdonnesauformatXML.
LamthodeExportXML
La mthode ExportXML permet d'exporter les donnes et/ou la prsentation d'un objet Access spcifi. Il est
possibled'exporterauformatXMLlesobjetsAccesssuivants :
- tables,
- requtes,
- formulaires,
- tats,
Syntaxe
Application.ExportXML(<ObjectType>, <DataSource>,
[<DataTarget>], [<SchemaTarget>],
[<PresentationTarget>], [<ImageTarget>], [<Encoding>],
[<OtherFlags>])
DataSource :Obligatoire.Chanedecaractresindiquantlenomdel'objetAccessexporter.
DataTarget :Facultatif.Chanedecaractresindiquantlenomdefichieretlechemindesdonnesexportes.
Sicetargumentestomis,lesdonnesnesontpasexportes.
SchemaTarget : Facultatif. Chane de caractres indiquant le nom de fichier et le chemin des informations sur
les schmas exports. Si cet argument est omis, ces informations sont incorpores dans le document des
donnes.
ImageTarget :Facultatif.Chanedecaractresindiquantlecheminpourlesimagesexportes.Sicetargument
estomis,lesimagesnesontpasexportes.
Encoding :Facultatif.Indiquel'encodagedetexteutiliserpourlefichierXMLexport.
OtherFlags : Facultatif. Entier long qui reprsente la somme des valeurs d'options dcrites dans la liste
suivante.
1 Tablesconnexes:inclutlesdiffrentestablesconcernantl'objetspcifiparDataSource.
2 Propritsrelationnelles:credespropritsdeschmarelationnel.
4 Excutionpartirduserveur : cre un wrapper ASP sinon, c'est un wrapper HTML par dfaut.
S'appliqueuniquementlorsdel'exportationd'tats.
8 Propritsspciales:credespropritsdeschmatendues.
LamthodeImportXML
La mthode ImportXML permet d'importer des donnes et/ou des informations de prsentation dans une table
MicrosoftAccesspartird'unfichierXML.
Syntaxe
Application.ImportXML(<DataSource>, [<ImportOptions>])
Datasource :ChanedecaractrescontenantlenometlechemindufichierXMLimporter.
ImportOptions :Facultatif.Dfinitlesoptionsrelativesl'importdufichierXML.
Constantesutilisablespourdfinirlesoptionsd'importation.
acAppendData : Si une table porte dj le nom du fichier XML, les donnes sont ajoutes la table, sinon la
tableestcre.
acStructureAndData :Valeurpardfaut.Importelastructureetlesdonnes.Siunetableportedjlenomdu
fichierXML,Accessgnreunnouveaunomdetable.
acStructureOnly : Importe uniquement la structure. Si une table porte dj le nom du fichier XML, Access
gnreunnouveaunomdetable.
Exempled'import/exportXML
Dansl'exemplesuivant,nousallonsvoircomment :
- importer le fichier XML dans une nouvelle table aprs avoir modifi son contenu.
Pourralisercetexemple,vousdevezcrerunrpertoire"C:\XML".
tape1:ExportdelatableClients
Saisissez le code suivant dans un nouveau module appel ImportExportXML et excutez la procdure ExportTabClient.
tape2:LienentrelesfichiersXMLetXSL
DanslerpertoireXML,lestroisfichierssuivantsonttcrs:clients.xml,clients.xsletclients.htm.
Sivousouvrezlefichierclients.xmldansInternetExplorer,vousobtenezlersultatsuivant:
Pour pouvoir afficher correctement la liste des clients, vous devez soit utiliser le fichier clients.htm qui fait le
lien entre les fichiers xml et xsl, soit modifier le fichier clients.xml afin de lui associer le fichier clients.xsl
(insrerladeuximeligne).
Pour modifier le code contenu dans les fichiers xml ou xsl, vous pouvez utiliser le bloc-note de Windows (Notepad.exe) ou tout autre
diteur de fichiers texte.
tape3 :Exportd'uneprsentationdeformulaire
End Sub
Lefichierclients.xslatremplacdanslerpertoireC:\XML.
Vousobtenezmaintenantlersultatsuivant:
End Sub
Vous pouvez partir du langage VBA crer un fichier HTML. Pour cela vous devez utiliser l'objet
FileSystemObject.
Les mthodes et proprits de cet objet sont dtailles dans le chapitre Programmation Windows.
L'exemple suivant permet de crer le fichier ImageListe.htm contenant toutes les images du rpertoire
slectionnparl'utilisateur.
End Sub
Aperu dans Internet Explorer d'un fichier HTML cr par le code de l'exemple.
L'interface de programmation Windows API (Application Programming Interface) offre des fonctions qui
permettent de contrler les aspects les plus internes du systme d'exploitation. Vous pouvez tendre et
personnaliser vos applications Access en appelant des fonctions Windows API partir de VBA. Bien qu'Access
continue voluer et que son langage de programmation natif (VBA) intgre de plus en plus de fonctions
systmes,ilestncessairepourcertainestchesdesfonctionsdel'API.
Une API est un ensemble de fonctions que vous pouvez utiliser pour travailler avec un composant, une
application ou le systme d'exploitation. Elle se compose gnralement d'une ou de plusieurs DLL (Dynamic Link
Libraryoubibliothquedeliaisondynamique).
L'API la plus couramment utilise est l'API Windows qui inclut les DLL constituant le systme d'exploitation
Windows. Chaque application Windows interagit directement ou indirectement avec l'API Windows. Ceci garantit
uncomportementcohrentdetouteslesapplicationsfonctionnantsousWindows.
LesDLLdeWindowslespluscourammentutilisessontlessuivantes:
Kernel32.dll:Fonctionsdebasniveaudusystmed'exploitation,tellesquegestiondelammoireetgestiondes
ressources.
User32.dll : Fonctions de gestion Windows, telles que traitement des messages, horloges, menus et
communication.
GDI32.dll : Bibliothque GDI (Graphics Device Interface) qui contient des fonctions de sortie vers les
priphriques(graphisme,contexted'affichageetgestiondespolices).
D'autres API sont galement disponibles comme par exemple l'interface MAPI (Mail Application Programming
Interface)quipermetd'criredesapplicationsdecourrierlectronique.
Pourobtenirdesinformationssurlesfonctionsdel'APIWindows,ilexistedeuxsourcesd'informations :
- la visionneuse d'API (fichier excutable ApiLoad.Exe inclus dans Microsoft Office XP Developer et dans Microsoft Visual Basic)
permet d'afficher les constantes, dclarations et les types d'API. Les lments slectionns peuvent tre copis de la
Visionneuse d'API vers les applications VBA.
Les informations de la visionneuse d'API sont contenues dans des fichiers texte (win32api.txt, mapi32.txt...) pouvant tre
exports dans une base mdb pour en faciliter la consultation ultrieure.
- la plateforme Microsoft SDK (Software Development Kit) contient une documentation complte de l'API Windows et est
disponible gratuitement sur le site Microsoft Developer Network.
Pour appeler une fonction de l'API Windows, vous devez la dclarer en utilisant l'instruction Declare dans la
section Dclarations d'un module de votre projet (gnralement un module ddi aux procdures gnrales de
l'application).
Syntaxedel'instructionDeclare
Dans les versions 32 bits de Visual Basic, le respect des minuscules et majuscules est obligatoire pour les noms
defonctionsetdeprocduresdesDLL.
Nom_DLL :NomdelaDLL.
Nom_alias :NomdelaprocdureoudelafonctiondanslaDLL.
Liste_arguments :Paramtrespasserlaprocdure(cf.chapitreLelangageVisualBasic).
Type :Typedelavaleurduretourd'uneprocdureFunction.
CertainesDLLnefournissentpasdenompourleursprocduresetleursfonctionsmaispluttunnombreordinal.
Ladclarationdetellesprocduresoufonctionsutiliselammesyntaxe,maisilfautdfinirlenombreordinalau
niveaudel'Aliassouslaformed'undise(#)suividunombre(ex:Alias"#52").
Passagedesarguments
Les fonctions et procdures des DLL sont crites pour la plupart en langage C et utilisent sa syntaxe. Aussi, le
passaged'argumentsuneprocdureouunefonctiond'uneDLLdepuisVisualBasic,n'estpastoujourssimple.
AuniveaudesDLLutilisantlasyntaxeduC,touslesargumentssontpasssparvaleurs,sauflestableaux.
LeschanesenlangageCsontconsidrescommedestableauxdecaractres.
Certains arguments de procdures de DLL peuvent accepter diffrents types de donnes (un peu comme les
Variant), ils doivent tre dclars avec le type Any (ex : variable As Any). Visual Basic, pour ce type
d'argument, considre que celuici est pass systmatiquement par rfrence s'il y a lieu de le passer par
valeur,ilfautl'expliciterauniveaudel'appel(etnondeladclaration)delaprocdureoudelafonctionavecla
mentionByVal.
Pardfaut,VisualBasicpasselesargumentsparRfrence.
Tableaudesdclarationsdesarguments
Cettelistecomportelesfonctionsdel'APIWindowscourammentutilises.Desexemplesd'utilisationdecertaines
decesfonctionssontdonnesdansleparagraphesuivant.
GetSystemDirectory() :RenvoielechemincompletdurpertoiresystmedeWindows.
GetSystemInfo() : Renvoie tout un ensemble d'informations sur le systme. Ces donnes sont stockes dans
unestructuredetypeSYSTEM_INFO.
GetActiveWindow():Renvoielehandledelafentreactive.
FindWindow():Renvoielehandledelafentreenfonctiondesonnometdelaclassepartirdelaquelleellea
tdfinie.
SetFocus():Attribuelefocusd'entrelafentrerfrenceparsonhandle.
GetPrivateProfileString() :Renvoieuneoptionextraited'unfichier.Inipartird'unnomdesectionetdecl.
WNetGetUser() :Renvoielenomduloginrseauutilispourlasessionencours.
RcuprationdurpertoireWindows
Lancementdel'applicationExcelsinonactive
Cetexemplepermetderecherchersil'applicationExcelestactive,etdelancersonexcutionsibesoinest.
Deux fonctions API sont ici utilises : FindWindow permet de rechercher la fentre Excel, FindExecutable de
rechercherl'emplacementdufichierExcel.exe.
' Initialisation
End Function
Rcuprationd'unevaleurdansunfichier.ini
LefichierAppDevis.iniestconstitudestroislignessuivantes :
[BASE]
BasePath=C:\DEVIS
BaseName=DEVIS.ACCDB
L'exemple suivant permet de rcuprer le nom et le chemin d'accs dans le fichier AppDevis.ini situ dans le
rpertoireWindows(enfaisantappellafunctionGetWinPathdel'exemple1).
End Sub
L'objet FileSystemObject donne accs au systme de fichier d'un ordinateur. Il permet notamment de
rechercher,crer,supprimeroudplacerdesfichiersoudesdossiers.
Mthodes
Mthoderelativesauxfichiers
CopyFile:Copieunouplusieursfichiersd'unemplacementversunautre.
CreateTextFile:Creunfichiersurledisqueportantlenomspcifietrenvoieunobjet TextStreampouvant
treutilispourlireoucriredanslefichier.
DeleteFile:Supprimeunfichierspcifi.
FileExists:Renvoieunboolenindiquantsilefichierspcifiexiste.
MoveFile:Dplaceunouplusieursfichiersd'undossierversunautre.
OpenTextFile : Ouvre le fichier spcifi et renvoie un objet TextStream pouvant tre utilis pour lire le fichier
ouyeffectuerunajout.
Mthoderelativesauxdossiers
CopyFolder:Copieundossierd'unemplacementversunautre.
CreateFolder:Creundossier.
DeleteFolder:Supprimeledossierspcifietsoncontenu.
FolderExists:Renvoieunboolenindiquantsiledossierspcifiexiste.
MoveFolder:Dplaceunouplusieursdossiersd'unemplacementversunautre.
Mthoderelativesauxlecteurs
DriveExists:Renvoieunboolenindiquantsilelecteurlogiquespcifiexiste.
GetDrive:RenvoieunobjetDrivecorrespondantaulecteurdansuncheminspcifi.
GetDriveName:Renvoieunechanecontenantlenomdulecteurpouruncheminspcifi.
Proprits
Drives:RenvoieunecollectionconstituedetouslesobjetsDrivedisponiblessurlamachinelocale.
Exemple
L'exemple suivant permet d'afficher la liste des lecteurs disponibles et l'espace disponible sur chacun d'eux.
Sub AfficheLecteur()
Dim fso As Object
Dim strMsg As String
Dim drv As Object
Dim drvs As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set drvs = fso.Drives
For Each drv In drvs
If drv.isready Then
noncduproblme
Le service Ressources Humaines d'une entreprise souhaite effectuer un suivi des formations auxquelles
participentsesemploys.
L'applicationAccess,raliseceteffetetprsentedanscechapitre,permet:
- d'imprimer la liste des stages correspondants en rappelant les diffrents critres de slection.
BasededonnesFormations
LabasededonnesFormationscontenantcetteapplicationestconstituededeuxformulairesetd'untat:
- L'tat Formations affiche la liste des stages slectionns dans le formulaire Recherche.
L'option Effacer en cascade est active sur la relation entre les tables Formations et Participants.
Modlerelationneldelabase
Ceformulairepeuttresoitouvertdirectementpartird'Accesspourajouterdesstages,soitappelpartirdu
formulaire"Recherche"pourmodifierousupprimerunstageexistant.
LapropritsourceduformulaireestFormations(TableFormations).
Listedescontrles
CodeVBA
LecodeVBAassociceformulairemontrelesaspectssuivants :
- synchronisation entre formulaire et sousformulaire : lors de l'ajout ou de la suppression d'un participant, le nombre de
stagiaires et le cot par stagiaires sont recalculs et raffichs,
- appel d'une fonction pour effectuer des calculs sur les dates,
- ...
CodeVBAgnrall'application :procduresetdclarationscommunes
CodeVBAduformulaire
Option Explicit
Dim BlnMaj As Boolean
________________________________________________________________________
Private Sub cmdEnregistrer_Click()
Dim intRep As String
Err_Suppr:
MsgBox "Suppression impossible : " & Err.Number, vbCritical
On Error GoTo 0
End Sub
________________________________________________________________________
Private Sub Form_AfterUpdate()
' Indicateur de mise jour
BlnMaj = True
End Sub
________________________________________________________________________
Private Sub Form_Load()
' Dsactive les boutons Supprimer
' et Enregistrer si mode ajout donnes
If Me.DataEntry Then
cmdEnregistrer.Enabled = False
CmdSupprimer.Enabled = False
Else
' Calcul du cot par stagiaire
Me.Recalc
If txtNbStag > 0 Then
txtCoutStag = txtCout / txtNbStag
End If
BlnMaj = True
End If
End Sub
________________________________________________________________________
Private Sub sFrmParticipant_Enter()
' Contrle des informations obligatoires
Ctrl_Info
End Sub
________________________________________________________________________
Private Sub txtCout_AfterUpdate()
' Calcul du cot / Stagiaire
If txtCout > 0 And txtNbStag > 0 Then
txtCoutStag = txtCout / txtNbStag
End If
End Sub
________________________________________________________________________
Private Sub txtDateDeb_LostFocus()
' Calcul de la dure du stage
Sousformulaire"SFParticipants"
Le formulaire "Formations" et le sousformulaire "SF Participants" sont lis sur les champs FOR_IDFORM et
PART_IDFORM.
CodeVBA
Ceformulairepermetd'afficheretd'imprimerlalistedesstagesrpondantcertainscritres.Ceformulairen'est
associaucunesourcededonnes.
Listedescontrles
CodeVBA
LecodeVBAassociceformulairemontrelesaspectssuivants :
SFrmFormations.Form.RecordSource = strSQL
SFrmFormations.Form.Requery
End Sub
________________________________________________________________________
Private Sub cmdEffacer_Click()
Dim ctl As Control
Sousformulaire"SFFormations"
Lesousformulaire"SFFormations"estbassurunerequteeffectuepartirdelatable"Formations".
LapropritRecordSourceduformulaireest :"SELECT*FROMFORMATIONS".
CodeVBA
Etat"Formations"
L'tat"SFFormations"estbassurlatable"Formations".
CodeVBA
Manipulationdechanesdecaractres
Fonctions
Format():Miseenformed'unechane.
Instr():Recherched'unesouschanedecaractres.
Lcase():Conversionenminuscules.
Left():Extractiondelapartiegauched'unechanedecaractres.
Len():Longueurd'unechane.
Ltrim():Suppressiondesespacesgauche.
Mid() : Renvoie une valeur de type Variant (String) contenant un nombre indiqu de caractres extraits d'une
chanedecaractres.
Right():Extractiondelapartiedroited'unechanedecaractres.
Rtrim():Suppressiondesespacesdroite.
Space():Crationd'unechaned'espaces.
StrComp():Comparaisondechanes.
StrConv:RenvoieunevaleurdetypeVariant(String)convertieauformatindiqu.
String():Crationd'unechanedecaractresrpts.
Trim():Suppressiondesespacesgauche/droite.
Ucase():Conversionenmajuscules.
Instructions
Lset:Alignementgauched'unechanedecaractres.
OptionCompare:Mthodedecomparaisonpardfaut.
Rset:Alignementdroited'unechanedecaractres.
Contrledudroulementduprogramme
Fonctions
Choose():Renvoielavaleurd'unelistedechoixenfonctiond'unindice.
DoEvents() : Arrte momentanment l'excution afin que le systme d'exploitation puisse traiter d'autres
vnements.
IIf():Renvoieunevaleurenfonctiond'unecondition.
Switch():Renvoielavaleurassocielapremireexpressionvraie.
Instructions
Do...Loop:Crationd'uneitration.
End:Terminaisondeprogramme.
ExitDo:Sortied'uneitration.
ExitFor:Sortied'uneitration.
ForEach...Next:Permetdepasserenrevuetousleslmentsd'unecollectionoud'untableau.
For...Next:Crationd'uneitration.
Function...
EndFunction:Dfinitledbutetlafind'unefonction.
GoSub...Return:Appeld'unsousprogramme.
Goto:Effectueunbranchementinconditionnelversunelignedtermined'uneprocdure.
If...Then...Else:Crationd'unealternative.
On...GoSub:Excutiondesousprogrammesenfonctiond'unevariable.
On...Goto:Branchementversplusieurstiquettesdeprogrammeenfonctiond'unevariable.
PropertyGet:Dclarationd'uneprocdurePropertyGet.
PropertyLet:Dclarationd'uneprocdurePropertyLet.
PropertySet:Dclarationd'uneprocdurePropertySet.
SelectCase:Crationd'unealternative.
Stop:InterruptionprovisoireducodeACCESSBASIC.
Sub...EndSub:Dfinitledbutetlafind'uneprocdure.
While...Wend:Crationd'uneitration.
With:Permetd'excuterunesried'instructionssurunobjet.
Conversiondedonnes
Fonctions
Asc():ValeurAsciid'uncaractre.
Cbool():Conversiond'uneexpressionenBoolean.
CByte():Conversiond'uneexpressionenByte.
CCur():ConversiondechanedecaractresnombredetypeCurrency.
Cdate():Conversiond'uneexpressionenDate.
CDbl():Conversiondechanedecaractresnombredetypedouble.
Chr():CaractreAsciid'unnombre.
CInt():Conversiond'unechanedecaractresenunnombredetypeentier.
CIng():Conversiond'unechanedecaractresenunnombredetypelong.
CSng():Conversiond'unechanedecaractresenunnombredetypesingle.
CStr():Conversiond'uneexpressionauformatString.
CVar():Conversiond'unechanedecaractresenunnombredetypevariant.
CVErr:Renvoieuncoded'erreurspcifiparl'utilisateur.
DateSerial():Crationd'unnombredatepartirdeAAMMJJ.
DateValue() :Conversiond'uneexpressionchaneoud'uneexpressionquireprsenteunedateendate.
Day():Jourd'unedate.
Hex():Conversiond'unnombreenunechanelereprsentantenHexadcimal.
Oct():Conversiond'unnombreenunechanelereprsentantenOctal.
Str()::Conversiondenombreenchanedecaractres.
Val():Conversiondechanedecaractresennombre.
Dateetheure
Fonctions
Date():Dateetheurecourante.
DateAdd():Ajoutunedate.
DateDiff():Diffrenceentredeuxdates.
DatePart():Extractiond'unepartiededate.
DateSerial():Retourneunedatepartirdujour,dumoisetdel'anne.
DateValue():Retourneunedatepartird'unechane.
Day():Retournelenumrodujourdanslemois.
Hour():Retournelenumrodel'heure(023)d'uneexpressionheure.
IsDate():Indiquesil'argumentVariantpeuttreconvertienDate.
Minute():Retournelenombredeminutes(059)d'uneexpressionheure.
Month():Retournelenumrodumoisd'unedate.
Now():Dateetheurecourante.
Second():Retournelenombredesecondes(059)d'uneexpressionheure.
Timer():NombredesecondescoulesdepuisMinuit.
TimeSerial():Retourneletempssried'uneheure.
TimeValue():Retourneuneheurepartird'unechane.
WeekDay():Retournelenumrodujourdanslasemainepartird'unedate.
Year():Retournelavaleurdel'annepartird'unedate.
Instructions
Date:Permetdemodifierladatesystme.
Time:Permetdemodifierl'heuresystme.
Dclaration
Instructions
Const:Dfinituneconstantesymbolique.
Declare:DclareunesousroutinedeDLL.
Deftype:Dfinitiond'untypepardfaut.
Dim:Dfinitunevariable.
Let:Affecteunevaleurunevariable.
OptionBase:Dfinitlapluspetitevaleurdel'indiced'untableau.
OptionCompare:Dfinitlemodedecomparaisondesfichierstextes.
OptionExplicit:Imposeladclarationdesvariables.
OptionPrivate
Module:Interditaucontenud'unmoduled'trerfrencl'extrieurdel'application.
Private:Dfinitunevariableouuneprocdurecommetantprive.
Public:Dfinitunevariableglobale.
Redim:Redfinitlesdimensionsd'untableaudynamique.
Set:Affecteunobjetunevariable.
Static:Dfinitunevariablestatique.
Type:Dfinitdesvariablesstructuresutilisateurs.
Domaine
Fonctions
DAvg():Moyenned'undomaine.
DFirst():Premierd'undomaine.
DLast():Dernierd'undomaine.
DLookUp():Recherchedansundomaine.
DMax():Maximumd'undomaine.
DMin():Minimumd'undomaine.
DStDevP():Ecarttyped'unepopulationd'undomaine.
DStDev():Ecarttyped'unchantillond'undomaine.
DSum():Sommed'undomaine.
DVar():Varianced'unchantillond'undomaine.
DVarP():Varianced'unepopulationd'undomaine.
changedynamiquededonnes
Fonctions
DDE():CreuncanalDDEetdemanded'uneinformation.
DDEInitiate():Envoid'unecommandeviauncanalDDE.
DDERequest():Demanded'uneinformationviauncanalDDE.
DDESend():Envoid'uneinformationviauncanalDDE.
Instructions
DDEExecute:UtiliseuncanalDDEouvertpourenvoyerunecommandeuneapplication.
DDEPoke:UtiliseuncanalDDEouvertpourenvoyerdesdonnesuneapplication.
DDETerminate:Fermetured'uncanalDDE.
DDETerminateAll:FermeturedetouslescanauxDDEouverts.
Entres/sortiesfichiers
Fonctions
Curdir():Retourneledernierrpertoireutilisdanslabotededialogue"Ouvrirunebasededonnes".
Dir():Recherchedefichierscorrespondantsuncheminetunnomgnrique.
Eof():Findefichier.
FileAttr():Renvoielemodedegestiond'unfichierouvert.
FileDateTime():Retourneladateetl'heuredecrationoudederniremodificationd'unfichier.
FileLen():Retournelatailled'unfichier.
GetAttr():Retournelesattributsd'unfichieroud'unrpertoire.
Loc():Positionactuelledanslefichier.
Lof():Renvoielalongueurd'unfichier.
Seek():Renvoielapositioncourantedansunfichier.
Spc():DplacementdexespacesdansuneinstructionPrint.
Tab():DplacementdextabulationsdansuneinstructionPrint.
Instructions
Chdir:Changementderpertoirecourant.
Chdrive:Changementd'unitdedisquecourante.
Close:Fermetured'unfichier.
FileCopy:Permetlacopiedefichier.
Get:Lecturededonnesdansunfichiersquentiel.
Input:Lecturedansunfichiersquentiel.
Kill:Suppressiondefichierdudisque.
LineInput:Lectured'unelignedansunfichiersquentiel.
Lock:Verrouillaged'accsunsegmentdefichier.
Mkdir:Crationd'unrpertoire.
Name:Affectationd'unnouveaunomunfichierdisque.
Open:Ouvertured'unfichier.
Print:Ecriturededonnesdansunfichiersquentiel.
Put:Ecritured'unevariabledansunfichier.
Reset:Fermeturedetouslesfichiers.
RmDir:Suppressiond'unrpertoire.
SetAttr:Modificationdesattributsd'unfichier.
Unlock:Dverrouillaged'accsunsegmentdefichier.
Width:Affectationd'unelargeurdeligneensortiesurunfichier.
Write:criturededonnesdansunfichiersquentiel.
Finance
Fonctions
FV() : Valeur future d'une annuit sur la base d'une srie de versements priodiques constants et d'un taux
constant.
IPmt():Montantdel'intrtpourunepriodedonnesurlabasedeversementspriodiquesconstantsetd'un
tauxd'intrtfixe.
IRR():Tauxderentabilitinterned'unesriedeversements.
MIRR():Tauxderentabilitinternemodifid'unesriedeversements.
Nper() : Nombre de priodes pour une annuit sur la base de versements priodiques constants et d'un taux
d'intrtconstant.
NPV() : Valeur actuelle nette d'un investissement sur la base d'une srie de versements priodiques et d'un
taux.
Pmt() : Versement pour une annuit sur la base d'une srie de versements priodiques constants et d'un taux
constant.
PPmt():Versementprincipalpourunepriodedonned'uneannuitsurlabasederemboursementspriodiques
constantsetd'untauxd'intrtconstant.
PV() : Valeur prsente d'une annuit sur la base de versements priodiques constants et d'un taux d'intrt
constant.
RATE():Tauxd'intrtparprioded'uneannuit.
SLN():Amortissementconstantd'unbiendurantunepriodedtermine.
SYD():Amortissementd'unbienpourunepriodedonnedemanireproportionnellel'ordrenumriqueinverse
desannes.
Gestiond'erreurs
Fonctions
CVErr:RenvoielavariableError.
Err():Coded'erreursouslaformed'uninteger.
Error():Retournelemessagestandardcorrespondantunnumrod'erreur.
IsError():Indiquesiuneexpressionestunevaleurd'erreur.
Instructions
Error:Simuleuneerreur.
Onerror:Choixdubranchementeffectuerencasd'erreur.
Resume:Choixdubranchementeffectueraprstraitementd'erreur.
Graphiquesdanslestatsimprims
Fonctions
QBColor():Renvoielavaleurd'unecouleurRVBenfonctiond'unnumrodecouleur.
Liaisonsetincorporationd'objets
Fonctions
CreateObject() :CreetrenvoieunerfrenceunobjetActiveX.
GetObject() :RenvoieunerfrenceunobjetfourniparuncomposantActiveX.
Manipulationd'objets
Mthodes
CreateControl:Creuncontrledansunformulaireouvert.
CreateForm:Creunformulaire.
CreateReport:Creuntat.
CreateReportControl:Creuncontrledansuntatouvert.
DeleteControl:Dtruituncontrledeformulaire.
DeleteReportControl:Dtruituncontrled'tat.
Mathmatiques
Fonctions
Abs():Valeurabsolued'unnombre.
Atn():Arctangented'unnombre.
Cos():Cosinusd'unangleenradians.
Exp() :Exponentielle.
Fix():Partieentired'unnombre.Pourlesnombresngatifs,renvoielepremiernombreentierngatifsuprieur
ougal.
Int() :Partieentired'unnombre.Pourlesnombresngatifs,renvoielepremiernombreentierngatifinfrieur
ougal.
Log():Logarithmenprien.
Rnd():Renvoieunnombrealatoire.
Sgn():Valeurindiquantlesigned'unnombre.
Sin():Sinusd'unangleenradians.
Sqr():Racinecarred'unnombre.
Tan():Tangented'unangleenradians.
Instructions
Randomize:Initialisationdugnrateuralatoire.
Fonctions
Avg():Retournelamoyennedesvaleursd'unchampd'unesried'enregistrements.
Count():Dnombrementd'enregistrements(contrlesouexpressionsSQL).
First():Retournelavaleurd'unchampdupremierenregistrementd'unerequte,formulaireoutat.
Last():Retournelavaleurd'unchampdudernierenregistrementd'unerequte,formulaireoutat.
Max():Retournelemaximumdesvaleursd'unchampd'unesried'enregistrements.
Min():Retourneleminimumdesvaleursd'unchampd'unesried'enregistrements.
StDev(), StDevP() : Retourne une estimation de l'cart type d'une population ou d'un chantillon de
population.
Sum():Retournelasommedesvaleursd'unchampd'unesried'enregistrements.
Var(),VarP():Retourneuneestimationdelavarianced'unepopulationoud'unchantillondepopulation.
Tableaux
Fonctions
IsArray():RenvoieunevaleurdetypeBoolean(boolen)quiindiquesiunevariableestuntableau.
Array():RenvoieunevariabledetypeVariantcontenantuntableau.
Instructions
Erase:Rinitialisationdetableaustatiqueetlibrationdelammoirealloueuntableaudynamique.
Lbound,Ubound:Recherchedesbornesinfrieuresetsuprieuresd'untableau.
OptionBase:Fixelaborneinfrieuredestableaux.
ReDim:Redimensionnementdynamiquedetableaux.
Vrificationdevariables
Fonctions
IsDate():Testesiunevariableestdetypedate.
IsEmpty():Testesiunevariableestvide.
IsMissing():Indiquesiunargumentfacultatifatpassuneprocdure.
IsNull():TestesiunevariableestNull.
IsNumeric():Testesiunevariableestdetypenumrique.
IsObject():Indiquesiuneexpressionfaitrfrenceunobjet.
TypeName():Renvoieunechaneindiquantletyped'unevariable.
VarType():Dtermineletypededonnessourced'unevariabledetypevariant.
Fonctions
Command():ContientlapartieargumentdelalignedecommandeutilisepourlancerMicrosoftAccess.
CreateGroupLevel():Crationd'unniveauderegroupementdansuntat.
CurrentUser():Renvoielenomdel'utilisateuractuellementconnect.
DoEvents():RendleprocesseurprovisoirementWINDOWSpourqu'ilpuissetraiterlesvnements.
Environ():Renvoielachaneassocieunevariabled'environnement.
GetAllSettings:Renvoielalistedescls(etleursvaleursrespectives)figurantdansuneentred'applicationde
labasederegistredeWindows.
GetSetting:Renvoieunevaleurdecldel'entreduregistreWindowsd'uneapplication.
InputBox : Affiche une invite dans une bote de dialogue, puis renvoie le contenu de la zone de texte sous la
formed'unevaleurdetypeString.
MsgBox():Affichaged'unebotedemessage.
Shell():Excutiond'unprogramme.
StrReverse:Renvoieunechanecontenantdescaractresdontl'ordreatinversparrapportunechane
donne.
Instructions
AppActivate:Activationd'unefentred'applicationWindows.
Beep:metunBip.
SendKeys:Envoid'unesquencedetouchesclavier.
DeleteSetting:Supprimeunesectionouunparamtredecld'uneentrederegistreWindows.
Rem :Permetd'incluredesremarquesexplicativesdansunprogramme.
SaveSetting:Sauvegardeoucreuneentred'applicationdansleregistreWindows.
Codeserreursrcuprables
Des erreurs rcuprables peuvent survenir lors de l'excution d'une application. Certaines d'entre elles peuvent
galementseproduirelorsdudveloppementoudelacompilation.Vouspouveztesteretrpondredeserreurs
rcuprablesl'aidedel'instructionOnErroretdel'objetErr.
CodeErreur Description
3 ReturnsansGoSub.
5 Appeldeprocdureincorrect.
6 Dpassementdecapacit.
7 Mmoireinsuffisante.
10 Cetableauestfixeoutemporairementverrouill.
11 Divisionparzro.
13 Typeincompatible.
14 Espacedechaneinsuffisant.
16 Expressiontropcomplexe.
17 Impossibled'excuterl'oprationrequise.
18 Interruptionparl'utilisateur.
20 Reprisesanserreur.
28 Espacepileinsuffisant.
35 Sub,FunctionouPropertynondfinie.
47 Tropdeclientsd'applicationpourlaDLL.
48 ErreurdechargementdelaDLL.
49 Conventiond'appeldeDLLincorrecte.
51 Erreurinterne.
52 Nomounumrodefichierincorrect.
53 Fichierintrouvable.
54 Moded'accsaufichierincorrect.
55 Fichierdjouvert.
57 Erreurd'entre/sortiedepriphrique.
58 Cefichierexistedj.
59 Longueurd'enregistrementincorrecte.
61 Disqueplein.
62 L'entredpasselafindefichier.
63 Numrod'enregistrementincorrect.
67 Tropdefichiers.
68 Priphriquenondisponible.
70 Permissionrefuse.
71 Disquenonprt.
74 Impossiblederenommeravecunlecteurdiffrent.
76 Chemind'accsintrouvable.
91 VariableobjetouvariableblocWithnondfinie.
92 BoucleFornoninitialise.
93 Formatdechaneincorrect.
94 UtilisationincorrectedeNull.
97 Impossible d'appeler une procdure Friend sur un objet qui n'est pas une instance de classe de
dfinition.
98 Un appel de proprit ou de mthode ne peut pas faire rfrence un objet priv ni en tant
qu'argumentnientantquevaleurrenvoye.
298 ImpossibledechargerlaDLLsystme.
320 Impossibled'utiliserdesnomsdepriphriquesdecaractresdanslesnomsdefichiersspcifis.
321 Formatdefichierincorrect.
322 Impossibledecrerlefichiertemporairencessaire.
325 Formatincorrectdanslefichierressource.
327 Lavaleurdel'objetdedonnesnommestintrouvable.
328 Paramtreincorrect.Impossibled'criredestableaux.
335 Impossibled'accderauregistresystme.
336 Lecomposantn'estpascorrectementenregistr.
337 Composantintrouvable.
338 Excutionincorrecteducomposant.
360 Objetdjcharg.
361 Impossibledechargeroudedchargercetobjet.
363 Lecontrlespcifiestintrouvable.
364 L'objettaitdcharg.
365 Impossiblededchargerdanscecontexte.
368 Lefichierspcifiestprim.Ceprogrammerequiertuneversionplusrcente.
371 L'objetspcifinepeuttreutiliscomepropritairedelafeuillepourlamthodeShow.
380 Valeurdepropritincorrecte.
381 Indexdutableaudepropritsincorrect.
382 PropertySetnepeutpastreexcuteenmodeexcution.
385 Indexdetabledepropritrequis.
387 PropertySetnonautorise.
393 PropertyGetnepeutpastreexcuteenmodeexcution.
394 PropertyGetnepeutpastreexcutesurunepropritencritureseule.
400 Feuilledjafficheaffichagemodalimpossible.
402 Lecodedoitd'abordfermerlafeuillemodaledepremierplan.
419 Autorisationd'utiliserl'objetrefuse.
422 Propritintrouvable.
423 Propritoumthodeintrouvable.
424 Objetrequis.
425 Utilisationd'objetincorrecte.
429 Uncomposantnepeutpascrerl'objetoufournirunerfrencecetobjet.
430 CetteclassenegrepasAutomation.
432 NomdefichieroudeclassenontrouvpendantuneoprationAutomation.
438 Cetobjetnegrepascettepropritoumthode.
440 ErreurAutomation.
442 Laconnexionlabibliothquedetypesoud'objetspourunprocessusdistantatperdue.
443 L'objetAutomationn'apasdevaleurpardfaut.
445 L'objetnegrepascetteaction.
446 L'objetnegrepaslesargumentsnomms.
447 L'objetnegrepaslesparamtresrgionauxencours.
448 Argumentnommintrouvable.
449 Argumentnonfacultatifouaffectationdepropritincorrecte.
450 Nombred'argumentsincorrectouaffectationdepropritnonvalide.
451 Cetobjetn'estpasunecollection.
452 Numroincorrect.
453 FonctionDLLspcifieintrouvable.
454 Ressourcedecodeintrouvable.
455 Erreurdeverrouillagederessourcedecode.
458 CettevariableutiliseuntypenongrparVisualBasic.
459 Cecomposantnegrepaslejeud'vnements.
460 FormatdePressepapiersincorrect.
461 Mthodeoumembrededonnesintrouvable.
462 Leserveurdistantn'existepasoun'estpasdisponible.
463 Laclassen'estpasenregistresurlamachinelocale.
480 ImpossibledecreruneimageenmodeAutoRedraw.
481 Imageincorrecte.
482 Erreurd'imprimante.
483 Legestionnaired'imprimantenegrepaslapropritspcifie.
484 Problme pour obtenir des informations du gestionnaire d'imprimante du systme. Assurezvous
quelegestionnaired'imprimanteestinstallcorrectement.
485 Typed'imageincorrect.
486 Impossibled'imprimerl'imagedefeuillesurcetyped'imprimante.
520 ImpossibledeviderlePressepapiers.
735 Impossibled'enregistrerlefichierdansunrpertoireTEMP.
744 Letexterecherchestintrouvable.
746 Remplacementstroplongs.
31001 Mmoireinsuffisante.
31004 Pasd'objet.
31018 Classenondfinie.
31027 Impossibled'activerl'objet.
31032 Impossibledecrerunobjetincorpor.
31036 Erreurl'enregistrementdanslefichier.
31037 Erreurdechargementpartirdufichier.
VisualBasicpourApplicationspermetdedfinirdesconstantesafind'amliorerlalisibilitducodeetd'enfaciliter
lamaintenance.
Vous pouvez galement utiliser les constantes VBA (constantes intrinsques) suivantes partout dans votre
code.
Constantesdecouleur
Constantesdedate
Constantesdestouchesclavierlettresetchiffres
LesvaleursdestouchesAZsontlesmmesqueleursquivalentsASCII.
Lesvaleursdestouches09sontlesmmesqueleursquivalentsASCII.
Constantesdetouchesdiverses
F1 :Aidesurlemotclsurlequelsetrouvelecurseur.
F5 :Excuteuneprocdure.
F8 :ModePaspasdtaill.
ShiftF8 :ModePaspasprincipal.
CtrlShiftF8:ModePaspassortant.
CtrlF8 :Excutejusqu'aucurseur.
ShiftF9 :Affichelavaleurencours.
F9 :Afficheoudsactiverlepointd'arrt.
CtrlShiftF9 :Supprimetouslespointsd'arrt.
CtrlF9 :Dfinitl'instructionsuivante.