Regla de validación en tabla ACCESS

Tengo una tabla en Access que voy rellenado, en
dicha tabla hay un campo "ID" de tipo autonumérico y otro campo llamado
"FECHA_CREACION" de tipo FECHA donde le he puesto como valor predeterminado
la facha de hoy "Ahora()" para que cuando vaya rellenado los otros
diferentes campos del registro se me guarde la fecha y hora de alimentación del Registro.

Lo que quiero hacer es crear una regla de validación en el campo
"FECHA_CREACION" de la tabla para que el valor de dicho campo sea siempre >= al valor del mismo campo pero del registro anterior.

O lo que es lo mismo, el valor del campo "FECHA_CREACION" sea siempre
>= al valor del mismo campo pero del registro anterior con "ID" = "ID-1"

Tengo entendido que tengo que utilizar una función DLookUp.

No se como hacer referencia a un registro anterior en Access.

1 Respuesta

Respuesta
1

Para crear una regla de validación debes utilizar una función que devuelva VERDAERO O FALSO. Si no sabes SQL puedes utilizar las funciones dmax() y dblookup() ejemplo,

Copia este código en un módulo nuevo y lo guardas.

Public Function validafecha(mFecha as date) as Booleam

Dim lnID as long

Dim dFecha as date

'Puedes validar antes la fecha pasada como parámetro con ISDATE() si lo deseas

lnID=Dmax("[ID]","NOMBRETABLA")

dFecha=DLookup("[FECHA_CREACION]","NOMBRETABLA","ID=" & lnID)

IF FECHA_CREACION>=dFecha then

MsgBox "Error en la fecha",vbExclamation,"Error"

validafecha=FALSE

ELSE

validafecha=TRUE

ENDIF

End Function

Observa que primero almaceno en la variable lnID el valor del último registro obtenido con la función dmax(), después almaceno en la variable dFecha la fecha de este último registro. Esta fecha es la que debes validar sobre el campo FECHA_CREACION. Prueba haber si te funciona. No olvides cambiar NOMBRETABLA por el nombre de tu tabla, es más efectivo validar la fecha sobre un formulario en le evento "Antes de Actualizar", igualmente te debe servir la función Me gustaría saber de que país haces la consulta.

Hola,

muchas gracias por tu respuesta, voy a probarla y te digo.

NB: la consulta la hago desde Marruecos

Ya respondida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas