Nom de la Form Appelante

cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 13 mars 2007 à 09:09
jermel2 Messages postés 2 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 18 mars 2008 - 18 mars 2008 à 20:37
Bonjour à tous,

   J'ai une Form Mère et une Form Fille.

   Je souhaiterais dans ma Form Fille connaître le Nom de la Form Mère. 

   (C'est la Fille qui doit trouver le Nom de sa Mère)

   Avez vous la réponse à ma question

Par avance Merci.

13 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
13 mars 2007 à 09:33
Bonjour,

Ta question est quelque peu surprenante.

- ton projet ne peut recevoir qu'une seule MDIForm, que tu connais par construction de ton projet ...
- il te suffit donc d'enmagasiner son nom dans une variable de ton projet !

De toutes manières, si les autres forms sont des filles, la MDI a l'index 0 dans la collection Forms.

Donc (depuis n'importque quelle Form Fille) :

MsgBox Forms(0).Name
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 mars 2007 à 09:35
Tu surclasse l'appel à ta feuille

Dans ta feuille fille, tu crée une fonction Affiche :
Public Affiche(frmMere as Form)
    msgbox "La feuille appelante est : " & frmMere.Name
    Me.Show
End Sub

Dans la feuille mere, au lieu de faire frmFille.Show, tu fait frmFille.Affiche

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
13 mars 2007 à 09:51
Forms(0).Name  suffit, il me semble.... non ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 mars 2007 à 09:54
Non suffit pas. Forms(0).Name va te renvoyer le nom de la première feuille dans la collection des feuilles ouvertes, mais ça ne sera pas forcément la feuille appelante notamment dans le cas ou plus de 2 feuilles sont ouvertes.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
13 mars 2007 à 11:04
Merci pour toutes ces réponses. Ce que je cherche, c'est une ou une ApiAppelante.</gras>

Je pourrais faire également:

Une variable Global:                 NAM as object
Dans la Form appelante:           set NAM = Form1
Dans la Form Appelée               NAM.Label1 = ............    mais ce n'est pas ce que je cherche.

Merci encore pour votre aide
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
13 mars 2007 à 11:05
Bééééé...
Voilà la demande :
"Je souhaiterais dans ma Form Fille connaître le Nom de la Form Mère

   (C'est la Fillequi doit trouver le Nom de sa Mère)"

J'ai beau créer des Forms dans tous les ordres possibles et imaginables et les ouvrir dans n'importe quel ordre (toutes ou une partie) :
Dès lors que je fais ceci dans une Form fille (car c'est bien là la demande)  et quelle que soit la form fille :

Private Sub Command1_Click()
  MsgBox Forms(0).Name
End Sub

J'obtiens toujours le nom de la MDI !!!

ce que tu dis n'est vrai que si tu n'as pas de form fille depuis laquelle, comme il est ici demandé, tu veux connaître le nom de la MDI qui est sa mère (et il n'est pas possible dans un projet d'insérer 2 MDI ...)

Essaye...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 mars 2007 à 11:21
Jacques, il n'est precisé nulle part que l'on parle de feuilles MDI. Et même si les termes Mere/Fille sont employés, garde à l'esprit qu'ils sont aussi souvents employés hors d'un cadre MDI, pour simplement désigner le couple appelant appelé. Car si on dessine l'abre d'appel à l'image d'une arbre généalogique, la feuille appelante est effectivement la feuille mere et la feuille appelée est la feuille fille, pouvant à son tour devenir une feuille mere lors ed l'appel d'une éventuelle feuile "petite-fille", etc ......

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
13 mars 2007 à 11:28
Ah oui...
Je restais (à savoir pourquoi) scotché à l'idée qu'il parlait de form fille d'une MDI.
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
13 mars 2007 à 12:57
Casy à raison. Je ne parle pas de MDI mais de hiérarchie mère Fille.
0
jermel2 Messages postés 2 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 18 mars 2008
18 mars 2008 à 19:33
Bonjour,
Je suis dans le même cas que toi Cpapy.
Tu es d'ailleurs le seul que j'ai trouvé ^^.

J'ai des form, et notamment une qui peut être ouverte par plusieurs (pas de problèmes), or il me serait très très utile de savoir laquelle des forms l'a lancé.

Je n'ai pas de MDI non plus.

Une astuce serait de copier cette form autant de fois qu'il y a de fenetre appelante, mais je ne trouve ca vriament pas propre.

merci d'avance.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 mars 2008 à 20:19
J'ai pourtant donner la solution (éprouvée de longue date) dans ma première réponse.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 mars 2008 à 20:22
J'ai pourtant donner la solution (éprouvée de longue date) dans ma première réponse.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
jermel2 Messages postés 2 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 18 mars 2008
18 mars 2008 à 20:37
rebonsoir,

oui en fait , j'ai utilisé a peu près la même logique que toi, déclarer une variable globale

frm_main.frm (contient un bouton nommé "cmd_ouvrir")

Private Sub cmd_ouvrir_Click()
    frm_new.form_source = Me.Name
    frm_new.Show
End Sub

frm_new.frm

Public form_source As String

Private Sub form_load()
    MsgBox (form_source)
End Sub

Mais je cherchais surtou a savoir s'il n'existait pas de paramètres déjà existants dans les form, donnant ces informations.
0
Rejoignez-nous