Alimenter une combobox a partir d'une autre combobox

pinpoy Messages postés 8 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 26 mai 2003 - 4 mai 2003 à 17:28
athamzi Messages postés 1 Date d'inscription lundi 5 janvier 2004 Statut Membre Dernière intervention 7 janvier 2004 - 7 janv. 2004 à 05:21
salut jai un petit problème, je vois vrément pas pk ca marche pas...
g une combobox alimentée a partir dune base de donnée access, dans cete combobox je selectionne un nom et a partir de ce nom j'execute une requete paramétrée access (qui marche) et jessaye dafficher ts les prénoms qui ont ce nom de famille...
vs avez compris en gros ?? je vous mets mon code

Private Sub Form_Load()

Set db = OpenDatabase(App.Path & "\bon4.mdb")
Set rs = db.OpenRecordset("PILOTE")
For i = 1 To rs.RecordCount 'alimente la combobox ayant les noms
Combo4.AddItem rs("NOMPILOTE")
rs.MoveNext
Next i

rs.MoveFirst
For i = 1 To (rs.RecordCount - 1) 'élimine les doublons
If Combo4.List(i) = Combo4.List(i + 1) Then
Combo4.RemoveItem (i - 1)
End If
Next i


End Sub

Private Sub Combo4_Change()
qdef = QueryDefs("req12")
qdef.Parameters("nomp") = (Combo4.Text)
rs = qdef.OpenRecordset
For i = 1 To rs.RecordCount
Combo5.AddItem rs("PRENOMPILOTE")
rs.MoveNext
Next i
Combo5.Refresh
End Sub

voila si vous avé une idée merci de la soumettre @+

2 réponses

pinpoy Messages postés 8 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 26 mai 2003
4 mai 2003 à 17:31
-------------------------------
Réponse au message :
-------------------------------

> salut jai un petit problème, je vois vrément pas pk ca marche pas...
> g une combobox alimentée a partir dune base de donnée access, dans cete combobox je selectionne un nom et a partir de ce nom j'execute une requete paramétrée access (qui marche) et jessaye dafficher ts les prénoms qui ont ce nom de famille...
> vs avez compris en gros ?? je vous mets mon code
>
> Private Sub Form_Load()
>
> Set db = OpenDatabase(App.Path & "\bon4.mdb")
> Set rs = db.OpenRecordset("PILOTE")
> For i = 1 To rs.RecordCount 'alimente la combobox ayant les noms
> Combo4.AddItem rs("NOMPILOTE")
> rs.MoveNext
> Next i
>
> rs.MoveFirst
> For i = 1 To (rs.RecordCount - 1) 'élimine les doublons
> If Combo4.List(i) = Combo4.List(i + 1) Then
> Combo4.RemoveItem (i - 1)
> End If
> Next i
>
>
> End Sub
>
> Private Sub Combo4_Change()
> qdef = QueryDefs("req12")
> qdef.Parameters("nomp") = (Combo4.Text)
> rs = qdef.OpenRecordset
> For i = 1 To rs.RecordCount
> Combo5.AddItem rs("PRENOMPILOTE")
> rs.MoveNext
> Next i
> Combo5.Refresh
> End Sub
>
>
> voila si vous avé une idée merci de la soumettre @+
0
athamzi Messages postés 1 Date d'inscription lundi 5 janvier 2004 Statut Membre Dernière intervention 7 janvier 2004
7 janv. 2004 à 05:21
salut
Ahamzi
j'ai juste de petites remarques
1/ pour les doublons
For i = 1 To (rs.RecordCount - 1)
If Combo4.List(i) = Combo4.List(i + 1) Then
Combo4.RemoveItem (i - 1)
End If
Next i
suppose que pour i=1 est vrai cela veut dire que la premiere est eagle
a la deuximente or i-1 =0 et tu va enlevr la zero la ca marche pas
en plus si tu enleve un item du combo4 tout l'index change je m'explique
tout ce qui ont un index superieur a l'index enlever vont diminuer leur index de 1
donc meilleur solution
une requette simple "select distinct nompliote from pliote"
en plus a chaque ouverture tu oublie movelast et novefirst
ton programme alors deviens comme suit

Private Sub Form_Load()

Set db = OpenDatabase(App.Path & "\\bon4.mdb")
Set rs = db.OpenRecordset("select distinct nompliote from pliote")
rs.MoveLast
rs.MoveFisrt
For i = 1 To rs.RecordCount 'alimente la combobox ayant les noms
Combo4.AddItem rs("NOMPILOTE")
rs.MoveNext
Next i

End Sub

Private Sub Combo4_Change()
qdef = QueryDefs("req12")
qdef.Parameters("nomp") = (Combo4.Text)
rs = qdef.OpenRecordset
rs.MoveLast
rs.MoveFisrt
For i = 1 To rs.RecordCount
Combo5.AddItem rs("PRENOMPILOTE")
rs.MoveNext
Next i
Combo5.Refresh
End Sub

Bonne comprehension
Salutation Athmane
0
Rejoignez-nous