Hi everybody >>
Thanks to this forum >>
I need your help please .. My problem in the Combo Box and SQL query ..
I have three comboboxes linked to an Access 2007 database
first one "Department"
second one "Year"
third one "ClassRoom"
in third combobox I need display the classroom of department and year which select in "first comobobox" and "second comobobox"
for example :
I have 3 department
math first year and have classroom1 and classroom 2
Physics second year and have classroom1
History third year and have classroom3 and classroom 4
when user select math from first combobox
and firt year from second combobox then the third combobox must fill classroom1 , classroom2
I know my English is poor but I hope you understand me ... thank you
my code
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.DataSource = GetTable("select DepID,DepName from Department")
ComboBox1.DisplayMember = "DepName"
ComboBox1.ValueMember = "DepID"
ComboBox1.DataSource = GetTable("select YearID,YearName from Year")
ComboBox1.DisplayMember = "YearName"
ComboBox1.ValueMember = "YearID"
End Sub
Public Function GetTable(ByVal query As String) As System.Data.DataTable
Dim adp As New OleDb.OleDbDataAdapter(query, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\HamakDatabase.mdb")
Dim dt As New Data.DataTable
adp.Fill(dt)
Return dt
End Function
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim r As DataRowView = ComboBox1.SelectedItem
Dim rr As DataRowView = ComboBox2.SelectedItem
If Not IsNothing(r) Then
ComboBox3.DataSource = GetTable("select CRID , CRname From ClassRoom Where YearID = " & r("YearID")&" AND DepID ="&rr(DepID))
End If
End Sub
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
End Sub
my code work but result of query fault
the third combobox display all classroom in the department which selected in first combobox and don't care to year which select in second combobox
I use Visual Basic 2010