Vous êtes sur la page 1sur 32

Universit Catholique de lAfrique de lOuest

Unit UniverSitaire du Togo

Cours Access & VBA pour Access

Par : Achille PEGOUE

Lom Octobre 2008

Table des matires

1 Notions rapide sur les bases de donnes 1.1 Les SGBDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Conception dun SGBDR . . . . . . . . . . . . . . . . . . . . . 1.2.1 le MCD . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Le MLD ou le MLDR et le modle physique de donnes

. . . .

. . . .

. . . .

. . . .

1 1 1 2 3 5 6 8 9 10 10 10 11 13 14 17 20 24 24 26 26 27 27 28 28 28 29

2 Vue globale de MS Access 2.1 Oprations sur la base de donnes . . . . . . . . . . . . . . . . . . . 2.2 Oprations sur les objets de la base de donnes :Tables, requtes, formulaires et tats . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Cration dobjet . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Modier/ouvrir un objet . . . . . . . . . . . . . . . . . . . . 2.2.3 Imprimer/voir laperu avant impression . . . . . . . . . . . 2.2.4 Couper/Copier/Coller/Renommer/Supprimer . . . . . . . . 2.2.5 Manipulation des tables . . . . . . . . . . . . . . . . . . . . 2.2.6 Etablir les relations . . . . . . . . . . . . . . . . . . . . . . . 2.2.7 Manipulation des requtes . . . . . . . . . . . . . . . . . . . 2.2.8 Manipulation des formulaires . . . . . . . . . . . . . . . . . 2.2.9 Manipulation des tats . . . . . . . . . . . . . . . . . . . . . 2.2.10 Manipulation des pages daccs aux donnes . . . . . . . . . 2.3 Macro Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Manipuler les objects partir de VBA 3.1 Types de procdure . . . . . . . . . . . . . . . . 3.2 Structure de base des programmes . . . . . . . . 3.2.1 Dclaration et type de donnes . . . . . 3.2.2 Aectation et calcul . . . . . . . . . . . 3.2.3 Boucles et test . . . . . . . . . . . . . . 3.3 Exemple : Ecriture dun programme visual basic Bibliographie

. . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Chapitre Un

Notions rapide sur les bases de donnes

1.1

Les SGBDR

Une base de donnes est un ensemble dinformations concernant un sujet donn. Une base de donnes relationnelle tablit des des liens logiques entre les informations stockes. La base de donnes informatique synthtise, organise, traite et prsente les informations dune organisation dans un ou plusieurs objectifs : facturation, gestion des salaires, gestion du personnel, tablissement des documents comptables. Le SGBDR (Systme de Gestion de Base de Donnes Relationnelle ) est une application qui permet de grer le stockage, lorganisation, les relations, les traitements et la prsentation des informations. Danss un SGBDR "linformation est range dans des chiers, sous forme de tables composes de lignes et de colonnes. Les lignes reprsentent les enregistrements (ensembles dinformations relatives des rubriques spares), tandis que les colonnes correspondent aux champs (attributs spciques un enregistrement)."1 La plupart des logiciels de SGBDR utilise le langage SQL (Structured Query Language) qui est un langage dinterrogation, de mise jour et de gestion de bases de donnes relationnelles.

1.2

Conception dun SGBDR

Plusieurs tapes sont ncessaires la conception et la ralisation dune base de donnes. "Lorsque lon dcide de crer une base de donnes relationnelle, il faut surtout veiller dnir clairement ses caractristiques. Les donnes du problme doivent tre nonces avec prcision et dcides en amont selon les besoins traiter, la ralisation et linstallation de la base de donnes savrant alors beaucoup plus souples. En eet, une erreur de conception pourrait en gnrer dautres bien plus graves lors de linstallation de la base, allant parfois mme jusqu la perte de certaines donnes. Cest pourquoi des mthodes de conception de bases de donnes ont t mises au point an dviter les erreurs majeures : la mthode MERISE constitue ainsi lune des mthodes les plus employes en entreprise, mais dautres comme UML,
1

"base de donnes." Microsoft

Encart

2007 [DVD]. Microsoft Corporation, 2006.


par Achille PEGOUE c UCAO-UUT, Lom 2008

Access & VBA pour Access

Notions rapide sur les bases de donnes

HOOD, OOA ou encore REMORA sont galement trs prsentes dans les milieux industriels."2 La mthode MERISE, qui est un modle entit relation, consiste concevoir un Modle Conceptuel de Donne (MCD), le transposer en Modle Logique de Donnes Relationnelles (MLDR), puis gnrer le Modle Physique correspondant (MPD).

1.2.1

le MCD

Pour construire le MCD, il faut dcrire le systme dinformation (SI) pour comprendre ce quon va modliser. On parle souvent dtablir les rgles de gestion. Exemple de SI de gestion dun magasin : "Un client peut acheter un ou plusieurs produits. La facturaton est tablit par une caissire. Le mode de paiement est le cash ou la carte bancaire". La construction du Modle Conceptuel de Donne repose sur lidentication de ses 5 caractristiques : Entits, Proprits, Identiants, Associations, Cardinalits Une entit est caractrise par ses proprits3 . Exemple : un client est identi par ses nom et prnom, son sexe, etc. Chaque lment dune entit sappelle une occurence. Exemple : Le client N dont le nom est . . ., le prnom . . . ; Les proprits 5 dn produit sont : code, libell, description. Chaque occurence doit pouvoir tre identie de manire unique par une proprit appele identiant. Client Numro Nom Prnom Sexe Produit Code Produit Libell Decription

Les relations sont ensuite tablies entre les entits laide des identiants. Les relations sidentient par lutilisation des verbes. Exemple : Un client achte un ou plusieurs produits Client Numro Nom Prnom Sexe Relation Achte Produit Code Produit Libell Decription

Il faut ensuite dterminer les cardinalit i.e. un couple dentier naturel (a ;b) o a est la cardinalit minimale (nombre minimum doccurence) et b la cardinalit maximale. Exemple : un client achte un ou plusieurs produits donne une cardinalit (1 ;n) ; un produit est acht par 0 ou plusieurs clients donne une cardinalit (0 ;n). Dans un MLD, un identiant deviennent est appel cl primaire.
Micrsoft Encarta 2007 De faon formelle, il faut construire la SAT(structure daccs thorique) qui dcrit le SI en reprsentant toutes les proprits et les dirents liens. Le regroupement des proprits terminales de la SAT fournit les entitits
3
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Notions rapide sur les bases de donnes

1.2.2

Le MLD ou le MLDR et le modle physique de donnes

Le MLDR est le modle logique de donne relationnel. Il sagit de crer les direntes tables quon va utiliser dans la ralisation physique de la base de donnes i.e. le modle physique des donnes (MPD) raliser laide dun SGBDR. Pour transformer le MCD en MLD, plusieurs cas de gure sont envisags : 1. Une entit se transforme en une relation (table) Les entits Clients et Produits donnent lieu la cration de : la table CLIENT(Numro client, Nom client, prnom client) et la table PRODUITS(Code produit,Libell du produit, description du produit) En principe, ce cas ne sapplique quau table sans relation4 2. Relation binaire aux cardinalits (X,1) - (X,n), X=0 ou X=1 Il faut crer une cl trangre dans la table la cardinalit (X,1). Ainsi, si nous avions suppos quil existe une entit "catgories de produits" avec la rgle de gestion (relation) :"Une catgorie a un ou plusieurs produits et un produit appartient une et une seule catgorie de produits", on tablirait une cardinalit (1 ;n) pour la table catgorie et une cardinalit (1,1) pour la table produit. Une cl trangre qui lidentiant de lentit catgories de produits est ensuite cre dans la table produits : CATEGORIES(Code de la catgorie,Libell de la catgorie, description de la catgorie) ; PRODUITS(Code produit,Libell du produit, description du produit, Code de la catgorie). Ce qui conduit au MPD suivant : CATEGORIES Code catgories Libell Decription PRODUIT Code Produit Code catgories Libell Decription

Code catgories=

Code catgories

3. Relation binaire aux cardinalits (X,n) - (X,n), X=0 ou X=1 La cration dune troisime table simpose. Cette table a comme cl primaire la concatenation(la runion) des deux identiants des entits intervenant dans la relation Dans le relation un client achte un ou plusieurs produits, il faut incorporer le prix du produit et la quantit achete. Ainsi, les tables crer sont : CLIENT(Numro client, Nom client, prnom client) PRODUITS(Code produit,Libell du produit, description du produit) ACHETE(Numro client,Code produit,Quantit achete, Prix du produit) Le MPD se prsente ainsi :
Dans la pratique, il faut veiller ne pas crer trop de relations. Ainsi dans le dpouillement des enqutes o le recours est fait des modalits (exemple oui/non, homme/femme, hausse/stable/baisse, etc.), il nest pas ncessaire dtablir des relations. Nous verrons plus loin comme ces cas sont grs sur Access.
4

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Notions rapide sur les bases de donnes

CLIENT Numro Nom Prnom Sexe


s d d d

PRODUIT Code produit Libell Description




d Numro=Numro d d d

Code Produit=Code Produit

ACHETE Code produit Numro Quantit Prix En ralit la relation est plus complexe que ce qui est dcrit car le client peut acheter plusieurs fois le mme produit. Dans ce cas de gure, le code client et le code produit sont insusants pour identier de faon unique une occurence. La dicult peut tre contourne de deux faons : (i) un champ date qui enregistre la date (anne, mois et jour) et linstant (heure, mininute et seconde) vient complter les identiants (ii) une troisime table facturation avec pour identiant numro de la facture vient enrichir le MPD en servant de tampon entre le client et les produits ; Cette table peut contenir les informations suivantes : Numro facture, code client, nom de la caissire, date, etc., ensuite le numro de la facture remplace le numro client dans la table ACHETE. Cest cette solution qui est retenu dans la pratique lorsquil y a un suivi de la clientelle. Cependant dans un souci de simplicit, nous supposerons que cest toujours un nouveau client qui entre au magasin chaque fois quil y une opration de facturation. 4. Relation binaire aux cardinalits (0,1) - (1,1) La Cl Primaire de la table la cardinalit (0,1) devient une Cl Etrangre dans la table la cardinalit (1,1)

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Chapitre Deux

Vue globale de MS Access

Cette partie sappuie sur la prsentation dEric MARNAY, dans le cadre du Projet informatique de DESS M.A.S.I (http ://www-ipst.u-strasbg.fr/pat/internet/apprendr.htm). Comme toutes la plupart des applications devloppes sous Windows, Microsoft Access est ore un interface graphique lutilisateur et un environnement de devloppement utilisant une programmation fonctionnelle qui est Visual Basic Application (VBA) pour Microsoft Access. Une importante documentation et rseau important accompagnent les utilisateurs dAccess. Laide en ligne ou en mode hors connexion est disponible tout moment. La touche "F1" vous y conduit rapidement selon le contexte dans lequel vous vous trouvez. Pour lancer Accs, Allez dans le bouton Dmarrer, cliquez sur Tous les programmes, Dans Microsoft Oce droulez les programmes disponibles et slectionnez Microsoft Access 2007 pour acher la fentre de prise en main (voir gure 2.1). Si Access nest pas disponible, vous devez linstaller. Fig. 2.1 Fentre de prise en main de Microsoft Oce Access 2007

Lorsque vous crer une nouvelle base de donnes, Access vous ouvre une table en mode Achage vous permettant immdiatement de saisir les enregistrements
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

Pour une vue globale dAccess, il faut distinguer les oprations sur la base de donnes et les oprations sur les objets qui composent la base de donnes

2.1

Oprations sur la base de donnes

Une base de donnes Microsoft Access est collection de donnes et dobjets (tels que des tables, des requtes, des formulaires, des tats, des pages, des macros et des modules) qui est associe une rubrique ou un objectif donn. Il faut distinguer une base de donnes accs dun projet Access qui contient des objets tels que des formulaires, des tats, des pages, des macros et des modules. Avant de manipuler une base de donnes, il faut la crer. Vous pouvez crer une base par la duplication (copier/coller avec lexplorateur Windows) dune ancienne base de donnes. Si vous navez pas cre une base de donnes vierge tel que dcrit dans lintroduction de ce chapitre, allez dans le Bouton oce et cliquez sur Nouveau pour acher la fentre de dmarrage de MS Access 2007 et crer votre base de donnes. Lextension des chiers Access 2007 est (.cccdb). Pour fermer une base de donnes, allez dans le Bouton oce et cliquez sur Fermer la base de donnes. Dans une fentre classique de MS Acces 2007 (voir gure 2.2), vous disposez des lments visuels suivants : Fig. 2.2 Fentre des objets MS Access 2007

Le ruban qui est une Zone horizontale situe en haut de la fentre du programme et qui permet de choisir les commandes. Onglet de commandes Regroupe les commandes de faon logique. Les principaux onglets du ruban sont : Accueil, Crer, Donnes externes et Outils de base de donnes. Les commandes du ruban dpendent de lobjet actif. Par exemple, si une table est ouverte en mode Feuille de donnes et si vous cliquez sur Formulaire dans longlet Crer sous le groupe Formulaires, Oce Access 2007 cre le formulaire
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

en fonction de la table active. En dautres termes, le nom de la table active est entr dans la proprit Source du formulaire LOnglet de commandes contextuel qui est un Onglet de commandes ach en fonction du contexte, savoir de lobjet que vous utilisez ou de la tche que vous eectuez. La Galerie qui est un Contrle qui ore une reprsentation visuelle dune slection, an que vous puissiez juger du rsultat. La galerie a t conu pour fonctionner avec le ruban et galerie ache le rsultat de ces commandes. Elle ore une reprsentation visuelle des possibilits oertes par Oce Access 2007 et des rsultats quil est possible dobtenir, mettant laccent sur ces rsultats plutt que sur les commandes elles-mmes. La Barre doutils Accs rapide qui est une Barre doutils standard unique, situe dans le ruban, qui permet daccder laide dun seul clic la plupart des commandes requises, par exemple Enregistrer et Annuler. Le volet de navigation Zone gauche de la fentre qui comprend les objets de base de donnes. Le volet de navigation remplace la fentre Base de donnes des versions antrieures dAccess. Les Documents onglets qui sont Les tables, requtes, formulaires, tats, pages et macros aches sous la forme de documents onglets. La Barre dtat qui est situe en bas de la fentre du programme et comporte des informations dtat ainsi que les boutons de changement de mode dachage. La Minibarre doutils qui est un lment qui sache en transparence audessus du texte slectionn pour faciliter la mise en forme du texte. Dautres oprations peuvent tre ralises sur la base de donnes. Elles se trouvent pour lessentiel dans le Bouton oce et la commande Grer : 1. compacter et rparer une base de donne. Pour des performances optimales, vous devez compacter et rparer rgulirement les chiers Microsoft Access. Le compactage consiste compresser le chier de faon rduire lespace occupe sur le disque. 2. Sauvegarder une base de donnes 3. Proprits de la base de donne Une autre oprations importantes qui peut tre faite sur base de donnes est de Crer un chier un ACCDE :Si votre base de donnes contient du code Microsoft Visual Basic pour Applications (VBA), lenregistrement de votre base de donnes Microsoft Access comme chier ACCDE compile tous les modules, supprime tout le code source ditable et compacte la base de donnes de destination. Votre code Visual Basic va continuer fonctionner, mais il ne peut pas tre ach ni modi. Lenregistrement de votre base de donnes comme chier ACCDE protge vos formulaires et vos tats sans obliger vos utilisateurs se connecter ou sans vous obliger crer et grer des comptes dutilisateur et des autorisations qui sont ncessaires pour obtenir une scurit au niveau des utilisateurs. Votre base de donnes va continuer fonctionner normalement, vous pourrez continuer mettre jour des donnes et excuter des tats. On cre gnralement un chier ACCDE lorsquon achev le dveloppement et la base prte pour la diusion.
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

Fig. 2.3 Utilitaires de base de donnes

Pour crer un chier ACCDE, cliquez sur longlet Outils de base de donnes et pointez sur le groupe Outils de base de donnes pour slectionner la commande crer ACCDE. Vous pouvez transferer votre base de donnes dans SQL Server ou la fractionner partir de cet onglet.

2.2

Oprations sur les objets de la base de donnes :Tables, requtes, formulaires et tats

Il existe plusieurs modes dachage des objets dune base de donnes (le menu achage) : Mode Cration (voir gure 2.4) : fentre qui prsente la cration des objets de base de donnes suivants : tables, requtes, formulaires, tats, macros et pages d accs aux donnes. En mode Cration, vous pouvez crer de nouveaux objets de base de donnes et modier la structure dobjets existants. Mode Feuille de donnes (voir gure 2.5) : fentre qui ache des donnes dune table, dun formulaire, d une requte, dune vue ou dune procdure stocke sous forme de lignes et de colonnes. En mode Feuille de donnes, vous pouvez modier des champs et ajouter, supprimer ou rechercher des donnes. mode SQL (voir gure 2.6) : fentre qui ache l instruction SQL correspondant la requte en cours ou qui est utilise pour crer une requte spcique SQL (Union, directe ou Dnition de donnes). Lorsque vous crez une re-

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

Fig. 2.4 Fentre mode cration dun formulaire

Fig. 2.5 Fentre mode feuille de donnes dune table

qute en mode Cration, Access construit l quivalent SQL en mode SQL. mode Aperu avant impression(voir gure 2.7) : Valable pour visionner comment se prsente un tat ou une page daccs aux donnes.

2.2.1

Cration dobjet

Pour crer un nouvel objet, cliquez sur longlet Crer et pointez sur le nom du groupe de commande indiquant lobjet crer ; choisissez ensuite la commande dont le nom commence par Cration ....

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

10

Fig. 2.6 Fentre mode SQL dune requte

Fig. 2.7 Fentre aperu avant impression dun tat

2.2.2

Modier/ouvrir un objet

Pour modier un objet, double cliquez dessus dans le Volet navigation, cliquez ensuite sur longlet Acceuil, dans le groupe Achages, cliquez sur la commande Achage pour acher la galerie de commande permettant de choisir un type dachage souhait. Plus simplement, pointez sur lobjet et achez le menu contextuel an de choisir le mode dachage souhait.

2.2.3

Imprimer/voir laperu avant impression

Pour imprimer un objet ou voir comment il se prsente, cliquez sur le Bouton Oce et pointez sur la commande Imprimer an de choisir laction dsire.

2.2.4

Couper/Copier/Coller/Renommer/Supprimer

Les oprations de Couper/Copier/Coller/Renommer/Supprimer de Windows sont valides sur les objets de la base de donnes laide du menu contextuel.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

11

2.2.5

Manipulation des tables

La table est lobjet de stockage par excellence des informations conserver dans la base. Elle est un objet daccs reprsantant un lment du MPD (modle physique des donnes) et dcrit donc les caractristiques dun enregistrement ou occurence1 par les proprits. Une table peut tre cre sur la base dun modle ou en dnissant manuellement les champs Pour crer une table, dans longlet Crer, pointez sur le groupe Tables : pour crer une table laide dun modle cliquez sur la commande Modles de tables pour acher la galerie de modle de tables et choisissez le modle qui vous convient pour gnrer une table. Vous pouvez ensuite acher la table en mode cration pour modier ses proprits pour crer manuellement une table, cliquez sur la commande Cration de table pour acher une table vierge en mode cration (voir gure 2.8) o vous pourrez paramtrer vos champs en indiquant les proprits telles que tires du MPD Exemple1 : Cration de la table Sexe avec les proprits suivantes Nom du champ Type Taille Sexe Entier Libell Texte 65 Description Sexe du client Intitul du sexe

Fig. 2.8 Fentre de cration de la table Sexe

NB : Noubliez pas de dnir Sexe comme cl primaire en cliquant sur loutil dsignant une cl dans la barre doutil. Lorsque vous dnissez une cl primaire, le champ est indx sans doublon : Cette proprit facilit les opration de tri et de recherche tout en vitant que vous saisissez deux fois le mme enregistrement dans le champ. Achez ensuite la table en mode feuille de donne en choisissant cette option dans le menu achage. Saisissez les informations suivantes(voir gure 2.9) : Vous
Lorsque les informations sont saisies dans une table, chaque ligne est un enregistrement ou une occurence.
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

12

Fig. 2.9 Saisie des donnes dans une table

remarquez que le champ sexe sache avec comme nom du champ la lgende (et non description) que nous avons renseign en mode cration. Exemple2 : Cration de la table Client avec les proprits suivantes Selectionnez Nom du champ Numro Nom Prnom Sexe Type Numrotation automatique Texte Texte Numrique Taille 65 65 Description Numro du client Nom du client Prnom du client Sexe du client

"Assistant Liste de choix" comme type de donnes de la cl trangre sexe. Ceci vous permettra non pas de taper les codes mais de les choisir parmi ceux que vous avez renseigns dans la table sexe. Dans les direntes tapes de lassistant qui dnit la liste de choix, procdez ainsi : 1. "Lassistant recherche les valeurs dans une table ou requte" et cliquez sur suivant 2. Selectionnez la table sexe et cliquez sur suivant 3. Cliquez sur la double che pour slectionner tous les champs et cliquez sur suivant 4. cliquez sur suivant 5. cochez "colonne cl cahe" et cliquez sur terminer. Achez ensuite la table en mode feuille de donnes et saisissez quelques informations Compltons nos tables en crant la table PRODUIT et la table ACHETE Tab. 2.1 Proprits de la table PRODUIT Nom du champ Type Taille Code produit Numrotation automatique Libelle Texte 65 Description Texte 65 Noubliez pas de dnir la cl primaire pour la table PRODUIT. Pour la table ACHETE, selectionnez les champs souligns et dnissez les simulataniment comment cl primaire.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

13

Tab. 2.2 Proprits Nom du champ Code produit Numero Quantit Prix

de la table ACHETE Type Taille entier entier Entier Entier

2.2.6

Etablir les relations

Il faut tablir les relations immdiatement aprs avoir cre les tables. Des relations entre non seulement les tables mais aussi les requtes peuvent tre ralises. Pour acher la fentre relation (voir gure 2.10), cliquez sur longlet Outils de base de donnes et pointez sur le groupe Acher/Masquer, slectionnez la commande relation. Les tables et les requtes qui interviennent dans les relations sont ajoutes Fig. 2.10 Fentre relation dune base de donnes

partir de la bote de dialogue Ajouter les tables ou les requtes. Cette bote de dialogue est ache en pointant sur le groupe relations et cliquant sur la commande Acher la table. Elle peut aussi tre ache partir de loutil "acher le table" du menu contextuel ou de la barre doutil. En gnral pour tablir une relation, il sut de porter la cl primaire de la table parent qui est aussi appel champ pre pour la cl trangre correspondant dant lautre table aussi appel champ ls. Une bote de dialogue (voir gure 2.11)vous invite ensuite modoer les proprits de la relation. Cette bote de dialogue peut aussi tre ache en double cliquant sur la relation lorsque celle si existe. Lintgrit rfrentielle entre des tables est applique par dfaut quand vous crez une relation dans votre schma de base de donnes. Une relation ainsi applique garantit que chaque valeur entre dans une colonne de cl trangre correspond une valeur existante dans la colonne de cl primaire qui a t mise en relation. La mise en forme de la fentre relation est conserve en cliquant sur Enregistrer du Bouton Oce. Exemple : Ouvrez la fentre des relations et ajoutez les tables : PRODUITS (saisissez quelques produits), CLIENTS (ny saisissez rien)et ACHETE (ny saisissez rien) ; Etablissez les relations entre les tables telles que tires du MPD ci-aprs :

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

14

Fig. 2.11 Bote de dialogue des proprits dune relation

CLIENT Numro Nom Prnom Sexe


s d d d Numro=Numro d d

PRODUIT Code produit Libell Description


 Code Produit=Code Produit

ACHETE Code produit Numro Quantit Prix

2.2.7

Manipulation des requtes

Une requte est une question relative aux donnes stockes dans vos tables, ou demande pour excuter une action sur les donnes. Une requte peut rassembler des donnes issues de plusieurs tables pour servir de source de donnes pour un formulaire, un tat ou une page d accs aux donnes. Vous pouvez utiliser des requtes pour acher, modier et analyser des donnes de diverses faons. Vous
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

15

pouvez galement les utiliser comme source denregistrements pour des formulaires, des tats et des pages daccs aux donnes. Aprs avoir cre une requte en mode cration, on peut lexcuter (en cliquant sur loutil dsignant un point dexclamation ou en faisant excuter dans la menu requte) ou tout simplement voir le rsultat en mode feuille de donnes. Il existe plusieurs type de requte : Requtes Slection La requte Slection est le type de requte le plus courant. Elle rcupre des donnes contenues dans une ou plusieurs tables et ache les rsultats sous la forme dune feuille de donnes dans laquelle il vous est possible deffectuer une mise jour des enregistrements (sous rserve de quelques restrictions). Vous pouvez galement utiliser une requte Slection pour regrouper des enregistrements et calculer une somme, une moyenne ou eectuer un comptage ou tout autre type dopration. Exemple : Nous allons selectionn tous les clients de sexe masculin de notre base de donnes et ach leur nom et leur prnom dans une seul champ. Aprs avoir cliqu sur requte dans la fentre base de donnes, choisissez nouveau. Dans la bote de dialogue, retenez mode cration. Slectionnez les tables CLIENT et SEXE et Paramtrez votre requte comme suit (voir gure 2.12) : Fig. 2.12 REqute slection des clients hommes

Le symbole & permet de concatener les informations contenues dans des champs dirents. Dans la zone critre du champ code, entrez "=1" ou tout simplement "1" pour signier que vous slectionnez uniquement les hommes i.e. les clients ayant pour code sexe "1". Achez en mode feuille de donnes pour visualiser le rsultat. Noubliez pas denregistrer la requte si vous souhaitez la conservez. Pour entrer plusieurs critres de slection, utilisez la ligne critre sil sagit dune intersection ("ET" i.e. lun ET lautre) de critre (exemple : Clients Hommes de sexe masculin et donc le nom ou prmon comprend la lettre a : Ajoutez like "a" dans la zone critre du champ "Nom et Prnom") ; utiliser la ligne o sil sagit dune

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

16

runion de critre ("OU" i.e. lun OU lautre) (exemple : Clients de sexe masculin ou donc le nom ou prmon comprend la lettre a : Ajoutez like "a" dans la zone o du champ "Nom et Prnom") Requtes paramtres Une requte paramtre est une requte qui, lors de son excution, ache une bote de dialogue qui vous invite entrer des informations, telles que des critres (critres : conditions que vous spciez pour limiter les enregistrements inclure dans le jeu de rsultats d une requte ou d un ltre.) pour extraire des enregistrements ou une valeur insrer dans un champ. Vous pouvez congurer cette requte an quelle vous invite entrer plusieurs informations : vous pouvez par exemple la congurer pour quelle vous invite saisir deux dates an que Microsoft Access rcupre tous les enregistrements compris entre celles-ci. Les requtes paramtres peuvent galement servir de base des formulaires, des tats et des pages daccs aux donnes. Vous pouvez par exemple crer un tat des revenus mensuels bas sur une requte paramtre. Lorsque vous imprimez ltat, Microsoft Access ache une bote de dialogue qui vous demande le mois sur lequel ltat doit porter. Vous entrez un mois et Microsoft Access imprime ltat qui sy rapporte. Exemple : Laissons lutilisateur choisir le genre des clients dont il veut acher les noms et prnoms dans la requte prcdente. En se placant en mode cration de requte : 1. Commencez par eacer tous les critres qui ne sont pas indispensable notamment le "1" dans le champ code 2. Dans le menu requte, selectionnez paramtres 3. entrez le nom du champ et le type de donnes saisir ; repeter cette opration sur les lignes suivantes si vous voulez dnir plusieurs critres 4. enregistrez votre requte et excuter la. Requtes Analyse croise Les requtes Analyse croise vous permettent de calculer et de restructurer des donnes an den faciliter lanalyse. Ces requtes calculent une somme, une moyenne, un nombre ou tout autre type de total pour des donnes regroupes en deux types dinformations, dont lun est situ en bas gauche de la feuille de donnes et lautre, en haut. Requtes Action Une requte Action est une requte capable de modier ou dplacer un grand nombre denregistrements en une seule opration. Il existe quatre types de requtes Action : Requte Suppression Supprime un groupe denregistrements dune ou plusieurs tables. Par exemple, vous pouvez utiliser une requte Suppression pour eacer des produits qui ne sont plus fabriqus ou qui ne sont plus commands. Lorsque vous utilisez ce type de requte, vous supprimez toujours des enregistrements entiers, et non uniquement certains champs dans ces enregistrements.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

17

Requte Mise jour Apporte des changements globaux un groupe denregistrements dans une ou plusieurs tables. Vous pouvez par exemple augmenter vos prix de 10% sur tous vos produits laitiers, ou augmenter de 5% les salaires des personnes appartenant une certaine catgorie professionnelle. Ce type de requte vous permet de modier les donnes contenues dans une table existante. Requtes Ajout Ajoute un groupe denregistrements dune ou de plusieurs tables la n dune ou de plusieurs tables. Supposez, par exemple, que votre clientle slargisse et que vous ayez une base de donnes qui contient une table dinformations sur ces nouveaux clients. Pour viter de taper toutes ces informations, vous aimeriez les ajouter votre tables Clients. Requtes Cration de table Cre une table en reprenant totalement ou partiellement les donnes dautres tables. Ce type de requte est utile pour crer des tables exporter vers dautres bases de donnes Microsoft Access (base de donnes Microsoft Access : collection de donnes et d objets (tels que des tables, des requtes ou des formulaires) qui est associe une rubrique ou un objectif donn. Le moteur de base de donnes Microsoft Jet gre les donnes.)ou une table dhistorique contenant danciens enregistrements. Requtes SQL Requte que vous crez laide dune instruction SQL (instruction/chane SQL : expression qui dnit une commande SQL, telles que SELECT, UPDATE ou DELETE, et qui inclut des clauses telles que WHERE et ORDER BY. Les instructions/chanes SQL sont gnralement utilises dans des requtes et dans des fonctions de regroupement.). Le langage SQL (Structured Query Language) permet dinterroger, de mettre jour et de grer des bases de donnes relationnelles telles que Microsoft Access.

2.2.8

Manipulation des formulaires

Un formulaire a deux rles : Amliorer la convivialit de la prsentation de certaines informations et contrler lajout ou la manipulation des informations prsentes dans les tables et les requtes. En mode cration, les principales sections dun questionnaire sont :len-tte de formulaire, len-tte de page, le dtail, le pied de page et le pied de formulaire. En mode feuille de donnes, seuls les lments qui gurent dans la section dtail sont visibles. Les lments dun formulaire se nomme des contrles. les dirents contrles dun formulaire sont : les tiquettes : Pour lachage des informations statiques (nom des variables par exemple) les zone de texte les case cocher (la variable prendra la valeur -1 si la case est coche et 0 sinon) les groupe doptions (vous devez denir la valeur prise par chaque option dans la liste des proprits)
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

18

les barres de dlement les boutons de commande, qui permettent aux utilisateurs de contrler le programme. La cration de contrle se fait de deux faons : 1. Sil le formulaire est construit sur une table ou une requte, la liste des champ peut tre ach (menu achage). Il sut ensuite de faire glisser un champ vers lendroit voulu dans le questionnaire ; 2. Il est toujours possible dacher la bote outils (menu achage). Pour crer un contrle, choisissez dans la bote outil sur le type de controle voulu, relachez la souris et dessinez un cadre dans la formulaire matrialisant la position du contrle et relacher de nouveau la souris. Si le type de contrle est un des trois derniers de la liste ci-avant, un assistant vous invitera paramter le contrle. NB : Faites attentions aux valeurs que peuvent retourner certains contrles. La liste des proprits dun contrle sache via le menu achage. Nous allons crer un formulaire qui tablit la facture dun client. En termes de manipulation de donnes, nous autoriserons le forumlaire ajouter uniquement les donnes car la caissire na pas le droit de consulter/supprimer les informations dans la base. 1. A laide de lassistant, crons un formulaire instantann pour acher les produits, les quantits achts, les prix, la valeur (prix quantit) et le montant total de la facture en suivant les tapes suivantes. Pour cela (a) Commencer par construire la requte qui calcule la valeur comme prix quantit comme si aprs(voir gure 2.13). Vous pouvez ouvrir la fentre Fig. 2.13 Requte de calcaul de la valeur

SQL dune nouvelle requte et coller la commande ci-aprs SELECT ACHETE.[Code produit], ACHETE.numro, ACHETE.date, ACHETE.prix, ACHETE.Quantit, [prix]*[quantit] AS Valeur FROM ACHETE;
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access (b) enregistrez la requte sous le nom Achat et fermez la. (c) Slectionnez la requte Achat dans le volet de navigation.

19

(d) Transformez la requte en formulaire en cliquant sur longlet Crer, pointez sur le groupe Formulaire et cliquez sur la commande ormulaire. (e) un formulaire sache en mode feuille de donnes. Ouvrez ce formulaire en mode cration (onglet Accueil puis groupe de commande Achage et commande Mode cration dans la galerie) (f) Dans longlet contextuel Outil de cration de formulaire cliquez sur longlet Cration et pointez sur le groupe Outils an de cliquez sur la commande feuille des proprits pour acher la bote de dialogue des proprits du formulaires et de ses contrles. Dnissez sur NON la proprit arret sur tabulation pour le champ numro ; Achez ensuite en mode feuille de donnes et reduisez au minimum la colonne du numro ; (g) Achez de nouveau le formulaire en mode cration. A partir du groupe Contrles, crez un controle zone de texte dans le pied de formulaire. Vous allez y calculer le total de la facture : Acher les proprits du contrle ; dans longlet donnes, tapez =Somme([Valeur])2 dans source du contrle ; dans longlet autre, nommez le contrle SommeValeur (h) enregistrez le formulaire sous le nom Achat et fermez le. 2. Choisissez la table CLIENTS dans le volet navigation 3. Cliquez sur longlet Crer et pointez sur le groupe Formulaire an de cliquer sur Formulaire et transformer la table en formulaire ; Vous constatez que MS Oce 2007 ajoute automatiquement la table ACHETE du fait de la relation entre la table CLIENT et la table ACHETE. La table ACHETE est place ici comme un sous-formulaire. 4. Cette solution nest pas convenable car le champ valeur (quantitprix) nest pas disponible dans la table. Achez le formulaire en mode cration et acher la bote de dialogue des proprits 5. Placez-vous sur le contrle sous-formulaire qui a t cre ; dans longlet Donnes de la fentre des proprits, dnissez lobjet source sur Requte.Achat et visualisez le rsultat en mode formulaire. Enregistrez le formulaire sous le nom Facture. 6. Cette solution nest pas satisfaisante car vous ne disposez pas du total des achats pour tablir la facture. Vous allez utiliser votre sous-formulaire Achat pour le recuprer en procdant ainsi Achez votre formulaire Facture en mode cration Supprimez le sous-formulaire prsent dans Facture Slectionnez le formulaire achat et faites glisser dans le formulaire Facture Assurer que dans la feuille des proprits et dans longlet Donnes, champ pre et champ ls sont dnis sur numro. Cest ici que la liaison entre le sous-formulaire et le formulaire principal seectue.
Jai observ que parfois cette fonction ne marche ; je conseille lutilisation de la fonction de regroupement suivante =SomDom("Valeur" ;"achat" ;"numro=" & [numro])
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access Pour amliorer, la prsentation

20

7. Faites glisser tous les contrle (except le sous-formulaire) dans lentte de formulaire ; 8. Cliquez sur le contrle Numro, Dans longlet format de la feuille des proprit, dnissez sur NON la proprit visible ; 9. Crez un contrle groupe doption pour le sexe partir de la bote outils. Dans les tapes de lassistant : Entrez homme et femme comme tiquettes et lier le contrle au champ "code" ; 10. Enregistrer votre formulaire et visualisez le rsultat ; Vous allez maintenant recuperer le champ total de la facture 11. Achez le formulaire en mode cration 12. Dans le groupe de commande Contrle, cliquez sur la commande zone de texte et crez une zone de texte dans le pied de formulaire. Vous allez y reporter le total de la facture tel quil est calculer par le sous formulaire ACHAT : Achez la fentre des proprits du contrle : dans longlet donnes, taper =[Achat].[Formulaire] ![Valeur] dans source du contrle ; dans longlet autre, nommez le contrle Total 13. Crer un bouton pour amliorer la convivialit et permettre la caissire de passer un nouvel enregistrement. Dans le groupe de commande Contrle, cliquez sur loutil bouton et venez matrialiser lendroit o vous voulez placer le bouton. Un assistant vous invite fournir certaines informations : Slectionnez oprations sur enregistrement puis nouvel enregistrement. Au nal, votre formulaire en mode cration doit ressembler ceci (voir gure 2.14) : NB : Si vous voulez que votre formulaire soit vritablement destin uniquement la saisie, achez la feuille des proprits du formulaire en mode cration et allez longlet Donnes. Dnissez la proprit Entre de donnes sur oui et enregistrez le formulaire. Vous pouvez commencer la saisie de quelques ventes

2.2.9

Manipulation des tats

Les tats permettent de prsenter les informations. On ne peut pas saisir de nouvelles informations dans un tat. Les tats se prsentent soit en mode cration soit en aperu avant impression. Nous allons crer un tat qui imprime toutes les factures. Ensuite partir du formulaire FACTURE nous allons imprimer la facture courante. 1. On constitue dabord une requte qui slectionne toutes les informations quon veut prsenter : Les noms et prnoms du client, son sexe, les produits quil a achts et leur valeur. Pour cela ouvrons une requte en mode cration et ajoutons les tables : PRODUITS, CLIENT,ACHETE et SEXE ; Etablissons les direntes relations si ncessaires. Slectionnez les champ : Libell de la table sexe, libell de la table PRODUIT, nom et prnom de la table CLIENT que vous concatener en NomsPrnoms=Nom&" "&Prnom, quantit et prix

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

21

Fig. 2.14 Formulaire pour la facturation en mode cration

de la table ACHETE ; Calculez le champ Sommevaleur=prix quantit. Ainsi tous les libells sont mis en avant lors de la prsentation alors que les codes ont jusque l taietnt abondamment utiliss notamment dans les liaisons pour la gestion de la base. Enregistrez la requte sous le nom SYNTHESE ; elle doit se prsenter ainsi(voir gure 2.15). 2. Dans longlet Crer, Pointez sur le groupe de commande Etat et cliquez sur la commande Cration tat pour crer un nouvel tat 3. Une fentre souvre avec un tat vide comprenant les sections : en-tte de page, dtail et pied de page. Achons en-tte de formulaire et pied de formaulaire partir du menu Achage 4. Achez la feuille des proprits et dans longlet donnes, dnissez la source de donnes sur la requte SYNTHESE 5. Utilisez les tiquettes pour embellir notre facture : raison sociale de lentreprise, localisation, etc. 6. Avant de dposer les champs dans votre rapport ou tat, vous allez dnir un niveau de regroupement. Par exemple, vous voulez que regrouper les dpenses des hommes dune part et celles des femmes dautre part.
Access & VBA pour Access par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

22

Fig. 2.15 Requte SYNTHESE

7. Pour cel, dans longlet contextuel Outils de cration dtat, cliquez sur longlet Crer et pointez sur le groupe de commande Regroupement et totaux an de cliquez sur la commande Regrouper et Trier ; Choisser le champ libell sexe dans la zone de liste qui sache en dessous et dnissez en-tte de groupe (nous y acherons le sexe) ; choisissez le nom et prnom comme deuxime niveau de regroupement en dssant : 8. pointez sur le groupe de commande Outils et cliquez sur Ajouter des champs existants an de dacher la liste des champ ; faites glisser les champs dans ltat de la manire suivante : Le libell du sexe dans len-tte de groupe sexe et le champ NomPrnom dans lentte de groupe NomPrnom. faites glisser tous les autres champs dans la zone de dtail. Coupez leur tiquette et collez dans len-tte de groupe du NomPrnom ; 9. crez des controles zones de texte dans chacun des pieds de groupe que vous avez prcdemment dnis en leur aectant comme source =somme([SommeValeur]). 10. Insrez un numro de page partir du menu insertion. Votre rapport pourrait se prsenter ainsi (voir gure 2.16) : Enregistrez lEtat sous le nom SYNTHESE et Achez le en mode aperu avant impression pour voir les informations contenues dans la base. Cet tat peut tre imprimer pour diposer de la situtation individuel des clients et des genres. 11. Pour imprimer lenregistrement courant du formulaire FACTURE, procdez comme suit : (a) Ouvrez la requte SYNTHESE et ajoutez y le champ numro. Enregistrez et fermez (b) ouvrez votre formule FACTURE en mode cration et ajoutez-y un bouton de commande. Cliquez sur annuluer pour fermer lassistant. (c) Donnez un nom votre bouton dans longlet autres de la fentre des proprits (d) dans longlet Evnement de la fentre des proprits, aller la proprit sur click et selectionnez [event procedure] (e) cliquez sur le gnrateur qui se trouve droite de cette proprit et tapez les informations ci-aprs

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

23

Fig. 2.16 Rapport des achats

Dim strNomDoc as String Dim Filtre as string strNomDoc = "SYNTHESE" nom de lta Filtre = "[numro] = " & Me.numro DoCmd.OpenReport strNomDoc, acViewNormal, , Filtre (f) fermez la fentre de Visual Basic Application et enregistrer votre formulaire. Vous pouvez commencer vos opration de vente et imprimer la facture si le client le demande.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

24

2.2.10

Manipulation des pages daccs aux donnes

Ce sont des pages Web, publie partir d Access, qui comporte une connexion une base de donnes. Une page d accs aux donnes permet d acher, de modier et de manipuler les donnes stockes dans la base de donnes, et d ajouter des donnes cette dernire. Une page peut galement inclure des donnes provenant d autres sources, comme Excel.)

2.3

Macro Access

Pour autonomiser lachage des formulaires et des tats, les macro sont dun usage facile. Une macro excute une action spcique (ouvrir un formulaire, excuter une requte, fermer, acher un message, demander de saisir une donne, etc.). Il est possible deectuer un test avant dexcuter une action dans une macro (exemple : vrier si lutilisateur a les droits daccs requis) Vous pouvez utiliser les macro lorsque des vnements sont dclenches (ouverture ou fermeture dun formulaire par exemple, click sur un control, etc.) ou activation dun menu. Dans lexemple qui suit, vous allez crer une macro qui ouvre le formulaire FACTURE pour lajout de donnes uniquement, une macro qui ouvre le formulaire FACTURE pour la consultation des donnes uniquement. Pour crer une macro, dans longlet Crer pointez sur le groupe de commandes Autre et cliquez sur la commande Macro pour acher la galerie, slectionnez macro. Dans la fentre qui souvre, vous pouvez directement renseigner vos actions (Exemple OuvrirForulaire). Ds quune action est choisie, une fentre des arguments de laction sache en bas gauche. Entrez par exemple le nom du formulaire. Enregistrez ensuite votre macro. Pour votre exemple, vous allez acher la colonne nom de macro et mettre les deux macro dans une seule. Pour cela, eectuez les actions suivantes : 1. pour acher la colonne "Nom de macro" : dans la fentre de macro, allez dans le menu AFFICHAGE et cliquez sur nom de macro ; 2. Dans le premier champ nom de macro, tapez "Saisir" 3. Dans action, achez la liste droulante et slectionnez "OuvrirFormulaire" 4. Dans le volet des proprits, dnissez nom du formulaire sur "Facture" et mode de donnes sur "Ajout" 5. Revenez dans la colonne Action pour ajouter laction ArrtMacro (cette action nest pas ncessaire, elle amliore simplement la clart de la macro) 6. Dnissez les actions pour la seconde macro ainsi (a) Allez dans la troisime ligne de la colonne nom de macro, tapez "Consulter" (b) Dans action, achez la liste droulante et slectionnez "OuvrirFormulaire"

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Vue globale de MS Access

25

(c) Dans le volet des proprits, dnissez nom du formulaire sur "Facture" et mode de donnes sur "Lecture Seule" (d) Revenez dans la colonne Action pour ajouter laction ArrtMacro (cette action nest pas ncessaire, elle amliore simplement la clart de la macro) 7. Enregistrer votre macro sous le nom MFacture. Vous devez avoir une fentre comme celle de la gure ??. Fig. 2.17 Macro pour lachage du formulaire Facture

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Chapitre Trois

Manipuler les objects partir de VBA

Visual Basic Application(VBA) sutilise dans toutes les applications qui ore une interface Visual Basic Editor (VBE). VBE est un environnement dans lequel vous pouvez modier des macros que vous avez enregistres et crire de nouvelles macros et de nouveaux programmes Visual Basic pour Applications. Pour ouvrir ouvrir la fentre VBE, dans longlet Crer pointez sur le groupe de commandes Autre et cliquez sur la commande Macro pour acher la galerie, slectionnez module. Microsoft Visual Basic est la version volue de Basic, permettant une programmation visuelle. Visual Basic a t dvelopp par Microsoft an de crer des applications pour Windows.) pour crire des procdures qui crent, suppriment et modient dynamiquement des donnes et des objets. Une procdure est une squence de dclarations et d instructions dun module qui sont excutes en bloc. Les procdures de Visual Basic incluent les deux procdures Sub et Function.

3.1

Types de procdure

Vous excutez du code Microsoft Visual Basic dans Microsoft Access en excutant une procdure Sub (Sub , procdure : procdure qui excute une opration. Contrairement une procdure Function, une procdure Sub ne renvoie pas de valeur. Vous commencez une procdure Sub par une instruction Sub et vous la terminez par une instruction End Sub.) ou Function (procdure Function : procdure qui renvoie une valeur et qui peut tre utilise dans une expression. Vous dclarez une fonction l aide de l instruction Function et vous la terminez l aide de l instruction End Function.). Une procdure contient une srie dinstructions et de mthodes qui accomplissent une opration ou calculent une valeur. Les procdures sont stockes dans des units appeles modules. Toutefois, vous nexcutez pas un module ; vous appelez plutt des procdures partir dexpressions, dautres procdures ou de macros.Les procdures vnementielles dans les modules de formulaire ou dtat sexcutent galement en rponse des actions de lutilisateur.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Manipuler les objects partir de VBA

27

Pour excuter du code Microsoft Visual Basic dans Microsoft Access, eectuez lune des oprations suivantes : Crez une procdure vnementielle. Lorsque lutilisateur eectue une action qui dclenche cet vnement, la procdure vnementielle sexcute. Vous pouvez, par exemple, ajouter du code la procdure vnementielle Click dun bouton de commande qui ouvre un formulaire lorsquun utilisateur clique sur le bouton. Dans la fentre des proprits, Vous pouvez aussi dnir les proprits de longlet Evnement sur Event Procedure pour indiquer quun code VBA sera excut si lvnement se produit. Utilisez une fonction dans une expression ou dans la fentre Excution de Microsoft Visual Basic Editor. Vous pouvez, par exemple, utiliser une fonction dans une expression qui dnit un champ calcul dans un formulaire, un tat ou une requte. Vous pouvez utiliser des expressions comme paramtres de proprit dans des requtes et des ltres, dans des macros et des actions, dans des instructions et des mthodes Visual Basic ou dans des instructions SQL. Appelez une procdure Sub dans une autre procdure ou dans la fentre Excution de Visual Basic Editor. Si vous excutez frquemment du code, vous pouvez linsrer dans une procdure Sub. Plutt que de rpter le code Visual Basic qui excute lopration dans chaque procdure, vous ne lcrivez quune seule fois dans la procdure commune, puis appelez cette dernire chaque fois que vous voulez excuter lopration. Excutez une procdure qui nutilise pas dargument. Dans la fentre Code de Visual Basic Editor, placez le curseur dans la procdure que vous souhaitez excuter, puis cliquez sur Exccuter Sub/UserForm dans le menu Excution. Excutez laction ExcuterCode dans une macro. Vous pouvez utiliser laction ExcuterCode pour excuter une fonction Visual Basic intgre ou une fonction que vous avez cre. Pour excuter une procdure Sub ou une procdure vnementielle, crez une fonction qui appelle la procdure Sub ou la procdure vnementielle, puis utilisez laction ExcuterCode pour excuter la fonction.

3.2

Structure de base des programmes

Toute procdure excutable par MS Access commence par Sub ou Function. Il est possible dans une prcdure de dclarer le type de variable utiliser, de procder des calculs, deectuer des test, de manipuler les object Access (formulaire, etat, requte, table, etc.).

3.2.1

Dclaration et type de donnes

Comme dans VBA pour Excel, linstruction de dclaration est Dim. Les types de donnes que vous pouvez dnir dans MS Access sont : String, Integer, etc. Dautres objet que vous pouvez manipuler dans MS ACCESS sont :

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Manipuler les objects partir de VBA

28

Forms pour faire rfrence un formulaire Exemple : Forms("nomformulaire") ou Forms ![nom formulaire] Reports pour faire rfrence un tat Exemple : Reports("nomtat") ou Reports ![nom tat] Lorsque votre procdure est incluse dans un tat ou un formulaire, utisez Me pour faire rfrence ltat ou au formulaire Controls pour faire rfrence un contrle contenu dans un formulaire ou un tat : Exemple : Me.Controls("NewData") ou Forms("nom formulaire").NomControl Forms!f_industrie.F_Industrie_Produit_Export.Form!INDB01 : indique le contlr INDBOA du sous formulaire F_Industrie dans le formulaire f_industrie Forms !Employees !LastName : contrle LastName du formulaire Employees Les objets DAO (Data Access Objects, objets daccs aux donnes) comme Database et Recorset, Dim oDb As DAO.Database Dim oRst As DAO.Recordset Dim Source As String Set oDb = CurrentDb Source = "SELECT * FROM Table_Base Set oRst = oDb.OpenRecordset(Source) DoCmd : pour excuter des actions Microsoft Access partir de Visual Basic. Une action eectue des tches telles que la fermeture de fentres, louverture de formulaires et la dnition de la valeur des contrles Exemple : DoCmd.OpenForm "Employees", acNormal : ouvre le formule Employees DoCmd.GoToRecord , , acNewRec : pour crer un nouvel enregistrement

3.2.2

Aectation et calcul

Comme dans VBA pour Excel, les instructions daectation sont = et Set. Les calculs seectuent laides des fonctions traditionnelles. & est trs utilis dans la concatenation lors de lcriture des codes.

3.2.3

Boucles et test

Les boucles et tests sont identiques la section y relative dans le cours Excel.

3.3

Exemple : Ecriture dun programme visual basic

Nous allons crire un petit code qui demande un utilisateur de taper un nom ; ensuite le code renvoie un message indiquant si ce nom est un client de la base ou pas.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Manipuler les objects partir de VBA Lancez VBE et ouvrez un module Tapez le code suivant

29

Sub TestNom() Dim oDb As DAO.Database Dim oRst As DAO.Recordset Dim Source As String, NomClient As String instancie la base de donnes NomClient = InputBox("Tapez le nom dun client") Set oDb = CurrentDb SQL pour slectionner les enregistrement de la table client dont le nom correspond NomClient Source = "SELECT Nom FROM CLIENT " & _ "Where Nom=" & Chr(34) & NomClient & Chr(34) Ouvre le recordset Set oRst = oDb.OpenRecordset(Source) If Not oRst.EOF Then MsgBox "Ce client est dans la base" Else MsgBox "Ce client nest pas dans la base" End If Set oDb = Nothing Set oRst = Nothing End Sub

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008

Bibliographie

[1] Microsoft Press 2007. Nouveaut Access 2007. Microsoft Press 2007 - Access 2007 - Cours type. [2] Le Compagon.info. Apprentissage en ligne. [3] Developpez.com. Site des dveloppeurs. [4] INSSET. Cours Access. INSSET.U-PICARDIE.FR DEUG TI II IUP 1, 2001. [5] E. MARNAY. Formation rapide MS Access. Projet informatique de DESS M.A.S.I. (promotion 96/97), 1997. [6] Microsoft. Aide MS Excel. Microsoft. [7] Webprofesseur. Cours Access. http ://www.webprofesseur.com.

Access & VBA pour Access

par Achille PEGOUE c UCAO-UUT, Lom 2008