Restar tiempo a una fecha y asignar el valor a un campo de un formulario ACCESS

Intento crear una macro para que asigne un valor de fecha a un campo del formulario, que sea siempre un año anterior, ejemplo fecha_actual =01/03/2012. Quiero que al campo fecha_actual2 del mismo formulario se asigne el valor 01/03/2011. Para eso intento crear una macro que se ejecutará al actualizar el valor del campo fecha_actual. Esta información se usará en una consulta. Uso la función AddData ("yyyy";-1;[Formularios]![Formulario1]![fecha_actual]) (en español AgregFecha....). Pero cuando gravo la macro y la vuelvo a abrir, me ha modificado el apartado "yyyy" y me ha puesto diversas comillas quedando """yyyy""", con el resultado que la macro da error. He intentado cambiarlo por tilde en lugar de comillas, ' por ", pero también da error, y diversas opciones, sin comillas, cambiando el separador ; por , Etc., pero siempre da error, porque lo modifica al guardar y volver a abrir la macro. La opción rápida es restar 365, pero los años bisiestos da una fecha incorrecta.

1 respuesta

Respuesta
1

Si estás usando la función en español (AgregFecha), tienes que cambiar "yyyy" por "aaaa", que es la sintaxis correcta para referirse al año.

Además, la función es DateAdd y no AddData.

Si en vez de macro usas VBA, el código para el procedimiento de evento sería:

Private Sub fecha_actual_AfterUpdate()

if IsNull(Me.fecha_actual) Then Exit Sub

Me.fecha_actual2 = DateAdd("yyyy", -1, Me.fecha_actual)

End Sub

Muchas gracias, funciona perfectamente, el error era la definición del período año, en inglés o en español.

Ahora ya me funciona la consulta para períodos coincidentes en años consecutivos que necesitava.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas