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
graphique dans access par vba [ par chaudier37 ]
bonjourvoila j'ai fait un petit travail sur access. ce sont des fichier de malades qui entrent dans un service d'amaigrissement.dans un formulaire je
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|