Problema con Listview

Hola, experto. Espero puedas ayudarme, soy algo novato. Estoy realizando una base de datos sobre una Tienda de abarrotes en Visual Basic 6.0 con Access y tengo el problema con un Listview.
Funciona de esta manera, por ser algo sencillo en lo que le incorporo lector de código de barras.
Tecleo la clave del producto en un Textbox, presiono un botón y me carga los datos, directamente de la base de datos, de la Tabla Inventario y los asigna al Listview.
Pero, ¿cómo puedo hacer la comparación de lo que hay en el Textbox con el Listview, de la columna Clave, para que cuando sea igual el producto, me lo sume a la misma columna de Cantidad, y me haga la multiplicación para asignarlo en la columna Importe, en el mismo renglón y cuando sea diferente me haga otra línea? Así como se ve abajo
Clave Descripción Cantidad Precio Unitario Importe
1 Sabritas 2 6.00 12.00
3 Agua ciel 1 10.00 10.00
5 Doritos 3 7.00 21.00
Nota: mi problema surge cuando yo quiero agregar más del mismo producto.
Siempre se estará multiplicando la Cantidad por el Precio Unitario, para asignarse en el Importe. ¿Cómo puedo lograr eso, también? Pues siempre son diferentes los productos y, en consecuencia, nuevos renglones.
¿Necesito algún tipo de arreglo, más variables o qué puedo utilizar para resolver eso?
De antemano, muchísimas; pero muchísimas gracias!

1 respuesta

Respuesta
1
Lo primero yo que tu optaría por lo simple
Cambiaría el listview por un control MSHFlexGrid
¿Por qué?... por que con este último, tiene la propiedad recordset
Así si estas consultando una tabla access, bastaría con
set MSHFlexGrid.recordset=turecordset
Para que los datos de la consulta sql pasen a la grilla.
Entiendo que usas lector para pasar nuevos artículos a la tabla inventario
Pues en ese caso la grilla simplifica el proceso, puedo que para localizar la coincidencia del id bastaría con realizar un recorrido ( bucle) por las filas de la grilla hasta dar con el id, luego ya identificada la fila de la grilla procedes a realizar las operaciones necesarias sobre la misma.
Para el bucle te sirve la instrucción
MSHFlexGrid1. TextMatrix(fila, columna)
En donde fila es el numero de fila de la grilla y columna obviamente la columna a evaluar, así esta instrucción te devuelve el contenido de la columna especifica dentro de la grilla, pasando flla a fila
también puedes utilizar operadores + * / - utilizando esta linea
MSHFlexGrid1.TextMatrix(fila, 2) = MSHFlexGrid1.TextMatrix(fila, 5) * MSHFlexGrid1.TextMatrix(fila, 7)
Así por ejemplo estas asignando un nuevo valor a la columna 2 multiplicando la col 5 con la 7
También es más sencillo a la hora de agregar los datos a la tabla, pues solo utilizas el bucle de recorrido de filas pasando a la tabla cada datos mediante recordset. Addnew

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas