Filter a combobox based on the other Combobox

Hello,

I have a windows form created in VB.Net with two combo box listing. I want the third combobox to filter the data based on the first two combo box
For example
First combo box: Category
Second Combo Box: Manufacturer
Third Combo Box: Model

On selection of the first two combobox, the third combo box should filter data.  

Third combo box data source is from a table that holds all the three data. but display member is Model


How can it be done. please assist. Thank you
angel7170Asked:
Who is Participating?
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
Hi
All comboboxes are Databound?
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
ok try this...
Private Sub ComboBox1_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDownClosed
        Dim CustID As Integer = ComboBox1.SelectedValue
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim bs As New BindingSource
        bs.DataSource = Me.Combo3DataSet
        bs.DataMember = "MyCombobox3TableName"

        bs.Filter = ("Key_Model=" & CustID)

        Dim col As New ComboBox
        col = Me.ComboBox3

        col.DataSource = bs
        col.DisplayMember = "Model"
        col.ValueMember = "Key_Model"    '>>>>>For Example
    End Sub

Open in new window

0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
CompleteCode...Because we have to check also the DropDown Event
Private Sub ComboBox1_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDown
        Try

            Dim CustID As Integer = Me.ComboBox1.SelectedValue
           


            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            Dim bs As New BindingSource
             bs.DataSource = Me.Combo3DataSet
        bs.DataMember = "MyCombobox3TableName"

             bs.Filter = ("Key_Model=" & CustID)

            Dim col As New ComboBox
            col = Me.ComboBox3

            col.DataSource = bs
            col.DisplayMember = "Model"
        col.ValueMember = "Key_Model"    '>>>>>For Example
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''



        Catch ex As InvalidCastException

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try
    End Sub

    Private Sub ComboBox1_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDownClosed
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim bs As New BindingSource
        bs.DataSource = Me.Combo3DataSet
        bs.DataMember = "MyCombobox3TableName"

        bs.Filter = ("Key_Model=" & CustID)

        Dim col As New ComboBox
        col = Me.ComboBox3

        col.DataSource = bs
        col.DisplayMember = "Model"
        col.ValueMember = "Key_Model"    '>>>>>For Example
    End Sub

Open in new window

0
 
angel7170Author Commented:
I tried this code with modifications but doesn't seem working. I have also attached the sreenshot of what I see in the model combo box...
Please assist.


Private Sub cmb_Category_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_Category.DropDown
        Try
            Dim Category As String = cmb_Category.Text
            Dim Manu As String = cmb_Manufacturer.Text
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            Dim bs As New BindingSource
            bs.DataSource = Me.TBLMODELBindingSource
            bs.DataMember = "MODEL"

            bs.Filter = ("MODEL like '" + Category + "'")

            Dim col As New ComboBox
            col = Me.cmb_Model

            col.DataSource = bs
            col.DisplayMember = "MODEL"
            'col.ValueMember = "MODEL"    '>>>>>For Example
        Catch ex As InvalidCastException

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Sub

    Private Sub cmb_Category_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_Category.DropDownClosed
        Dim Category As String = cmb_Category.Text
        Dim Manu As String = cmb_Manufacturer.Text
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim bs As New BindingSource
        bs.DataSource = Me.TBLMODELBindingSource
        bs.DataMember = "MODEL"

        bs.Filter = ("MODEL like '" + Category + "'")

        Dim col As New ComboBox
        col = Me.cmb_Model

        col.DataSource = bs
        col.DisplayMember = "MODEL"
        'col.ValueMember = "MODEL"    '>>>>>For Example

    End Sub

Open in new window

test.doc
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
just a note:
in your form load set :
Me.Combo1DataSet.EnforceConstraints = False  'Combo1DataSet is the name of your dataset in combobox1
Me.Combo3DataSet.EnforceConstraints = False  ''Combo2DataSet is the name of your dataset in combobox2

Also
"MyCombobox3TableName"  is the table or query ,the one you create the dataset which is bounded in combobox3


try it and you'll see ..it works fine...
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
try to use selected value with the value member and amke the filter as my code.
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
col.DisplayMember = "MODEL"
            'col.ValueMember = "MODEL"    ?? why the same?
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
try this

Private Sub cmb_Category_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_Category.DropDown
        Try
            Dim Category As String = cmb_Category.SelectedValue
            Dim Manu As  = cmb_Manufacturer.Text
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            Dim bs As New BindingSource
            bs.DataSource = Me.TBLMODELBindingSource
            bs.DataMember = "MODEL"

            bs.Filter = ("Model=" & Category) 

            Dim col As New ComboBox
            col = Me.cmb_Model

            col.DataSource = bs
            col.DisplayMember = "MODEL"
            'col.ValueMember = "MODEL"    '>>>>>For Example
        Catch ex As InvalidCastException

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

    End Sub

    Private Sub cmb_Category_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_Category.DropDownClosed
        Dim Category As String = cmb_Category.Text
        Dim Manu As String = cmb_Manufacturer.SelectedValue
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim bs As New BindingSource
        bs.DataSource = Me.TBLMODELBindingSource
        bs.DataMember = "MODEL"

       bs.Filter = ("Model=" & Category) 

        Dim col As New ComboBox
        col = Me.cmb_Model

        col.DataSource = bs
        col.DisplayMember = "MODEL"
        'col.ValueMember = "MODEL"    '>>>>>For Example

    End Sub

Open in new window

0
 
angel7170Author Commented:
There is no option for EnforseConstraints...My combo boxes are bound to Binding source.

Me.Combo1DataSet.EnforceConstraints = False  'Combo1DataSet is the name of your dataset in combobox1
Me.Combo3DataSet.EnforceConstraints = False  ''Combo2DataSet is the name of your dataset in combobox2
0
 
Éric MoreauSenior .Net ConsultantCommented:
have you checked my article?
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
did you try the alst post?
it works perfect on me.
@emoreau Could you please post a link?
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
@angel7170
Can you post both DisplayMember and ValueMember from ComboBox1 and 3?
0
 
Éric MoreauSenior .Net ConsultantCommented:
>>@emoreau Could you please post a link?
see post 33737131
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
OOOOhhhh ... sorry ...i didn't Scroll up the page...
0
 
John (Yiannis) ToutountzoglouInstructor Multiengine PilotCommented:
Slightly Close...@emoreau my post Works (Slightly Close to yours)...But Your Article is Perfect..The only thing i have to do is to quit the Question...
@angel7170 read this article..there is more analysis..and you'll understand better what is going on ...!!thanks @emoreau i will keep the code too...!!
0
 
angel7170Author Commented:
ok, thank you ..both. I didn't get a chance to read through the article...but will do so.. thanks again.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.