7/25/2019 Crer Module Access
1/18
G. Gesquire, [email protected]
A la dcouverte d access
Ecrire vos propres fonctions
7/25/2019 Crer Module Access
2/18
G. Gesquire
Objectifs
Savoir crer un module standard
Savoir crire des procdures gnrales Sub et Function
Savoir utiliser le passage de paramtres
Savoir utiliser des procdures gnrales
Vous utiliserez le fichier TP9.mdb
7/25/2019 Crer Module Access
3/18
G. Gesquire
1- Comprendre les modules et les procdures
Pour linstant, nous avons crit tout notre code dans les
procdures vnementielles associes des objets.
Les procdures gnrales (que nous allons crire) nesexcutent pas automatiquement en rponse aux
vnements.
Il y a deux types de procdures gnrales : Sub et
Function alors que toutes les procdures
vnementielles sont de type Sub.
7/25/2019 Crer Module Access
4/18
G. Gesquire
2- Pourquoi crer des procdures gnrales
Utiliser des procdures gnrales pour :
Excuter des oprations complexes qui ne rentrent pas dans
une expression rutiliser du code pour viter de rpter une tche
Diviser des tches de programmation en units plus facilement
grables
7/25/2019 Crer Module Access
5/18
G. Gesquire
3- Modules standard et modules de
formulaires Il est possible de mettre des procdures gnrales dans
un module de formulaire (ou dtat)
Elles sont alors accessibles toutes les procduresvnementielles du formulaire (ou de ltat)
Il est possible de mettre des procdures gnrales dans
un module standard Elles sont alors accessibles toute lapplication.
7/25/2019 Crer Module Access
6/18
G. Gesquire
4- Crer des procdures gnrales dans un
module standard Une application peut contenir plusieurs modules et
chacun deux peut contenir plusieurs procdures
Cela permet de crer des modules spcialissrutilisables dans de multiples applications (il suffit
dimporter le module)
7/25/2019 Crer Module Access
7/18
G. Gesquire
5- Crer un module standard
Fentre base de donnes / Onglet Modules / Bouton
Nouveau
La fentre Module1 : Module saffiche
7/25/2019 Crer Module Access
8/18
G. Gesquire
5- Crer un module standard
Option Compare Database ne peut tre utilise quau
sein de Microsoft Access. Elle gnre des comparaisons
de chanes fondes sur lordre de tri dtermin par lIDdes paramtres nationaux de la base de donnes dans
laquelle a lieu la comparaison
Avec linstruction Option Explicit, toutes les variablesdoivent tre dclares explicitement laide dune
instruction Dim, Private, Public, ReDim, Static
Si vous tentez dutiliser une variable non dclare, une
erreur se produit lors de la compilation
7/25/2019 Crer Module Access
9/18
G. Gesquire
5- Crer un module standard
Remarque :
Indiquer toujours loption Explicit
Menu Outil / Option / Dans longlet Editeur / activer
Dclaration des variables obligatoire
A louverture, un module est vide ou presque.
7/25/2019 Crer Module Access
10/18
G. Gesquire
6- Dclarer des valeurs constantes
Dclaration :
Const conNomApp = Gestion des clients
Cette instruction rend accessible la constanteconNomApp tout votre module.
Si vous souhaitez quelle soit connue de votre
application entire, il faut ajouter le mot Public devant lemot Const
7/25/2019 Crer Module Access
11/18
G. Gesquire
7- Crer une procdure Sub
Si pour les procdures vnementielles lies aux objetsde votre applications les noms et les paramtres voussont imposs, l dans votre module, cest vous qui devez
dcider du nom et des paramtres ventuellementncessaires
Crer la procdure AfficheMessage qui prendra encharge laffichage des messages que nous adresseronsaux utilisateurs
Cliquez sur le bouton Insrer une procdure dans le menu Insrer
de la barre doutils de la fentre VB Nom AfficheMessage / type procdure (Sub)
Laisser tendue sur Publique
Appuyer sur Ok
7/25/2019 Crer Module Access
12/18
G. Gesquire
7- Crer une procdure Sub
Taper linstruction suivante :
MsgBox Voici mon message , vbExclamation, conNomApp
Tester la procdure en utilisant la fentre de dbogage Cliquer sur le bouton de lancement du code (ou slectionner loption
Excuter du menu Excution
Choisir la procdure AfficheMessage
Votre procdure sexcute
7/25/2019 Crer Module Access
13/18
G. Gesquire
8- Ajouter des arguments une procdure
Pour passer le message en paramtres
Entrez strMessage As String dans les parenthses de linstruction Sub
Modifier la ligne MsgBox en remplaant la chane voici mon message
par le nom de la variable qui contiendra le texte afficher. Cette variable eststrMessage
Tester avec la fentre dbogage / taper le nom de la procdure suivi du
message que vous dsirez afficher
Exemple : AfficheMessage Je peux dire ce que je veux
7/25/2019 Crer Module Access
14/18
G. Gesquire
9- Crer une fonction
Une fonction permet de retourner une valeur
Dans le code, il doit toujours exister une ligne ayant la
syntaxe :NomDeLaFonction = ValeurARetourner
Si nous voulons crer une fonction qui pose des
questions : Fermer la fentre de dbogage
Insrer une procdure
Nom : Confirme / Type function / Bouton Ok Taper le code du transparent suivant
7/25/2019 Crer Module Access
15/18
G. Gesquire
9- Crer une fonction
7/25/2019 Crer Module Access
16/18
G. Gesquire
9- Crer une fonction
Tester dans la fentre de dbogage
Taper linstruction suivante :
?Confirme( Est-ce Ok ?)
La bote de dialogue saffiche / Cliquer sur Ok / la valeur vrai saffiche
dans la fentre dbogage
Si vous recommencez en choisissant le bouton Annuler, la fonction
retourne Faux et affiche cette valeur dans la fentre de dbogage
10 Utili d d l d
7/25/2019 Crer Module Access
17/18
G. Gesquire
10- Utiliser des procdures gnrales dans un
formulaire Les procdures tant dclares en public, elles sont
consultables par toute lapplication
Utilisation de la fonction Confirme Onglet Formulaire / Slectionner FClients / Code
liste de gauche du module : slectionner lobjet Form / Proc :
BeforeUpdate Modifier le code comme sur le transparent suivant
10 Utili d d l d
7/25/2019 Crer Module Access
18/18
G. Gesquire
10- Utiliser des procdures gnrales dans un
formulaire