combobox
Publicado por giampier (4 intervenciones) el 24/01/2010 03:03:23
Buenas noches, favor nesesito su apoyo en este tema. el sofware en si debe conectar el campo proveedores a un combobox medienate un boton, en dicho combo escogere mi proveedor una vez hecho eso, en el segundo combo se cargaran automaticamente los datos del segundo campo productos de mi tabla access, una vez escoja el el producto que vende dicho proveedor en un label me mostrara el costo.
Todos los datos salen de una base.
base de datos: Prueba
tablas: proveedores, productos, unidades
campos: tabla proveedores: id (Autonumerico); proveedor(Texto)
campos: tabla productos: id(Autonumerico); id_proveedor(Texto); producto(Texto)
campos: tabla unidades: id_producto(Autonumerico); unidad(Texto)
ya tengo las dos cosas hechas; conecto mi combobox al campo de access mediante un boton escojo mi proveedor y si filtro los productos que vende dicho proveedor en el segundo combo AHORA LO QUE ME FALTA ES CONECTAR ESE SEGUNDO COMBO AL LABEL.
esta es la codificacion que uso:
Private base As New ADODB.Connection
Private tabla_proveedores As New ADODB.Recordset
Private tabla_productos As New ADODB.Recordset
Private Sub Combo1_Click()
Dim id_proveedor As Integer
With tabla_proveedores
If .State = 1 Then .Close
.Open "SELECT id FROM proveedores WHERE proveedor='" & Combo1.Text & "'", base, adOpenDynamic, adLockOptimistic
id_proveedor = .Fields(0)
End With
'RELLENAMOS EL SEGUNDO COMBO CON EL DATO SEGUN LA ID OBTENIDA
With tabla_productos
If .State = 1 Then .Close
.Open "SELECT producto FROM productos WHERE id_proveedor='" & id_proveedor & "'", base, adOpenDynamic, adLockOptimistic
encontrados = .RecordCount
Combo2.Clear
For i = 1 To encontrados
Combo2.AddItem .Fields(0)
.MoveNext
Next i
Combo2.Text = Combo2.List(0)
End With
End Sub
Private Sub Command1_Click()
With tabla_proveedores
If .State = 1 Then .Close
.Open "SELECT proveedor FROM proveedores", base, adOpenDynamic, adLockOptimistic
encontrados = .RecordCount
For i = 1 To encontrados
Combo1.AddItem .Fields(0)
.MoveNext
Next i
Combo1.Text = Combo1.List(0)
End With
End Sub
Private Sub Form_Load()
With base
.CursorLocation = adUseClient 'Somos clientes de la base de datos
' Abrimos la conexión para Bases de Datos de Office 2003
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\basededatos.mdb;Persist Security Info=False"
' Abrimos la conexión para Bases de Datos de Office 2007
Form1.Show 'Mostramos el formulario Login
End With
End Sub
favor su apoyo
Muchas gracias de antemano
Todos los datos salen de una base.
base de datos: Prueba
tablas: proveedores, productos, unidades
campos: tabla proveedores: id (Autonumerico); proveedor(Texto)
campos: tabla productos: id(Autonumerico); id_proveedor(Texto); producto(Texto)
campos: tabla unidades: id_producto(Autonumerico); unidad(Texto)
ya tengo las dos cosas hechas; conecto mi combobox al campo de access mediante un boton escojo mi proveedor y si filtro los productos que vende dicho proveedor en el segundo combo AHORA LO QUE ME FALTA ES CONECTAR ESE SEGUNDO COMBO AL LABEL.
esta es la codificacion que uso:
Private base As New ADODB.Connection
Private tabla_proveedores As New ADODB.Recordset
Private tabla_productos As New ADODB.Recordset
Private Sub Combo1_Click()
Dim id_proveedor As Integer
With tabla_proveedores
If .State = 1 Then .Close
.Open "SELECT id FROM proveedores WHERE proveedor='" & Combo1.Text & "'", base, adOpenDynamic, adLockOptimistic
id_proveedor = .Fields(0)
End With
'RELLENAMOS EL SEGUNDO COMBO CON EL DATO SEGUN LA ID OBTENIDA
With tabla_productos
If .State = 1 Then .Close
.Open "SELECT producto FROM productos WHERE id_proveedor='" & id_proveedor & "'", base, adOpenDynamic, adLockOptimistic
encontrados = .RecordCount
Combo2.Clear
For i = 1 To encontrados
Combo2.AddItem .Fields(0)
.MoveNext
Next i
Combo2.Text = Combo2.List(0)
End With
End Sub
Private Sub Command1_Click()
With tabla_proveedores
If .State = 1 Then .Close
.Open "SELECT proveedor FROM proveedores", base, adOpenDynamic, adLockOptimistic
encontrados = .RecordCount
For i = 1 To encontrados
Combo1.AddItem .Fields(0)
.MoveNext
Next i
Combo1.Text = Combo1.List(0)
End With
End Sub
Private Sub Form_Load()
With base
.CursorLocation = adUseClient 'Somos clientes de la base de datos
' Abrimos la conexión para Bases de Datos de Office 2003
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\basededatos.mdb;Persist Security Info=False"
' Abrimos la conexión para Bases de Datos de Office 2007
Form1.Show 'Mostramos el formulario Login
End With
End Sub
favor su apoyo
Muchas gracias de antemano
Valora esta pregunta


0