Autor Tema: Llenar combobox a partir de otro  (Leído 2006 veces)

0 Usuarios y 1 Visitante están viendo este tema.

AG2016

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Llenar combobox a partir de otro
« en: Enero 06, 2017, 03:41:40 pm »
    Buen día a todos, tengo una duda y se los agradecería si me pueden ayudar

  El problema es que no puedo llenar el segundo combobox según sea la selección del primero (el primer combo se llena con una tabla llamada "tienda") y el (segundo con una tabla llamada "pedidos_tiendas_enc") si yo selecciono una tienda en el primer combo debería de aparecerme automáticamente solo los pedidos que corresponden a esa tienda en el segundo combo, el codigo lo tengo en un modulo se los envio:


 Sub combotienda(ByVal cb As ComboBox) 'LLENA EL COMBO TIENDA

        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 COMBO PEDIDO SEGÚN 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 

el_trocha

  • Kilobyte
  • **
  • Mensajes: 62
  • Reputación: +1/-2
    • Ver Perfil
Re:Llenar combobox a partir de otro
« Respuesta #1 en: Febrero 22, 2017, 06:24:50 am »
A ver si puedo ayudarte con este poquito codigo, que es como lo haria yo:

EN EL MODULO PONDRIA 3 FUNCIONES:

*DECLARACIONES PUBLICAS

Public connection As OleDbConnection
Public oledbAdapter As OleDbDataAdapter
Public BBDD As String = System.AppDomain.CurrentDomain.BaseDirectory
Public ds As DataSet = New DataSet()

'FUNCION PARA CONECTARSE A LA BASE DE DATOS
Public Sub Conectar()

        Dim connetionString As String

        connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= RUTA DE TU BASE DE DATOS ".accdb;"
        connection = New OleDbConnection(connetionString)

        Try

            connection.Open()

        Catch ex As Exception

            MessageBox.Show("Failed to connect to data source")

        Finally


        End Try

End Sub

'FUNCION PARA DESCONECTARSE DE LA BASE DE DATOS
Public Desconectar

   connection.close()

end sub

'FUNCION QUE REALIZA LA BUSQUEDA QUE SE LE PASE EN EL STRING = CONSULTA

Public Sub Consulta(consulta As String)

        ds.Tables.Clear()
        ds.Dispose()

        oledbAdapter = New OleDbDataAdapter(consulta, connection)

        oledbAdapter.Fill(ds)

        oledbAdapter.Dispose()

        connection.Close()

End Sub

========================================================================================================
*EN EL FORMULARIO


'ESTE EVENTO SE EJECUTA CUANDO SE HACE CLICK EN EL COMBO DE LAS TIENDAS
Private Sub cbTiendas_Click(sender As System.Object, e As System.EventArgs) Handles cbExamen.Click

   'SQL PARA PASAR LA BUSQUEDA DE PEDIDOS SEGUN LA TIENDA SELECCIONADA
   sql="SELECT pedidos FROM pedidos WHERE tienda = " & cbTiendas.text
        'VACIAMOS EL COMBO QUE QUEREMOS LLENAR
   cbpedidos.item.clear()
        'CONECTAMOS A LA BASE DE DATOS
   conectar
   'REALIZAMOS LA CONSULTA DE LOS PEDIDOS POR TIENDA
   consultar(sql)
                'RECORREMOS LOS REGISTROS PARA CARGARLOS EN EL COMBOBOX
      for i = 0 to ds.table(0).rows.count-1
                        'CARGAMOS EL COMBO CON LOS RESULTADOS
         cbpedidos.items.add(ds.table(0).rows(i).item(0))      

      next i
   'NOS DESCONECTAMOS DE LA BASE D EDATOS
   desconectar

end sub

====================================================================================================

No se si es esto lo que necesitas.

Espero haberte ayudado.

Un saludo.