none
Como llenar combobox según seleccion del primero

    Pregunta

  •      Por favor si alguien puede ayudarme con esto,

      tengo dos combobox y quiero que el segundo se llene según selección del primero, el primero se llena con tiendas y el segundo debería de llenarse con los pedidos que corresponden a la tienda seleccionada. para esto uso dos tablas en la base de datos, el primero si lo puedo llenar sin problemas la cosa es el segundo, el código esta en un modulo se los envio:

        Sub combotienda(ByVal cb As ComboBox) 'llena el combobox tiendas

            Try
                consulta = New OleDbCommand("select * from tiendas", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("tienda"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try
        End Sub

        Sub combopedido(ByVal cb As ComboBox) 'llena el combobox pedido segun tienda

            Try
                consulta = New OleDbCommand("select pedido from pedidos_tiendas_enc where site= '" & frmvalidacion.cbotiendas.Text & "'", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("pedido"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try



        End Sub
        End Module  

          
    martes, 10 de enero de 2017 17:35

Respuestas

  • Hola,una consulta utilzzas ACCESS como base de datos?

    te recomiendo leer este artículo

    http://ltuttini.blogspot.pe/2010/03/winforms-combobox-anidados.html



    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    • Editado Augusto1982 martes, 10 de enero de 2017 17:37
    • Marcado como respuesta AG2017 martes, 10 de enero de 2017 19:00
    martes, 10 de enero de 2017 17:36
  •      Por favor si alguien puede ayudarme con esto,

      tengo dos combobox y quiero que el segundo se llene según selección del primero, el primero se llena con tiendas y el segundo debería de llenarse con los pedidos que corresponden a la tienda seleccionada. para esto uso dos tablas en la base de datos, el primero si lo puedo llenar sin problemas la cosa es el segundo, el código esta en un modulo se los envio:

        Sub combotienda(ByVal cb As ComboBox) 'llena el combobox tiendas

            Try
                consulta = New OleDbCommand("select * from tiendas", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("tienda"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try
        End Sub

        Sub combopedido(ByVal cb As ComboBox) 'llena el combobox pedido segun tienda

            Try
                consulta = New OleDbCommand("select pedido from pedidos_tiendas_enc where site= '" & frmvalidacion.cbotiendas.Text & "'", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("pedido"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try



        End Sub
        End Module  

          

    hola... tengo una duda pero veamos si te puedo ayudar..

    si accedes directo al combo del formulario validación, porque no haces lo mismo para el combo que vas a llenar??

        Sub combopedido() 'llena el combobox pedido segun tienda
            Try
                consulta = New OleDbCommand("select pedido from pedidos_tiendas_enc where site= '" & frmvalidacion.cbotiendas.Text & "'", conexion)
                respuesta = consulta.ExecuteReader
                While respuesta.Read
                    frmvalidacion.cbPedidos.Items.Add(respuesta.Item("pedido")) '<<= llamas directo al combo, asumiendo que se llama cbPedidos 
                End While
                respuesta.Close()
            Catch ex As Exception
            End Try
        End Sub

    o por el contrario, prueba tu funcion cambiando solo en el encabezado el byval por byref

      Sub combopedido(ByRef cb As ComboBox) 'llena el combobox pedido segun tienda

    espero te sirva, me comentas como te va.

    • Marcado como respuesta AG2017 martes, 10 de enero de 2017 19:02
    martes, 10 de enero de 2017 17:52

Todas las respuestas

  • Hola,una consulta utilzzas ACCESS como base de datos?

    te recomiendo leer este artículo

    http://ltuttini.blogspot.pe/2010/03/winforms-combobox-anidados.html



    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    • Editado Augusto1982 martes, 10 de enero de 2017 17:37
    • Marcado como respuesta AG2017 martes, 10 de enero de 2017 19:00
    martes, 10 de enero de 2017 17:36
  • gracias por tu respuesta, como base de datos utilizo SQL.

    vi el articulo pero lo que entendí es que tengo que usar el evento selectionChangeCommitted??


     
    martes, 10 de enero de 2017 17:52
  •      Por favor si alguien puede ayudarme con esto,

      tengo dos combobox y quiero que el segundo se llene según selección del primero, el primero se llena con tiendas y el segundo debería de llenarse con los pedidos que corresponden a la tienda seleccionada. para esto uso dos tablas en la base de datos, el primero si lo puedo llenar sin problemas la cosa es el segundo, el código esta en un modulo se los envio:

        Sub combotienda(ByVal cb As ComboBox) 'llena el combobox tiendas

            Try
                consulta = New OleDbCommand("select * from tiendas", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("tienda"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try
        End Sub

        Sub combopedido(ByVal cb As ComboBox) 'llena el combobox pedido segun tienda

            Try
                consulta = New OleDbCommand("select pedido from pedidos_tiendas_enc where site= '" & frmvalidacion.cbotiendas.Text & "'", conexion)
                respuesta = consulta.ExecuteReader

                While respuesta.Read
                    cb.Items.Add(respuesta.Item("pedido"))
                End While
                respuesta.Close()

            Catch ex As Exception

            End Try



        End Sub
        End Module  

          

    hola... tengo una duda pero veamos si te puedo ayudar..

    si accedes directo al combo del formulario validación, porque no haces lo mismo para el combo que vas a llenar??

        Sub combopedido() 'llena el combobox pedido segun tienda
            Try
                consulta = New OleDbCommand("select pedido from pedidos_tiendas_enc where site= '" & frmvalidacion.cbotiendas.Text & "'", conexion)
                respuesta = consulta.ExecuteReader
                While respuesta.Read
                    frmvalidacion.cbPedidos.Items.Add(respuesta.Item("pedido")) '<<= llamas directo al combo, asumiendo que se llama cbPedidos 
                End While
                respuesta.Close()
            Catch ex As Exception
            End Try
        End Sub

    o por el contrario, prueba tu funcion cambiando solo en el encabezado el byval por byref

      Sub combopedido(ByRef cb As ComboBox) 'llena el combobox pedido segun tienda

    espero te sirva, me comentas como te va.

    • Marcado como respuesta AG2017 martes, 10 de enero de 2017 19:02
    martes, 10 de enero de 2017 17:52
  • Hola ricardo, probe cambiando a Byref pero nada, algo que no les comente es que el siempre me trae un solo pedido pero asi cambie la tienda sigue mostrando el mismo numero de pedido, asi es como llamo a mi codigo que llena el combo: 

       Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conectar()
            combotienda(cbotiendas) 'nombre del primer combo
            combopedido(cbopedidos) 'nombre del segundo combo


        End Sub
    End Class


    martes, 10 de enero de 2017 18:06