Como hago un inventario simple!

Antes que todo he leído tus respuestas y son de lo mejor, sobretodo la quediste de filtrar listas el 11/04/2002, excelente. Bueno mi problema es que necesito hacer un inventario simple, tengo las tablas y las consultas y quiero añadir en el formulario el filtro de listas, pero en el formulario frmSelector no me da la opción de avanzar en los registros, y ademas no se como puedo hacer que una vez que yo venda un producto me lo reste de las existencias, sera mucho pedir que me ayudaras o me guiaras en donde puedo encontrar la información. De antemano muchas gracias. Ojala me contestes porque he enviado la pregunta a otros expertos y creo que voy a morir esperando.

1 respuesta

1
Respuesta de
La primera pregunta no acabo de entenderla, cuando te refieres a avanzar por los registros, si no te importa matizar un poco como es la consulta que tienes hecha, estaré encantado de ver si puedo echarte una mano.
Para la otra cuestión, la de restar un producto de las existencias, tendrías que seguir el ejemplo basado en el formulario Pedidos de Neptuno.mdb modificada:
1º Crear una consulta de actualización basada en la tabla Productos. Vista en SQL quedaría así:
PARAMETERS ParamIdProducto Long, ParamQtyShipped Short;
UPDATE DISTINCTROW Productos SET Productos.UnidadesEnExistencia = [UnidadesEnExistencia]-[ParamQtyShipped]
WHERE (((Productos.IdProducto)=[ParamIdProducto]));
añadir en Parámetros los dos campos:
ParamIdProducto (Tipo de dato=Entero Largo)
ParamQtyShipped (Tipo de dato=Entero)
Guardar la consulta como Inventario
2º Si ya tienes un módulo hecho puedes pegar la siguiente función:
Function Inventario()
'funciona: aunque no acaba de convencer el rendimiento
Dim DB As Database
Dim Q As QueryDef
Set DB = CurrentDb()
Set Q = DB.QueryDefs("Inventario")
Q!ParamIdProducto = Forms!Pedidos![Subformulario Pedidos].Form![IdProducto]
Q!ParamQtyShipped = Forms!Pedidos![Subformulario Pedidos].Form![Cantidad]
Q.Execute
Q.Close
End Function
3º Ahora vamos a llamar a la función Inventario, para que se ejecute en el procedimiento de evento Al Salir de mi campo Cantidad de mi Subformulario Pedidos:
Private Sub Cantidad_Exit(Cancel As Integer)
Call Inventario
End Sub
Nota: en realidad es la función Inventario la que se encargará de ejecutar la consulta de actualización. Deberías prever algún método para evitar que durante la edición de un registro se pudiese ejecutar la función dos veces (estaríamos restando por duplicado). Una solución seria que llamásemos a la función cuando terminamos de editar el registro, en lugar de al salir del campo Cantidad. Eso ya lo dejo en tus manos.
Un cordial saludo
Raul
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje