Accueil > Forum > > > > Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?
Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?
mardi 27 avril 2004 à 11:53:39 |
Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?

angelia
|
Bonjour, je pb est simple et je me pose fréquement la question car dans de nombreux cas cela me simplifierai la vie. Exemple : Vous avez une table sur Access par exemple contenant 2 champs, 1 champ Numero qui est un integer et un champ NomForm qui est du texte et qui représente le nom d'un formulaire de VB. Depuis VB je veux accéder aux méthodes d'un formulaire (notamment la méthode show pour l'afficher), pour cela l'utilisateur tape un numéro et je vais chercher le formulaire qui correspond au numéro, tapé par l'utilisateur, dans la table d'access. Voila ce que j'essaye de faire : 'j'ai déclaré un nouveau Adodb.recor  dset qui s'appel "rst" pour aller chercher les info dans ma table, et j'ai récupéré le nom du formulaire (mais là n'est pas le probleme) Il ne comprend pas que je veux utiliser le contenu de mon champ de ma table comme étant le nom d'un objet!! Comment faire ????? Merci beaucoup d'avance de vos lumières
|
|
mardi 27 avril 2004 à 15:11:54 |
Re : Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?

crenaud76
|
Normal qu'il ne comprenne pas ! res("NomForm") est une chaine de caractère et .Show est une méthode appartenant à la classe Form !! Mais on peux s'en sortir comme cela : Public Function GetFormByName(byVal NomFrm as String) As Form Dim Frm as Form For Each Frm in Forms If Frm.Name = NomForm Then Set GetFormByName = Frm Exit Function EndIf Next Set GetFormByName = Nothing End Function
|
... A mettre dans un module standard Dim F as Form F = GetFormByName(rst("NomForm")) If Not F IUs Nothing Then F.Show Else Msgbox rst("NomForm") & " n'existe pas) EndIf
|
... A mettre la ou tu veux afficher ta form. OK ? Christophe R.
|
|
mardi 27 avril 2004 à 15:12:06 |
Re : Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?

crenaud76
|
Normal qu'il ne comprenne pas ! res("NomForm") est une chaine de caractère et .Show est une méthode appartenant à la classe Form !! Mais on peux s'en sortir comme cela : Public Function GetFormByName(byVal NomFrm as String) As Form Dim Frm as Form For Each Frm in Forms If Frm.Name = NomForm Then Set GetFormByName = Frm Exit Function EndIf Next Set GetFormByName = Nothing End Function
|
... A mettre dans un module standard Dim F as Form F = GetFormByName(rst("NomForm")) If Not F IUs Nothing Then F.Show Else Msgbox rst("NomForm") & " n'existe pas) EndIf
|
... A mettre la ou tu veux afficher ta form. OK ? Christophe R.
|
|
mardi 27 avril 2004 à 20:34:31 |
Re : Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?

angelia
|
Merci deja de ta réponse. Je vais essayer le code ce soir, mais au fait le for each form in Forms...
|
ne necessite pas que le formulaire soit déja chargé en mémoire? ou bien Forms est vraiment la collection de tous les formulaires du projet ? Ensuite je pensais qu'il y avait plus simple car cela peut être un formulaire comme cela peut être un control, alors dans ce cas il faudrait presque un proc par type. Bref je dis cela car sur Windev par exemple, il existe un opérateur d''indirection" comme ils l'appelle : par exemple est équivalent à ou encore : est équivalent à génial non ?!!! et bien je voulais savoir si il existait la même chose en Vb Merci d'avance 
|
|
mardi 27 avril 2004 à 20:46:09 |
petite erreur...

angelia
|
j'essai ton principe de code et me met 2 erreurs dans le code : la premiere est qu'il faut, à priori le mot clé "Set" devant F = GetFormByName(rst("NomForm"))
|
je ne me trompe pas ? et le second par contre, je ne comprend pas ton code : If Not F IUs Nothing Then
|
il me dit qu'il y a une erreur de syntaxe ! je ne sais pas comment tu veux essayer de tester si l'objet est vide Merci de ta réponse
|
|
mardi 27 avril 2004 à 20:49:18 |
Re : petite erreur...

angelia
|
autant pour moi, c'est le code suivant il y avait un U en trop !!  sorry !
|
|
mardi 27 avril 2004 à 22:05:12 |
Re : Comment utiliser les methode d'un objet quand on ne dispose que du nom en string ?

crenaud76
|
Ouais pardon pour les erreurs de frappe, mais j'ai fait le code directement sur le site sans le tester avant dans VB, alors il y a des coquilles !! Par contre, le point que tu soulèves est fort exact, et je n'y avait pas pensée avant : La collection "Forms" regroupe toutes les fenêtres CHARGEES de l'application. Si ta form n'est pas encore chargée, tu ne la verras pas (par aucun aute moyen d'ailleurs, je pense) La solution est donc de pré-charger toutes tes forms par un "Load Form1", "Load Form2", etc ... Si jamais une fenêtre doit etre fermé et eventuellement réouverte, ne pas faire de "Unload Me" mais juste un "Me.Hide" (dans l'evt Query_Unload par exemple, en testant le UnloadMode avant bien sur) afin qu'elle soit juste masquée mais reste en mémoire. J'espère que tu n'as pas 150 forms, sinon, ca va ramer sec
Christophe R.
|
|
Cette discussion est classée dans : table, objet, formulaire, utiliser, champ
Répondre à ce message
Sujets en rapport avec ce message
Modification de champ de une table Access [ par nirega ]
Bonjour,j'ai un petit problème ;-(Je voudrai modifier le champ d'une table access d'après une valeur entrer dans un sous-formulaireex: j'ai une table
addition de 2 champs [ par hamster2combat ]
bonjourAprés certain pb lié à des addition dans un formulaire.Je souhaite créer un champ dans une table qui sera l'addition de 2 autres.Je remplis des
enregistrer un objet ole depuis vb6.0 vers une table access [ par zmaai ]
Bonjour à vous tous,J'ai une table dans une base access97 avec un champ ole "champ_ole". Dans mon projet vb6.0 j'ai une form avec un controle ole "OLE
Evenement click sur champ de table [ par jojo68 ]
Bonjour à tous,J'ai un formulaire directement lié à une table.Est il possible de définir un evenement en cliquant sur une des cellule de la table dans
exploiter un objet OLE contenu dans une table dans un programme [ par bertholdt ]
Bonjour,Je suis actuellement en train de développer une appli qui utilise comme source de données une base access 2002. L'une des tables contient des
Créer un champ image dans ACCES [ par shaka17 ]
Bonjour,Voila mon problème:Je voudrais dans un formulaire créer un champ dans lequel s'afficherait une image qui serait dépendante d'une table ou sera
je voudrais utiliser la table et le formulaire uniquement pour la consultation et la saisie [ par buccelli ]
bonjours,je voudrais utiliser la table et le formulaire uniquement pour la consultation et la saisie sans (suppression / modification)et sans utiliser
filtre table sous formulaire [ par TiteufA44 ]
Bonsoir à tous, Débutant en VBA Access 2000, je souhaiterais résoudre un (petit) problème : J'ai une BD avec une seule Table (et une vingtaine de ch
formulaire muticritéres [ par sanae88 ]
Bonjour, je fait un formulaire multicritéres , je veux que le sous formulaire affiche les champs d'une table correspondant au champ choisi dans la lis
[ACCESS 2003] Màj d'un champ de table par un champ formulaire calculé [ par geofL30 ]
Bonjour, voici mon problème: J'ai un formulaire principal nommé "Formulaire_de_saisie" qui alimente une table nommée "Référentiel_Terrain". Dans ce
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|