Cómo actualizo una consulta mediante VBA, para buscar el saldo de un producto mediante la función DLookup?
He estado trabajando un sistema para el control de mercancía. Tengo un formulario llamada despachos, el cual tiene un subformulario continuo llamado “DetalleDespachos”. En el que están los campos IdProducto, NombreProducto y CantidadSalida.
Cree una consulta llamada ProductosDisponibles en la que me muestra el saldo de cada producto (Según el campo IdProducto), y establecí una expresión llamada “SaldoDefinitivo”, la cual no es más que la suma de todos los ingresos menos el total de todos los despachos.
El problema es que he puesto el siguiente código en el evento después de actualizar del campo “CantidadSalida”, con el fin que no sea posible dar salida a una cantidad mayor a lo existente (según la consulta "ProductosDisponibles”)
If (DLookup("[SaldoDefinitivo]", "[ProductosDisponibles]", "Idproducto =" & Idproducto)) <= Me.CantidadSalida Then
MsgBox "No hay la cantidad suficiente para este despacho"
Cancel = True
Me.CantidadSalida.Undo
End If
La cosa es que me arroja como resultado de la búsqueda el valor no teniendo en cuenta la última salida realizada, por tanto me aparece mayor cantidad de producto. Siendo necesario actualizar el formulario oprimiendo la tecla F5, pero me manda al primer registro. Quiero que la consulta se actualice inmediatamente después de ingresar o modificar la cantidad despachada y realice la búsqueda (DLookup) inmediatamente después, para tener el valor exacto del saldo de ese producto.