changement de formulaire - VB/VBA/VBS - Programmation
Marsh Posté le 13-06-2005 à 16:12:29
Salut
En .NET c'est:
Dim MonNouveauFormulaire As New Formulaire2
MonNouveauFormulaire.Show()
A+
Marsh Posté le 14-06-2005 à 10:13:00
merci de ton aide
Est ce que par hasard tu serai commetn on fait pour appeler des informations d'un formulaire pr les afficher ds un autre?
Merci d'avance pour ton aide
Marsh Posté le 14-06-2005 à 11:15:47
Il y a plusieurs méthodes. Perso j'utilise la plupart du temps un module de classe ou je déclare les variables qui m'intéressent pour stocker des informations en passant d'un form à un autre (= variable globale).
Marsh Posté le 14-06-2005 à 11:41:45
Alors, en VB.NET ça donnerait :
1. Tu crées un module : dans le menu : Projet ==> Ajouter un module que tu nommes par exemple MonModule.vb
2. J'vais traiter un exemple avec 2 form, Formulaire1 a une cmbbox et un bouton, Formulaire2 une txtbox
3. Dans le module, tu écris :
Code :
|
4. Dans le formulaire 1, le code du bouton Valider sera :
Code :
|
5. Enfin, dans ton 2ème formulaire, pour la fonction Load, tu écris :
Code :
|
Donc avec ce code, tu récupère ce que tu as sélectionné dans ta combobox et tu l'affiche dans une textbox qui se trouve sur un autre form !
A+
Marsh Posté le 14-06-2005 à 12:10:07
t'utilise kel version de VB.net?
Moi c'est la version 2002
Marsh Posté le 14-06-2005 à 12:26:59
Alors c'est la fonction qui est lancée au chargement de ton formulaire !
Marsh Posté le 14-06-2005 à 12:27:14
Pour y avoir accès, tu peux faire ceci :
En mode Concepteur, dble clic sur ton formulaire (Autre part que sur une txtbox ou autre...) et normalement, le code va s'afficher avec Formulaire_Load(...)...
Marsh Posté le 14-06-2005 à 12:29:03
j'ai pourtant fait com tu ma dit ms ca ne marche pas
snif snif
Marsh Posté le 14-06-2005 à 12:43:53
Je te reposte le code !
Module : (MonModule.vb)
Code :
|
Formulaire 1 : (Form1.vb)
Code :
|
Formulaire 2 : (Form2.vb)
Code :
|
A+
Marsh Posté le 14-06-2005 à 13:09:07
Voilà l'erreur qd je met: ComboBox1.SelectedIndex = 0
"L'argument spécifié n'était pas dans les limites de la plage des valeurs valides."
tu me dire pkoi ca ne marche pas
Marsh Posté le 14-06-2005 à 13:22:14
oui, tu dois remplir la combobox ! C'est la propriété Items de la combo. Tu saisis 2 ou 3 valeurs...
Marsh Posté le 14-06-2005 à 13:37:41
oui ca marche ms tu peu me dire comment tu fait pour afficher 2 ou plus de valeur stp ?
Marsh Posté le 14-06-2005 à 13:46:12
Pour ajouter des valeurs dans ta combobox, tu fais :
Tu déclare item du type que tu veux et tu fais
Combobox.Items.Add(item)
Marsh Posté le 14-06-2005 à 14:01:26
je veux ajouter plusieurs valeurs dans des textBox differents?
je fais comment??
merci de ton aide
Marsh Posté le 14-06-2005 à 14:03:17
j'ai fait ce code dans la form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MonModule.ValeurCmbBox = ComboBox1.SelectedItem
MonModule.ValeurCBox = ComboBox2.SelectedItem
Dim NewForm2 As New Form2()
NewForm2.Show()
End Sub
Marsh Posté le 14-06-2005 à 14:27:27
Tu veux stocker tous les éléments de ta combobox pour pouvoir les réutiliser après ?
Marsh Posté le 14-06-2005 à 14:30:11
en gait j'ai un formulaire sur lekel je rentre un nom, prenom, tel; setion, hierachique.
je veux que cezs infos soient tranféfé sur un autre formulaire.
Marsh Posté le 14-06-2005 à 14:36:13
OK ! Ben c'est le même principe sauf que dans le module tu déclare un tableau qui te permettra de stocker ttes les infos.
Marsh Posté le 14-06-2005 à 14:58:47
Ce que tu peux faire : dans ton module, tu déclares autant de variables que tu veux passer au formulaire suivant.
Code :
|
ou, avec un tableau :
Code :
|
Ensuite, dans ton bouton qui te permet de passer à l'autre formulaire, tu stocke ce que tu as saisi dans les variables du module.
Après, dans le 2ème form t'as plus qu'à utiliser les variables de ton module qui contiennent les valeurs saisies.
Marsh Posté le 14-06-2005 à 15:27:51
voilà le code de la form1 :
Private Sub BtAffec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtAffec.Click
MonModule.nom = OL_Nom.SelectedItem
Dim Utilisateur As New Utilisateur()
Utilisateur.Show()
End Sub
voilà le code de la form2:
Private Sub Utilisateur_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TbNom.Text = MonModule.nom
End Sub
Ya t'il des fautes parce que ca marche pas?
Marsh Posté le 14-06-2005 à 15:43:32
A priori c'est OK ! Tu peux expliquer ce qui ne marche pas ?
Ca t'affiche rien dans la txtbox ? Le pgm plante completement ?
Marsh Posté le 14-06-2005 à 15:47:30
en fait j'ai remarquer que si je remplit la combobox ca marche
mais ac des textBox com form de départ ca marche pas
ton extractioon d'un formujlaire a un autre ca marche kavec des CmbBox?
Marsh Posté le 14-06-2005 à 16:00:24
Pourtant ca marche aussi avec des textbox !
Un exemple pour passer une valeur saisie dans form1 vers form2 :
Dans ton module, tu déclares :
Code :
|
Dans form1, dans le code du bouton tu mets :
Code :
|
Dans form2, fonction load :
Code :
|
Marsh Posté le 14-06-2005 à 16:14:32
merci ca marche
derniere question: fo t'il remplir la CmbBox?
Marsh Posté le 14-06-2005 à 16:20:56
Tout dépend si tu l'utilies ou pas... Si tu l'utilises pas, ca sert à rien mais si tu l'utilises c mieux de la remplir car si tu sélectionne à la base le 1er item avec
Code :
|
et que t'as rien dans la combo, ca va planter !!!
Marsh Posté le 15-06-2005 à 08:28:10
salu
je t'explique en fait cette cmbBox elle se remplit par incrementation automatique. Si tu veux qd j'appuie sur un bouton qui fait défiler les machines qui sont dans ma table le nom de l'utilisateur change atomatiquement. dc ma cmbBox n'est pas remplit. dc ac ton systeme ca me renvoie pas la valeur qu'il y a dans ma CmbBox
Marsh Posté le 15-06-2005 à 11:05:10
Hello !
C'que j'te propose c'est de poster tt ton code car le dernier msg j'ai pas bien saisi...
Marsh Posté le 15-06-2005 à 11:27:48
si tu veux j'ai un formulaire qui me relie a une base sous MySql. Cette base elle contient 3 tables. La table machine_enregistrees contient plusieurs champs dt le nom de l'utilisateur propre a la machine que je fais apparaître dans une CmbBox.
Sur ce formulaire j'ai des boutons de navigations qui me permettent de faire défiler les enregistrements contenus les uns et après les autres.
En ce qui concerne l'utilisateur, j'ai un bouton pour l'affecter a une autre personne. Jaffiche les valeurs concernant lancien utilisateur dans le formulaire. Mais le pb est que tt ce qui est ds une TxtBox il veut bien me le tranférer dans le formulaire mais ce qui est ds la CmbBox. Peut tu maider ? ?
Jespere que tu as compris.
Marsh Posté le 15-06-2005 à 19:43:19
steppenwolf t'a demandé de poster ton code...
Tes descriptions sont incompréhensibles.
Marsh Posté le 16-06-2005 à 09:33:32
en attendant ce que j'ai dans ma CmbBox ne s'affiche tjs pa....
En ce qui concerne mon code je vais pas pouvoir le poster aprce que j'en ai au moins 10 pages
Marsh Posté le 16-06-2005 à 13:48:33
On te demande juste la partie concernée. Pas tout le code.
Evite aussi le langage SMS, c'est pas très engageant à lire la description de ton problème.
Concernant cette description, essaye d'être clair:
Noms de tes contrôles, code associé, exemple de données, effet attendu, effet observé, messages d'erreur (avec mention de la ligne dans le code.
Marsh Posté le 13-06-2005 à 11:14:36
Salut
Est ce que qq'un sait la syntaxe pr aller sur un formulaire en appuyant sur un bouton contenu dans un autre formulaire?
Si je me souviens bien c un truc du style Fr.show mais je me souvien pas du reste.
Merci d'avance pour votre aide