none
Filtro de Combos anidados RRS feed

  • Pregunta

  • Hola les hago una consulta , estoy haciendo una aplicacion en la cual selecciono de un combo1 un equipo

    y en el resto de los combos me deberia permitir seleccionar en cada uno un jugador distinto que pertenezca a ese equipo. 

    Logre hacerlo con uno pero cuando quiero replicar en otros combos estos me toman todos el mismo valor 

    Agradezco su ayuda

    Codigo

    Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            comm.CommandType = CommandType.Text
            comm.CommandText = "select Nombre from Players where Equipo='" & ComboBox1.SelectedValue.ToString & "'"

            Dim adapter As OleDb.OleDbDataAdapter
            adapter = New OleDb.OleDbDataAdapter(comm)
            Dim dtb As New DataTable
            adapter.Fill(dtb)
            jnl1.DataSource = dtb (esto es el combo del primer jugador)
            jnl1.DisplayMember = "Nombre"
            jnl1.ValueMember = "Nombre"
            Dim adapter2 As OleDb.OleDbDataAdapter
            adapter2 = New OleDb.OleDbDataAdapter(comm)
            Dim dtb2 As New DataTable
            adapter.Fill(dtb2)
            jnl2.DataSource = dtb (Combo que en teoria seria de otro jugador )
            jnl2.DisplayMember = "Nombre"
            jnl2.ValueMember = "Nombre"

    • Cambiado Enrique M. Montejo viernes, 18 de septiembre de 2015 9:04 Pregunta relacionada con controles de Windows Forms.
    martes, 15 de septiembre de 2015 22:55

Todas las respuestas


  • Logre hacerlo con uno pero cuando quiero replicar en otros combos estos me toman todos el mismo valor 


    Codigo

    Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            comm.CommandType = CommandType.Text
            comm.CommandText = "select Nombre from Players where Equipo='" & ComboBox1.SelectedValue.ToString & "'"

            Dim adapter As OleDb.OleDbDataAdapter
            adapter = New OleDb.OleDbDataAdapter(comm)
            Dim dtb As New DataTable
            adapter.Fill(dtb)
            jnl1.DataSource = dtb (esto es el combo del primer jugador)
            jnl1.DisplayMember = "Nombre"
            jnl1.ValueMember = "Nombre"
            Dim adapter2 As OleDb.OleDbDataAdapter
            adapter2 = New OleDb.OleDbDataAdapter(comm)
            Dim dtb2 As New DataTable
            adapter.Fill(dtb2)
            jnl2.DataSource = dtb (Combo que en teoria seria de otro jugador )
            jnl2.DisplayMember = "Nombre"
            jnl2.ValueMember = "Nombre"

    Amigo, lo que quieres es que cuando elijas el equipo se cargue el listado de los jugadores en diferentes combobox?

    si es así, tu código a simple vista debería de funcionar, pero según yo, no habría necesidad de instanciar mas de un DataTable, ya que puedes asignar mismo datatable a cuanto combobox tengas en tu form (Si es que lo que quieres lograr).

    prueba con este código.

    Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            comm.CommandType = CommandType.Text
            comm.CommandText = "select Nombre from Players where Equipo='" & ComboBox1.SelectedValue.ToString & "'"
    
            Dim adapter As OleDb.OleDbDataAdapter
            adapter = New OleDb.OleDbDataAdapter(comm)
            Dim dtb As New DataTable
            adapter.Fill(dtb)
            jnl1.DataSource = dtb (esto es el combo del primer jugador)
            jnl1.DisplayMember = "Nombre"
            jnl1.ValueMember = "Nombre"
           
            jnl2.DataSource = dtb (Combo que en teoria seria de otro jugador )
            jnl2.DisplayMember = "Nombre"
            jnl2.ValueMember = "Nombre"

    Si la solución te sirve vota por favor.


    Saludos desde Chile.

    • Propuesto como respuesta Karen Malagón jueves, 17 de septiembre de 2015 17:51
    miércoles, 16 de septiembre de 2015 19:41