Campo Calculado con Condición

Llevo varios días luchando con el Access, le explico mi problema a ver si me puede ayudar:
Tengo 4 campos, todos con formato fecha,
A, B y C: Son campos a llenar por el usuario, no importa que fecha introduzca
El Campo DE, es un campo calculado que devolvería la fecha actual del sistema, SOLO SI cumple la condición de que los campos A, B y C, la fecha que se les introdujo son menos de 180 días anteriores a la fecha actual del sistema.
Si alguno de los campos su fecha es mayor que 180 días anteriores a la fecha del sistema, el campo calculado (D) quedaría empty hasta que se cumpla la condición, por tanto estoy tratando esto.
En las propiedades del Campo D, pongo como Regla de Validación la siguiente sintaxis y quisiera que me la corrigieras no vaya a ser que este poniendo algo que este mal y no me de cuenta, o no sea en Reglas de Validación donde deba poner esta sentencia,
=IIF ([A] > Fecha()-180) and (>Fecha()-180) and ([C] >Fecha()-180), Fecha())
Si (Campo A) es menor que la (fecha actual menos 180 días) y Campo B y Campo C, lo mismo, entonces me tendría que devolver la fecha actual del sistema, esto es en teoría lo que quisiera expresar, pero hay algo que no me funciona o no me doy cuenta, no se si la sintaxis es la correcta, el error que me da es el siguiente:
"La Expresión contiene una función con un número incorrecto de argumentos"

1 respuesta

Respuesta
1
¿Lo quieres poner en los campos de la propia tabla o en un formulario?
Realmente el Campo DE está en el formulario, es decir un campo calculado, pero leyendo su pregunta, creo que lo más sensato sería agregar ese campo a la tabla, porque después me haría falta para generar reportes, entonces como hacer para que el Campo DE (al cual supuestamente debo bloquear para que el user no pueda escribir ahí), ya agregado a la tabla, me devuelva el valor Fecha () si cumpliera la condición de que los Campos A, ¿B y C son menor que 180 días a la fecha del día?
En las propiedades del cuadro de texto CampoD pones bloqueado: Sí y Punto de tabulación: No
En el evento Al perder el enfoque del cuadro de texto último que llenes (me refiero a los campos A, B y C) pones el código:
If DateDiff("d",Form!CampoA,Date())<180 and DateDiff("d",Form!CampoB,Date())<180 and DateDiff("d",Form!CampoC,Date())<180 then
Form!CampoD.Value=Date()
End if
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas