Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: AG2016 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
-
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.