Llenar campo con condición en el campo fecha

Estoy trabajando en un formulario que tiene un campo de tipo texto ("trimestre") y otro del tipo fecha. Necesito que el campo de tipo texto ("trimestre"), guarde, por ejemplo, el número "1" si el mes de la fecha ingresada está entre el 01 de Julio (mes 7) y el 31 de setiembre (mes 9), que sería el primer trimestre del año fiscal.
Debería establecer los valores "2", "3" y "4" para los restantes trimestres respectivamente.

He probado colocar en "Origen del control" del campo "trimestre" lo siguiente: ="1" Entre Mes([fecha]=7) Y Mes([fecha]=9), pero el resultado es "0" cuando ingreso una fecha como 12/08/2019 (mes 8), cuando debería dar como resultado "1". 

¿Alguna idea?

2 respuestas

Respuesta
1

Pruebe utilizando el procedimiento de evento Después de Actualizar del campo fecha con el siguiente código:

Le he dado al campo fecha el nombre ctlFecha y al campo del trimestre el nombre ctlTrimestre, ya usted ajustará de los meses para cada trimestre. Este es el resultado

Si lo quiere hacer como origen del control del campo debe definir una función que retorne el valor. Espero le sirva, seguro que hay más formas de hacerlo.

Que pena sobra la línea Dim int_trimestre AS Integer.

Si quiere aprender funciones sobre fechas visite esta página de Emilio, muy buena http://www.mvp-access.es/emilio/Access/Fechas.asp 

Respuesta
1

Si mal no recuerdo, la función parcfecha ( o DatePart, en inglés) ya devuelve por sí sola el trimestre, bastaría poner:

=Parcfecha("q";[fecha])

Igual tienes que cambiar el punto y coma por coma, si te da error de sintaxis

Si con "q" no te funciona, pon "t" (=Parcfecha("t";[fecha]) )

Además, releyendo tu pregunta, tal como te indico no te guardará el dato en la tabla (algo innecesario, por otra parte, pues siempre lo puedes sacar en una consulta o en un cuadro de texto independiente usando esa fórmula)

Y si lo quieres hacer con condicionales, por el motivo que sea, sería así:

=Siinm(Mes([Fecha])<4,1, Siinm(Mes([Fecha])<7,2,Siinm(Mes([Fecha])<10,3,4)))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas