Visual Basic - combobox

Life is soft - evento anual de software empresarial
   
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:combobox

Publicado por ChidUng (9 intervenciones) el 24/01/2010 03:48:32
Hola!

Cuando elijas un producto del combo debes tambien recuperar su Clave o ID, esto es para poder buscar a travez de una consulta los datos de este Producto, entre ellos el precio para poder mostrar el dato que queremos

una vez que buscas el articulo o producto, haces:

LabelPrecio= "$" & format(RS!costo,"###,###,##0.00")

Ahora, que te recomiendo uses un control que te permita varias columas, tal como el MsflexGrid o el HericalFlexGrid. Para que carque en una sola consulta (loque haces al cargar los productos que vende ese proveedor) la clave del producto, el nombre del producto, el precio y/o demás datos que requieras posteriormente.

Espero haberte podido ayudar, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox

Publicado por Giampier (4 intervenciones) el 24/01/2010 07:23:30
ok muchas gracias..te entiendo, pero como recuerpo su id del pruducto?
me dices que debo incluir otra consulta dentro de esto???como hago? declaro otra variable??

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)
\\AQUI HAGO OTRA CONSULTA??DEBO GUARDARLO EN ALGUNA VARIABLE???\\
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
luego de hacer la busqueda.

realizo esto:
LabelPrecio= "$" & format(RS!costo,"###,###,##0.00") en el comboboxproducto_evento click verdad???
donde ###,###,##0.00 que es???

porfa ayudame creo que ya lo tengo casi solucionado...pero nesesito de tu ayuda,,,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox

Publicado por Chidung (44 intervenciones) el 25/01/2010 17:16:48
Si en el Evento click del segundo combo:

Select costo FROM Productos WHERE producto LIKE '%" & combo.text & "%' "

Y el resutado de la consulta la vacias en el label:

labelX.caption= format(rs!costo,"###,###,##0.00")

ESpero te sirva, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar