vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008
-
8 juin 2007 à 09:15
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 2009
-
8 juin 2007 à 11:05
Bonjours chers membre de VBFrance.
Donc comme je l'indiquai dans le sujet, j'ai un petit problème pour remplir une combobox. En gros j'ai une combo pour les nom des salariés (qui est rempli grâçe à la colonne Nom_salarie de ma table Salarie de ma BDD) et je voudrais remplir ma seconde combo avec le(s) prénom(s) qui correspondent au nom sélectionné dans ma combo nom. Ma requête marche sous Access mais pas sous VB mais je crois que c'est parce que j'ai mal placé ma procédure qui permet de remplir ma combox. Mais pour que vous compreniez un peu mieux je vous fournis mon code (Ne criez pas si c'est pas le top du code dans sa conception, je suis débutant ;-) :
Private Sub Form_Activate()
Call remplir_nom
Call remplir_prenom
End Sub
Sub remplir_nom()
Dim rccombo As ADODB.Recordset
Set rccombo = New ADODB.Recordset
' création de la requête pour remplir la combobox
rccombo.Open "select Nom_salarie from Salarie order by Nom_salarie", cnx, adOpenDynamic
' créer la combobox
listenom.Clear
' remplir la combobox en exécutant la requête du dessus
Do Until rccombo.EOF
Dim rccombo As ADODB.Recordset
Set rccombo = New ADODB.Recordset
' création de la requête pour remplir la combobox
rccombo.Open "SELECT Salarie.Prenom_salarie From Salarie WHERE Salarie.Nom_salarie = " & listenom.Text & ", cnx, adOpenDynamic"
' créer la combobox
listeprenom.Clear
' remplir la combobox en exécutant la requête du dessus
Do Until rccombo.EOF
fiko81
Messages postés381Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 5 septembre 20103 8 juin 2007 à 10:49
Salut,
Je comprend mieux ton problème : il est clair que si tu remplit des deux combo en même temps, tu vas avoir des problèmes. Pour remplir la combo prénom, il faut que l'utilisateur est choisit une valeur dans la combo nom.
Conseil : pour détecter le choix utilisateur dans la première combo, il faut utiliser l'évenement listenom_Change ou listenom_click (ça dépend de ta configuration) et dans cette evenement tu peux remplir ta combo listeprenom.
Sinon tout ce que je t'ai dit à la base reste vrai (pour les rem)
Fiko ;-)
La reponse vous convient pensez > Accepter < <hr />
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 8 juin 2007 à 10:59
Qu'est ce que ça fait exactement? Ca plante? Ca fait rien?
En tous cas, je ne sais pas si c'est une erreur de copier/coller, mais il te manque un " aprés ton permier ' et ton 2ème ' et ton 2ème " sont inversés :
rccombo.Open "SELECT Salarie.Prenom_salarie From Salarie WHERE Salarie.Nom_salarie = '" & listenom.Text & "', cnx, adOpenDynamic
sobullshit
Messages postés178Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention 8 juin 2007 8 juin 2007 à 09:40
Je dois avouer que je n'y connais rien en BDD (pas envie d'y mettre les pieds pour l'instant), mais j'ai remarqué 2-3 trucs :
1°)tu mets :
' créer la combobox
listeprenom.Clear
en fait, tu effaces juste les données qu'elle contient
2°) tu uitilises 2 sub différentes, si le nom et le prénom sont liés dans ta BDD, ça serait aps plus simple d'utiliser ce lien pour tout remplir dans une seule Sub (remplissage du nom puis du prénom associé, et ainsi de suite)
Bah en fait yavai que 2 trucs, pas 3
Vous n’avez pas trouvé la réponse que vous recherchez ?
fiko81
Messages postés381Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 5 septembre 20103 8 juin 2007 à 09:46
Salut,
Je dirais à première vu qu'il te manque les rem dans ta requette et tes guillements sont mal placés :
rccombo.Open "SELECT Salarie.Prenom_salarie From Salarie WHERE
Salarie.Nom_salarie = '" & listenom.Text & "'", cnx, adOpenDynamic
Fiko ;-)
La reponse vous convient pensez > Accepter < <hr />
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008 8 juin 2007 à 10:20
Alors premièrement, pour répondre a sobullshit, le remplissage de la combobox listenom marche parfaitement même avec le .Clear (j'ai copié exactement le code qui était dans mon cour pour remplir une combo) et si je ne mets pas le "WHERE Salarie.Nom_salarie = " & listenom.Text & ", le remplissage de ma listeprenom se fait aussi parfaitement. Le problème est que je puisse mettre n'importe quel nom avec n'importe quel prénom, se qui est un problème :-). Ensuite, le fait de faire un sub à la place de 2, je ne vois pas se que cela peux changer mais peut etre que je me trompe. Deuxièmement, pour répondre à fiko81, le fait de mettre les guillemets comme tu m'as dit de faire ne change rien :s. Et enfin pour répondre à drahcir, je crois que le problème est que je remplis ma listeprenom au mauvais moment. En gros, à l'affichage de ma forme, la listenom se remplis mais elle n'affiche rien par défaut donc la listeprenom ne peut se remplir. Et quand je sélectionne un nom dans la listenom, la listeprenom ne remplis pas pour autant.
Merci quand même et j'espère qu'avec mes réponses, mon problème est un peu plus claire :-)
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 8 juin 2007 à 10:38
alors en vb6 je ne sais pas exactement de quel évènement il s'agit (je développe en .net) mais regarde dans les évènements de "listnom".... du genre "SelectedItemChanged" ou qqch du style.
sobullshit
Messages postés178Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention 8 juin 2007 8 juin 2007 à 10:39
Je sais bien que le .Clear n'empêche pas le remplissage de tes combobox puisqu'il sert uniquement à le vider avant remplissage pour éviter d'avoir 15fois les mêmes données lorsque tu rafraîchit. Le remplissage tu le fait avec le .AddItem (pour les bilingues c'est pas trop dur à comprendre).
Ce que fiko81 te disait, c'était de rajouté des ' (apostrophes), pas des " (guillemets). Les " yen a besoin aussi, mais pas au même endroit.
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008 8 juin 2007 à 10:56
Alors j'ai essayé de faire ça :
Private Sub Form_Activate()
Call remplir_nom
End Sub
Private Sub listenom_Change()
Call remplir_prenom
End Sub
Sub remplir_prenom()
Dim rccombo As ADODB.Recordset
Set rccombo = New ADODB.Recordset
' création de la requête pour remplir la combobox
rccombo.Open "SELECT Salarie.Prenom_salarie From Salarie WHERE Salarie.Nom_salarie = ' & listenom.Text & '", cnx, adOpenDynamic
' créer la combobox
listeprenom.Clear
' remplir la combobox en exécutant la requête du dessus
Do Until rccombo.EOF