Appel de procédure évenementielle

4 réponses
Avatar
cmoi
Bonjour,

J'ai le code suivant:

Private Sub Fonction_AfterUpdate()
Majuscule
End Sub

Private Sub Description_AfterUpdate()
Majuscule
End Sub

Function Majuscule()
'Mise en majuscule du premier caractère d'un champ
Me.ActiveControl = UCase(Left$(Me.ActiveControl, 1)) &
Right$(Me.ActiveControl, Len(Me.ActiveControl) - 1)
End Function

Pour éviter d'avoir à répéter Private Sub xxxx_AfterUpdate() pour chaque
contrôle, je voudrais appeler directement la fonction Majuscule dans la
propriété Evènement. Est-ce possible?

Merci pour votre aide.

4 réponses

Avatar
3stone
Salut,

cmoi wrote:
Bonjour,

J'ai le code suivant:

Private Sub Fonction_AfterUpdate()
Majuscule
End Sub

Private Sub Description_AfterUpdate()
Majuscule
End Sub

Function Majuscule()
'Mise en majuscule du premier caractère d'un champ
Me.ActiveControl = UCase(Left$(Me.ActiveControl, 1)) &
Right$(Me.ActiveControl, Len(Me.ActiveControl) - 1)
End Function

Pour éviter d'avoir à répéter Private Sub xxxx_AfterUpdate() pour
chaque contrôle, je voudrais appeler directement la fonction
Majuscule dans la propriété Evènement. Est-ce possible?




Et, à ton avis, qu'est-ce d'autre :

Private Sub Fonction_AfterUpdate()

que la Sub de l'événement AfterUpdate() de la zone de texte Fonction ??

Si tu souhaites le faire "en une fois", regarde l'événement
Après mise à jour (AfterUpdate) du formulaire...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
cmoi
Justement, je voudrais écrire directement le nom de la fonction Majuscule()
dans la propriété évènement 'après MAJ de chaque champ du formulaire, putôt
que d'écrire 15 fonctions xxx_AfterUpdate qui appellent toutes la fonction
Majuscule(). Malheureusement ça ne marche pas ou alors c'est que je fais une
erreur quelque part. Si j'écris directement Majuscule() dans la propriété,
j'obtiens un message "Microsoft Access ne peut pas trouver la macro
'Majuscule()'" Cette fonction dans le code et non pas dans les macros.

"3stone" a écrit dans le message de news:
i0vjnn$dv6$
Salut,

cmoi wrote:
Bonjour,

J'ai le code suivant:

Private Sub Fonction_AfterUpdate()
Majuscule
End Sub

Private Sub Description_AfterUpdate()
Majuscule
End Sub

Function Majuscule()
'Mise en majuscule du premier caractère d'un champ
Me.ActiveControl = UCase(Left$(Me.ActiveControl, 1)) &
Right$(Me.ActiveControl, Len(Me.ActiveControl) - 1)
End Function

Pour éviter d'avoir à répéter Private Sub xxxx_AfterUpdate() pour
chaque contrôle, je voudrais appeler directement la fonction
Majuscule dans la propriété Evènement. Est-ce possible?




Et, à ton avis, qu'est-ce d'autre :

Private Sub Fonction_AfterUpdate()

que la Sub de l'événement AfterUpdate() de la zone de texte Fonction ??

Si tu souhaites le faire "en une fois", regarde l'événement
Après mise à jour (AfterUpdate) du formulaire...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)

Avatar
3stone
re,

cmoi wrote:
Justement, je voudrais écrire directement le nom de la fonction
Majuscule() dans la propriété évènement 'après MAJ de chaque champ du
formulaire, putôt que d'écrire 15 fonctions xxx_AfterUpdate qui
appellent toutes la fonction Majuscule(). Malheureusement ça ne
marche pas ou alors c'est que je fais une erreur quelque part. Si
j'écris directement Majuscule() dans la propriété, j'obtiens un
message "Microsoft Access ne peut pas trouver la macro 'Majuscule()'"
Cette fonction dans le code et non pas dans les macros.



Là ou tu veux le placer, on ne peut que :
- soit appeler une macro (macro commande)
- soit appeler une fonction

dans ton cas, tu pourrais appeler ta fonction...

Le mieux, c'est d'utiliser une fonction plus complète pour
faire ce que tu recherches :
http://homepage.bluewin.ch/wstucki//Formulaires.htm#Capitaliser

que tu peux d'ailleurs combiner avec cette méthode:
http://homepage.bluewin.ch/wstucki//Formulaires.htm#Tag

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
cmoi
Merci pour toutes ces informations.

"3stone" a écrit dans le message de news:
i14i71$goi$
re,

cmoi wrote:
Justement, je voudrais écrire directement le nom de la fonction
Majuscule() dans la propriété évènement 'après MAJ de chaque champ du
formulaire, putôt que d'écrire 15 fonctions xxx_AfterUpdate qui
appellent toutes la fonction Majuscule(). Malheureusement ça ne
marche pas ou alors c'est que je fais une erreur quelque part. Si
j'écris directement Majuscule() dans la propriété, j'obtiens un
message "Microsoft Access ne peut pas trouver la macro 'Majuscule()'"
Cette fonction dans le code et non pas dans les macros.



Là ou tu veux le placer, on ne peut que :
- soit appeler une macro (macro commande)
- soit appeler une fonction

dans ton cas, tu pourrais appeler ta fonction...

Le mieux, c'est d'utiliser une fonction plus complète pour
faire ce que tu recherches :
http://homepage.bluewin.ch/wstucki//Formulaires.htm#Capitaliser

que tu peux d'ailleurs combiner avec cette méthode:
http://homepage.bluewin.ch/wstucki//Formulaires.htm#Tag

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)