En que evento validar un campo de fecha

Tengo un campo en un formulario que pertenece a una tabla. El campo es de tipo fecha y esta se rellena por defecto con la fecha del día. Como existe la posibilidad de modificarla, quiero validarla contra otra fecha que guardo en otra tabla.

La cuestión es que si lo hago en el evento "al cambiar", el valor aun no ha cambiado y si lo hago en el evento "al salir", como es el último campo de un formulario, aunque me hace la validación correcta y me manda el mensaje, termina pasando al siguiente campo que pertenece ya a un subformulario.

Pego el código para ver si lo puedo aclarar un poco mejor.

Private Sub FEC_FACTURA_Exit(Cancel As Integer)
    Dim auxfechafactura As Date
    ' RECUPERAMOS EL UNICO REGISTRO DEL IDENTIFICADOR DE FACTURAS PARA COMPROBAR LA FECHA
    auxfechafactura = DLookup("[ULTIMA-FECHA-FACTURA]", "[TAB-ID-FACTURAS]", "[ID] > 1")
    If auxfechafactura > [FEC-FACTURA].Value Then
      MsgBox ("La Fecha no puede ser anterior a la última factura emitida " & [auxfechafactura] & "       "), vbCritical, "OK"
      Me.[FEC-FACTURA].SetFocus
    End If
End Sub

La idea es que haga la validación y no permita continuar hasta que no se solucione el error.

1 Respuesta

Respuesta
2

Hazlo en "Antes de actualizar" o "Después de actualizar".

Si lo haces antes, y el valor no es válido, si pones cancel=true después de la validación no te dejará seguir hasta que pongas una fecha válida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas