Appel d'un Form

Résolu
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
- 6 juil. 2006 à 10:32
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
- 7 juil. 2006 à 10:03
Bonjour à tous,

Je voudrais appeler un form à partir de son nom en string.

C'est pour pouvoir faire un for each Ctl In Frm.Controls, mais je n'ai que le nom du Frm en string

J'aiemrais également lister tous les formulaires présents dans un projet sans avoir à tous les ouvrir au préalable, cela est-il possible?

Car si je fais un for each Frm in Forms, il ne m'affiche que les formulaires charger en mémoire.

Merci pour votre aide

TBBUIM

8 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
7 juil. 2006 à 09:53
Nous avons parfaitement compris ta question, rassures toi, et baisse d'un ton, merci !
il te suffit de faire :

Public Function CreateFormByName(ByRef vsFormName As String) As Form

    Set CreateFormByName = Forms.Add(vsFormName)

End Function

tu connaissais la collection Forms....
j'ai simplement testé Forms.Add et ca fonctionne....

et ca n'est qu'une des solutions que j'ai codées pour ce problème....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
VBGenesis
Messages postés
292
Date d'inscription
samedi 25 février 2006
Statut
Membre
Dernière intervention
22 février 2009

6 juil. 2006 à 12:13
Salut
Je sais pas si c'est vraiment ton pb mais pour lister les forms d'un projet je crois que tu peux faire comme ca:

Ouvre le .vbp du projet dans un text. Voici le contenu(c'est un exemple):
      Type=Exe
      Form=Form1.frm
      Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\WINDOWS\system32\stdole2.tlb#OLE Automation
      Form=Form2.frm
      Module=Module1; Module1.bas
      Class=Class1; Class1.cls
      Startup="Form1"      ...

Il y a un élément "form" par form dans ton projet. Tu peut également voir les éléments "Module" et "Class" que j'ai mis pour l'exemple. Tu aura juste a les recuperer avec InStr

Par contre désolé mais je n'ai pas bien compris ton autre pb alors si tu pouvais etre un peu plus claire... ;)

VBGenesis
0
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
6 juil. 2006 à 13:03
Un form à pr type Form
J'ai son nom mais en string "NomDuForm"

J'ai besoin de faire appel à des controles ainsi que plein d'autres choses ce situant dans le form.

Hors pr faire appel à ces controles, il faut écrire un truc du genre Frm("NomDucontrol") ou Frm.Ctl

Mais pr utiliser cette syntax, il faut que le type du Frm soit Form et pas Sstring!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Donc, j'ai besoin d'avoir un truc qui me transforme la string en form

Genre une fonction qui me renvoi un type Form à partir d'un string

Public function CFrm(Frm as String) as Form
   ... 'code obscur qui va chercher le formulaire dont on connait le nom en string et renvoi un Form
End Function

Voilà, c plus clair maintenant?!

Pr ce qui est de la liste des forms, merci mais j'avais déjà fait comme ça, mais bon,
J'aurais voulu savoir s'il était possible de faire ça sans regarder dans le fichier du vbp etc c relou
TBBUIM
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
6 juil. 2006 à 13:05
pas de miracle faisable ici...
va falloir faire un Select Case, et créer la form voulue...

tu dois pas avoir des milliers de form, au pire ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

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

Posez votre question
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
6 juil. 2006 à 13:12
non mais une bonne centaine et je suis en plein milieu du projet qui doit être utilisé, donc ça devrait  évoluer, voir certaines form cahnger de nom etc, ct donc pr faire un truc qui marche mm après modif pr que je ne sois pas obligé de rajouter les forms à chaque fois qe j'en crée un...

BREF, mais ma question principale et je pense que celle là est faisable Renfield..;

Comment appeler un Form à partir d'une string??????????
TBBUIM
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
6 juil. 2006 à 19:57
salut,
si la form n'est pas chargée (et c'est ton cas), il me semble que le seul moyen est de stocker son nom au préalable dan un tableau....
pas trop de choix....

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
7 juil. 2006 à 08:25
Grrrrrrrrrrrrrrrrrrrrrr
On dirait quez vous faites exprès de pas comprendre ma question!!!

J'ai déjà le nom de la form stockée dans un tableau de STRING

MAIS COMMENT LANCER LE FORM A PARTIR DE SON NOM EN STRING?

Je peux pas faire Form.Show vu que c'est pas Form mais "Form" que j'ai

Donc je peux pas faire "Form".Show donc comment faire? telle est la question...

TBBUIM
0
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
7 juil. 2006 à 10:03
Merci

Désolé d'avoir hausser le ton , mais ça fait 2 jours que je galérais là dessus...
TBBUIM
0