OVH Cloud OVH Cloud

Appel d'un formulaire comme un sous-programme

2 réponses
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é et passer des valeurs, en particulier au retour dans le
programme appelant Le but de ceci est d'é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 Acces 97

Merci d'avance pour toute idée me permettant de réaliser cette fonction.

Maurice

2 réponses

Avatar
3stone
"Maurice KRAIT" a écrit:


Je dois être "blacklister" chez Maurice ;-))))))))



--
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 )
-------------------------------------------------------
Avatar
mumu
bonjour,
Et si tu mettais le nom du formulaire appelant dans une variable declaré
comme étant public.
cela resoudrait ton soucis ou pas? car tu pourrais y avoir accès ensuite
depuis SP.

mumu

"Maurice KRAIT" a écrit dans le message de
news:
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é et passer des valeurs, en particulier au retour dans le
programme appelant Le but de ceci est d'é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 Acces 97

Merci d'avance pour toute idée me permettant de réaliser cette fonction.

Maurice