Access - Cómo sumar a un campo tipo FECHA una cantidad de meses dada

 
Vista:

Cómo sumar a un campo tipo FECHA una cantidad de meses dada

Publicado por Apotema (6 intervenciones) el 15/03/2016 14:01:03
Buenas,
me surge la siguiente duda: en un formulario, tengo un cuadro combinado cuyas opciones son '3' o '6' (meses). Al seleccionar una de las 2 opciones anteriores, quiero que en un campo tipo fecha del mismo formulario aparezca una fecha resultado de sumar a una fecha dada (almacenada en un campo anterior) + los meses escogidos en el cuadro combinado anterior, es decir:

FechaSeguimiento = FechaInspeccion + 3 o 6 meses

Ejemplo:
FechaInspeccion = 05/06/2020
CuadroCombinadoMeses = 6
FechaSeguimiento = 05/12/2020

Creo que sé por donde van los tiros, pero como no sé nada de SQL la función/rutina que he escrito está mal (obviamente). Adjunto pongo lo que me "inventé" (me refiero a los argumentos):

Private Sub segCC_AfterUpdate()
FechaSeg.Value = DateAdd(m, segCC.Value, FechaIns.Value)
End Sub

segCC sería el CuadroCombinadoMeses
FechaSeg sería el texto tipo fecha FechaSeguimiento
FechaIns es la FechaInspeccion (introducida con anterioridad)

Gracias
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Cómo sumar a un campo tipo FECHA una cantidad de meses dada

Publicado por Enrique Heliodoro (1664 intervenciones) el 15/03/2016 16:07:42
Una función no es una SQL, además esa función trabaja también como origen de datos de un cuadro de texto (lo que invalida el comentario).

Lo que hay que hacer es leer 'la letra pequeña' y fijarse en los ejemplos, por ejemplo si dice que 'un parámetro es de texto' se le tiene que pasar tal cual (una variable de texto o un texto entre comillas)

FechaSeg.Value = DateAdd("m", segCC.Value, FechaIns.Value)

El segundo es un numero ... no precisa marcadores
El tercero es una fecha (y si el campo del formulario tiene por origen un campo tipo fecha de una tabla, es un dato correcto)

Ahora bien ... yo lo escribiría correctamente (poco trabajo me cuesta hacerlo una vez y Access lo agradecerá cada vez que lo utilice)
Me.FechaSeg = DateAdd("m", Me.segCC, Me.FechaIns)

El 'Me.' es la referencia al formulario actual, cuando busque al objeto lo buscara en los objetos del formulario (no entre las variables y resto de la aplicación)
Lo de 'value' ... es la opción por defecto y por ello no es indispensable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar