OVH Cloud OVH Cloud

Appel d'un formulaire comme un sous-programme

1 réponse
Avatar
Maurice KRAIT
Bonjour,

Ce que je veux dire par appel comme un sous-programme est que je veux
pouvoir ouvrir, depuis une dizaine de formulaires différents mais très
semblables, disons F1, F2, ... FX, un même formulaire SP et à l'issue
de l'utilisation de ce formulaire SP, revenir dans le formulaire FX qui
l'a appelé. Ceci pour éviter d'avoir à créer autant de formulaires
SP¨différents, d'autant que ce formulaire SP est basé sur une requête,
comprend un sous-formulaire, etc, qu'il faudrait multiplier.
Dans le formulaire SP ( le "sous-programme"), après traitement, on
peut, suivant les cas:
- soit revenir au formulaire FX appelant : là c'est simple, il suffit de
fermer SP pour se retrouver dans le FX appelant.
- soit , avant de fermer SP, modifier des élements du formulaire FX
appelant :
- changer la propriété DataEntry du formulaire FX
- changer la propriété Visible d'une zone de
texte ZONE du formulaire FX , sachant que chaque formulaire FX
différent contient une zone de texte de nom ZONE .

Il faut donc qu'à l'appel de SP par chaque FX, on puisse transmettre à
SP le nom du formulaire FX appelant afin de pouvoir accéder à
Forms![NomFX].DataEntry et à Forms![NomFX]![ZONE].Visible.

J'ai fait des tentatives en passant comme paramètre le symbole Me,
mais pour l'instant, je n'ai pas réussi à le faire fonctionner. Ce
serait surement la solution la plus élégante car le code serait alors le
même dans tous les FX.
Je suis en train d'essayer la solution suivante : à l'appel de SP
depuis FX, stocker le nom de FX dans une zone de texte de SP pour
pouvoir y accéder depuis SP; je n'ai pas encore pu faire le test pour
des raisons annexes.
Est-ce quelqu'un aurait une solution à me suggérer pour passer le nom du
formulaire ?

Note : j'utilise Acees 97

Merci d'avance pour toute solution

Maurice

1 réponse

Avatar
3stone
Allo... Maurice ;-)

"Maurice KRAIT"
| Est-ce quelqu'un aurait une solution à me suggérer pour passer le nom du
| formulaire ?


Dans le OpenArgs tu mets Me.Name

DoCmd.OpenForm stDocName, , , stLinkCriteria, , , Me.Name


et dans le formulaire SP tu lis cet valeur...

Dim strFormName As String
If Not IsNull(Me.OpenArgs) then
strFormName = Me.OpenArgs
End If


ensuite tes commandes...
Forms(strFormName).turlututu ;-)


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------