Ce que je veux dire par appel comme un sous-programme est que je
veux pouvoir ouvrir, dans 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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond
Bonjour.
tu appelles ton formulaire SP en acdialog à partir de tes formulaires F1, F2... dans F1 par exemple: Private Sub Commande0_Click() DoCmd.OpenForm "SP", acNormal, , , , acDialog, Me.Name End Sub
dans F2: Private Sub Form_Load() MsgBox Me.OpenArgs End Sub le msgbox affichera "SP". dans le openargs tu as le nom du formulaire appelant que tu peux utiliser avec un objet Forms!...... -- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"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, dans 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 ?
Merci d'avance pour toute solution
Maurice
Bonjour.
tu appelles ton formulaire SP en acdialog à partir de tes formulaires F1,
F2...
dans F1 par exemple:
Private Sub Commande0_Click()
DoCmd.OpenForm "SP", acNormal, , , , acDialog, Me.Name
End Sub
dans F2:
Private Sub Form_Load()
MsgBox Me.OpenArgs
End Sub
le msgbox affichera "SP". dans le openargs tu as le nom du formulaire
appelant que tu peux utiliser avec un objet Forms!......
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"Maurice KRAIT" <mkrait@club-internet.fr> a écrit dans le message de
news:3F978787.8000907@club-internet.fr...
Bonjour,
Ce que je veux dire par appel comme un sous-programme est que je
veux pouvoir ouvrir, dans 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 ?
tu appelles ton formulaire SP en acdialog à partir de tes formulaires F1, F2... dans F1 par exemple: Private Sub Commande0_Click() DoCmd.OpenForm "SP", acNormal, , , , acDialog, Me.Name End Sub
dans F2: Private Sub Form_Load() MsgBox Me.OpenArgs End Sub le msgbox affichera "SP". dans le openargs tu as le nom du formulaire appelant que tu peux utiliser avec un objet Forms!...... -- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"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, dans 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 ?