Necesito insertar fechas múltiples en una agenda de anotaciones.

Dispongo de un Formulario dos he de insertar en una Agenda anotaciones anuales en varios años consecutivos.

Esta es la rutina donde le doy los parámetros:

Ejercicios: Nº Años a insertar

Concepto: Concepto de la anotación

Inicial: Fecha inicial comienzo anotación

For b = 1 To Ejercicios
CurrentDb.Execute "INSERT INTO [(F) DIETARIO TAREAS] (HoraTarea,FechaTarea,Observaciones) VALUES ('9',#" & Format(DateAdd(yyyy, b, Me.[Inicial]), "mm/dd/yyyy") & "#,concepto)"
Next b
Me da error de sintaxis y no se donde puede estar el fallo en la inserción

Os agradecira muchisimo si puedieseis ayuarme y decirme como he de rectificar la sintaxis.

Gracis y un saludo

1 Respuesta

Respuesta
1

Si el campo HoraTarea es de tipo Fecha/Hora, no le puedes pasar un valor de texto como estás haciendo ('9'), sino que tiene que ser un valor de tipo fecha/hora

Además, el valor para el campo Observaciones, al ser de texto, ha de ir entre comillas.

Por ejemplo:

CurrentDb.Execute "INSERT INTO [(F) DIETARIO TAREAS] (HoraTarea,FechaTarea,Observaciones) VALUES (#09:00:00#,#" & Format(DateAdd(yyyy, b, Me.[Inicial]), "mm/dd/yyyy") & "#,'concepto')"

¿Cómo estas?.

He probado el colocar la inserción de esta manera y me da: error 5 en tiempo de ejecución. Argumento o llamada a procedimiento no valida.

¿Qué crees que puede ser?.

No lo sé.. ¿De qué tipo son estos campos: HoraTarea, FechaTarea, Observaciones?

Los campos son:

Fecha Tarea: Fecha/hora

Hora Tarea: Numero

Observaciones: Texto Corto

Ya vi el error, te faltan las comillas en la función DateAdd para el primer parámetro:

CurrentDb.Execute "INSERT INTO [(F) DIETARIO TAREAS] (HoraTarea,FechaTarea,Observaciones) VALUES (#09:00:00#,#" & Format(DateAdd("yyyy", b, Me.[Inicial]), "mm/dd/yyyy") & "#,'concepto')"

Hola.

Me funciona bien, solo que las observaciones, no me las pasa, me inserta la palabra concepto y no el contenido que hay en el campo observaciones

Eso es porque en tu fórmula original no la tenías vinculada a un campo de tu formulario, sino que le estabas pasando la cadena "concepto", por eso te la dejé así.

Para que te coja el campo, has de referenciarlo, como haces con la fecha:

CurrentDb.Execute "INSERT INTO [(F) DIETARIO TAREAS] (HoraTarea,FechaTarea,Observaciones) VALUES (#09:00:00#,#" & Format(DateAdd("yyyy", b, Me.[Inicial]), "mm/dd/yyyy") & "#,'" & [Concepto] & "')"

O como se llame el campo que quieres pasar, si no es Concepto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas