En fait moi j'ai trois combobox 1 , 2 et 3 . le 2 sera rempli en fonction de choix de combobox2 et le combobox3 en fonction de choix de combobox2.
Dans ma base donnée j'ai pas crée 3 tableaux.
tableau1 : contient des éléments que j'aimerai remplir dans Combx1 et voilà comment je l'ai ajouté:
Private Sub Form()
Dim Mycommand As OleDbCommand = Cn.CreateCommand()
Mycommand.CommandText = "SELECT FAMILLE FROM TABLEAU1"
Cn.Open()
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
Do While myReader.Read()
ComboBox1.Items.Add(myReader(0))
Loop
myReader.Close()
En sub
Pour tableau2 (contient deux champs :famille et sous famille) j'ai mis un champ qui porte le nom de FAMILLE de chaque sousFamille sans mettre de relation avec tableau1 ( sinon vous pouvez créer une relation mais ça sera un autre programme comme cs_MPi a expliqué ci-dessus);j'ai remplir combx2 comme suit:
Private Sub ComboBox1_SelectedIndexChanged()
Dim ds As New DataSet
ComboBox2.DisplayMember = ""
ComboBox3.DisplayMember = ""
Dim str As String
str = "select * from TBLEAU2 where FAMILLE='" & ComboBox1.Text & "'"
Dim cmd1 As New OleDbCommand(str)
Dim d As New OleDbDataAdapter(cmd1)
Dim tab As New DataTable
cmd1.Connection() = Cn
d.Fill(ds, "TABLEAU2")
tab = ds.Tables("TABLEAU2")
ComboBox2.DataSource = ds.Tables("TABLEAU2")
ComboBox2.DisplayMember = "SsFAMILLE"
End Sub
pour TABLEAU3 , j'ai mis deux champs SousFamille et classe (la même démarche précédente:; et voilà le programme:
Private Sub ComboBox2_SelectedIndexChanged()
Dim ds As New DataSet
Dim str1 As String
str1 = "select * from TABLEAU3 where SsFAMILLE='" & ComboBox2.Text & "'"
Dim cmd2 As New OleDbCommand(str1)
Dim d1 As New OleDbDataAdapter(cmd2)
Dim tab1 As New DataTable
cmd2.Connection() = Cn
d1.Fill(ds, "TABLEAU3")
tab1 = ds.Tables("TABLEAU3")
ComboBox3.DataSource = ds.Tables("TABLEAU3")
ComboBox3.DisplayMember = "CLASSE"
End Sub
Espérant que ça sera compressible :)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI
Merci d'y penser dans tes prochains messages. |