¿Por qué no hace efecto mi código en mi archivo?

Tengo el siguiente código con la finalidad de que evite que se venda la cantidad de un producto, mayor a la que se tiene en inventario.

ElseIf DLookup("[EXISTENCIA]", "MATERIALES", "[CLAVE] = '" & Me.CLAVE & "'") < Me.Cantidad Then 
MsgBox "NO HAY SUFICIENTE MATERIAL PARA COMPLETAR LA VENTA" & vbLf & vbLf & "Verifique Inventario...", vbExclamation, "Aviso"
Me. Undo

Espero puedan ayudarme, porque no me marca error, pero tampoco me da el resultado requerido...

2 respuestas

Respuesta
2

¿La única instrucción que tienes puesta es esa? Si es así deberías empezar con un if

Me explico, la instrucción If le dice si sucede esto haz... que unido a la instrucción elseif, que le dice, si no sucede lo anterior(lo del if) y se cumple esto otro, entonces haz... Pero lo primero que evalúa es el if, al no ponerlo ni sucede ni no sucede.

Yo lo pondría en el evento antes de actualizar del control Cantidad, como

If DLookup("[EXISTENCIA]", "MATERIALES", "[CLAVE] = '" & Me.CLAVE & "'") < Me.Cantidad Then 
MsgBox "NO HAY SUFICIENTE MATERIAL PARA COMPLETAR LA VENTA" & vbLf & vbLf & "Verifique Inventario...", vbExclamation, "Aviso"

docmd.cancelevent

end if

Así, antes de que puedas "confirmar" el valor que hayas puesto en Cantidad comprueba que no sea mayor que el valor de Existencias y en caso de que si sea, te pone el mensaje y el cursor se "queda" en el control Cantidad para que lo cambies.

Respuesta

Te diría que lo ejecutes paso a paso y cuando llegue a esa instrucción te fijes cuanto valen las dos variables en juego (el DLookup y Me. Cantidad) para ver si efectivamente está bien la comparación y está trayendo el resultado esperado

Salu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas