Si fech real no nulo entonces crear nuevo reg donde fprevist es fech real mas frec

Soy nueva en el foro.

Dudilla. ¿Cómo tengo que hacerlo?

Estoy generando un plan de mantenimiento de maquinaria y me gustaría que una vez realizada una tarea se generara una nueva fecha prevista, p.e. Para el año siguiente,

Una tabla en la que se dispone de 5 columnas:
Id, frec, fprevist, tarea, freal
Es decir id, frecuencia, fecha prevista, tarea y fecha real
Tarea y frecuencia tendrán un valor constante
Lo que quiero hacer es que cuando fecha real está
cumplimentada, se genere un nuevo registro en el que la fecha prevista sea la
fecha real del registro anterior más la frecuencia
Ejemplo
Id1
Frecuencia 356
Fprevista: 01/01/13
Tarea revisar pistones
Fecha real: 01/01/13
Id2
Frecuencia 356
Fprevista: 01/01/1
Tarea revisar pistones
Fecha real:

1 Respuesta

Respuesta
1

Perdona que haya tardado en responderte.

Para lo que quieres hacer has de utilizar la función DateAdd, te quedaría así:

fecha prevista = DateAdd("d", frecuencia, fecha real)

Pero si los tiempos son meses, o años, es mejor utilizar otros valores, ten en cuenta que si hay un año bisiesto, la fecha se va a desplazar, o si es en el caso de meses, la diferencia entre 28, 29, 30 o 31 días puede hacer que se desplace. En esos caso se emplea la misma función, cambiando el intervalo ("d") y poniendo el número de intervalos.

Si es mensual quedaría:

fecha prevista = DateAdd("m", 1, fecha real)

anual:

fecha prevista = DateAdd("yyyy", 1, fecha real)

...

Etc.

En la ayuda viene muy bien explicado.

Hola Salva,

El problema es que lo que necesito es que la fecha real que toma para calcular la fecha prevista sea la del registro anterior.

La expresión que me indicas coge la fecha real del mismo registro.

Es decir en id=1, si la fecha real no está en blanco, entonces crea un nuevo registro (Id=2) en el que la fecha prevista es la fecha real del registro anterior más la frecuencia que tendrá el mismo valor en todos los registros a no ser que la cambie explícitamente.

Gracias por tu paciencia

Lo que quieres es un poco más complicado, y requiere que sepas algo de programación en VBA y SQL para que entiendas lo que te ponga y lo puedas aplicar a tu base de datos.

Si tienes un botón, en el evento click tienes que hacer la verificación de la fecha y agregar el nuevo registro:

If IsDate(Me.FechaReal) Then

FechaPrevista= DateAdd("d", Intervalo",FechaReal)

MiSQL = "INSERT INTO Tabla (ListaCamposTabla) SELECT (ListaCampoFormulariosModificada)

CurrentDb.Execute MiSQL

End If

Donde ListaCamposTabla es la lista de campos de la tabla excepto el campo autonumérico.

Y ListaCampoFormulariosModificada es la lista de campos del formulario menos el campo de la Fecha Prevista, que lo calculas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas