OVH Cloud OVH Cloud

Gestion des évenements

2 réponses
Avatar
Freddy
Petit pb :
J'ai un formulaire qui comporte une centaine de controles independant.
une maj sur n'importe lequels doit me déclencher une porocédure unique qqs
le controle cliqué.
Sachant que je ne veut pas me taper cent foit [procedure evenementielle] et
rentrer cent proc appelant ma procedure, j'ai pensé passer par une macro qui
appelle ma proc.
Le pb, c'est que ma proc commune dois se trouver dans mon formulaire
(procedure locale) et est don invisible par ma macro

merci

2 réponses

Avatar
Raymond [mvp]
Bonjour.

Il faut passer par une fonction public dans un module standard. Le passage
par une fonction public d'un formulaire sur lui-même en access 2003 cause
parfois des résultats assez surprenants mais pas du tout comiques pour
l'utilisateur.
dans ton module public tu peux récupérer immédiatement le formulaire actif
ainsi que le contrôle actif et travailler comme si tu étais sur un
formulaire.
exemple:
dans la propriété after_update des contrôles (sauf images et étiquettes), tu
mets =fonctionCommune()
dans ta fonction dans un module
Public Function Commune()
Dim ctl As Control
Dim frm As Form
Dim ctlname As String
Dim frmname As String
Set ctl = Screen.ActiveControl
Set frm = Screen.ActiveForm
ctlname = Screen.ActiveControl.Name
frmname = Screen.ActiveForm.Name
MsgBox ctl.Name & ";" & frm.Name
' suite de la procédure
End Function

pour mettre =fonctionCommune() dans la propriété, tu peux procéder en bloc,
tu sélectionnes tous les contrôles .

c'est une idée .
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Freddy" a écrit dans le message de
news:409de718$0$434$
Petit pb :
J'ai un formulaire qui comporte une centaine de controles independant.
une maj sur n'importe lequels doit me déclencher une porocédure unique qqs
le controle cliqué.
Sachant que je ne veut pas me taper cent foit [procedure evenementielle]
et

rentrer cent proc appelant ma procedure, j'ai pensé passer par une macro
qui

appelle ma proc.
Le pb, c'est que ma proc commune dois se trouver dans mon formulaire
(procedure locale) et est don invisible par ma macro

merci




Avatar
Freddy
Merci, je vais essayer, ça à l'air sympa !

"Raymond [mvp]" a écrit dans le message de
news:%
Bonjour.

Il faut passer par une fonction public dans un module standard. Le passage
par une fonction public d'un formulaire sur lui-même en access 2003 cause
parfois des résultats assez surprenants mais pas du tout comiques pour
l'utilisateur.
dans ton module public tu peux récupérer immédiatement le formulaire actif
ainsi que le contrôle actif et travailler comme si tu étais sur un
formulaire.
exemple:
dans la propriété after_update des contrôles (sauf images et étiquettes),
tu

mets =fonctionCommune()
dans ta fonction dans un module
Public Function Commune()
Dim ctl As Control
Dim frm As Form
Dim ctlname As String
Dim frmname As String
Set ctl = Screen.ActiveControl
Set frm = Screen.ActiveForm
ctlname = Screen.ActiveControl.Name
frmname = Screen.ActiveForm.Name
MsgBox ctl.Name & ";" & frm.Name
' suite de la procédure
End Function

pour mettre =fonctionCommune() dans la propriété, tu peux procéder en
bloc,

tu sélectionnes tous les contrôles .

c'est une idée .
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Freddy" a écrit dans le message de
news:409de718$0$434$
Petit pb :
J'ai un formulaire qui comporte une centaine de controles independant.
une maj sur n'importe lequels doit me déclencher une porocédure unique
qqs


le controle cliqué.
Sachant que je ne veut pas me taper cent foit [procedure evenementielle]
et

rentrer cent proc appelant ma procedure, j'ai pensé passer par une macro
qui

appelle ma proc.
Le pb, c'est que ma proc commune dois se trouver dans mon formulaire
(procedure locale) et est don invisible par ma macro

merci