CAlculo de la fecha de Vencimiento

Estoy realizando una BD en la que tengo varios campos

Fecha Inicio, Fecha Vencimento y plazo( años ), lo que necesito es que cuando cambie el plazo se me actualice la fecha de vencimiento según el plazo que le he puesto de manera que si pongo 2 ( años) la fecah de vencimento seria la fecha de inicio + 730 días y que el formato fuera fecha y si fuera posible que no me admitiera fechas de vencimiento inferiores a la actual mejos

2 Respuestas

Respuesta
1

Cuando un campo depende de otro(s) según una relación conocida no es conveniente guardar los dos, porque obliga a tener que actualizar uno cuando cambia el otro. Es mejor usar un campo calculado en la propia tabla o en una consulta.

Por otra parte, 1 año no tiene siempre 365 días, por lo que no es buena idea calcular el vencimiento como n veces 365 días. Hay funciones específicas para sumar períodos a una fecha, ya sean días, meses o años.

Por ejemplo, si tiene una tabla llamada Tabla1 con un campo Inicio (fecha) y un campo Plazo (numérico que indica número de años), podría crear una consulta que le diera esa información, además de la fecha de vencimiento con esta sintaxis:

SELECT 
Inicio, 
Plazo, 
DateAdd("yyyy", [Plazo], [Inicio]) AS Vencimiento
FROM Tabla1

La función DateAdd (o AgregarFecha) es la que le permite hacer cálculos, añadiendo períodos (ya sean días, meses, años, ...) a una fecha determinada.

Respuesta
1

Access tiene una función que suma periodos de tiempo, es DATEADD que permite añadir desde segundos a siglos y contempla el periodo AÑO.

No veo como si se desea calcular en base a una fecha (Inicio) un numero de años, meses, .. puede dar un dato inferior al de inicio con la excepción de restárselos en lugar de sumárselos (algo que se soluciona con la función ABS, que devuelve el valor absoluto)

Fecha de vencimiento = DateAdd("yyyy", Plazo-en-años, [fecha inicio])

BUenos días y gracias por su colaboración

Lo he intentado como me indica pero me sigue dando error

Private Sub Plazo_Exit(Cancel As Integer)
Me.FVto = DateAdd("yyy", [Plazo], [Fecha Inicio])
End Sub

Muchas Gracias por su ayuda

YYY no lo entiende como periodo = un año, son (tienen que ser) cuatro no tres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas