Uso de filtro en cláusula WHERE

Tengo una aplicación de punto de venta, hecha en Access 2003, que he terminado de elaborar y sólo me queda por afinar el stock de los productos, para eso desarrollé un código mediante VB. Comentarte que en un principio traté de hacer una suma como sigue: Stock = compras - (ventas + retiros por dueño) en una consulta, para calcular el Stock pero, si uno de los datos, ventas por ejemplo, de un determinado producto no se ha efectuado la consulta resulta sin datos para ese producto, lo que es ireal.
Tengo una tabla de Productos donde uso el código EAN13, como identificador único de cada producto, del tipo de datos Número Doble.
En el formulario detalle de ventas y detalle de retiros hay un campo denominado CódigoProducto, que es el que recibe el código capturado por el Lector de código de barras. Entonces lo que quiero es que cada vez que es evende o retira un determinado producto, éste se actualice en la tabla Productos. Hice el siguiente código y me arroja el siguiente mensaje "No coinciden tipos de datos". He revisado que los datos sean del mismo tipo también he navegado por Internet pero, nada. Si tienes la experiencia de algo similar te lo agradecería desde ya.
Te pongo el código:
Private Sub CódigoProducto_AfterUpdate()
Dim Filtro As String
Dim UC As Long   'Unidades compradas
Dim UV As Long   'Unidades vendidas
Dim UR As Long   'Unidades retiradas por dueño
Dim SQL As String
Dim datofilt As Double
Filtro = "CódigoProducto = " & Me!CódigoProducto
datofilt = Val(CDbl(txtFiltro))
UC = Nz(DSum("UnidadesCompradas", "CompradeProductos", Filtro), 0)
UV = Nz(DSum("Cantidadventas", "DetalledeVentas", Filtro), 0)
UR = Nz(DSum("Cantidadretiros", "DetalledeRetiros", Filtro), 0)
Stockfísico = ((UC) - (UV + UR))
SQL = "UPDATE Productos SET Sock = Stockfísico WHERE Productos.CódigoProducto = datofilt;"
DoCmd.RunSQL SQL
End Sub

1 Respuesta

Respuesta
Disculpa la tardanza
Fíjate si haces mención al campo de la tabla o al cuadro de texto en donde tomas el valor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas