¿Como escribir correctamente un insert into en access usando varias variables en values?

Tengo un problema con el siguiente código, pretendo que al hacer clic en un botón de comando se ejecute esta macro que toma los valores de fechaInicio y FechaFin de dos cuadros de texto del mismo formulario[InsFormCursoB], y que tome el valor idParticipante del subformulario [InsParticipantesSubformularioB], deseo generar registros independientes para cada día entre la fecha inicial y final, lo cual ya me funciona pero no consigo insertar los valores de idParticipante que proviene de un subformulario al ser elegido.

Espero no haber sido un poco claro en la duda.

Private Sub Comando20_Click()

Dim i As Date

idParticipante = Forms![InsFormCursoB].[InsParticipantesSubformularioB]![idParticipante].Value

For i = Me.fechaInicio To Me.FechaFin

CurrentDb.Execute "INSERT INTO asistencias(idParticipante,fecha,horas) VALUES ('idp',#" & Format(i, "mm/dd/yyyy") & "#,'0')"

Next i

End Sub

1 Respuesta

Respuesta
2

Es normal que no te funcione, porque lo que le estás diciendo (si las fechas inicio y fin son 30/12/17 y 31/12/17) es:

1º/ inserta en la tabla "asistencias", en los campos "idParticipante", "fecha" y "horas", los valores:"idp", 12/30/2017 y "0"

2º/ inserta en la tabla "asistencias", en los campos "idParticipante", "fecha" y "horas", los valores:"idp", 12/31/2017 y "0"

Con lo que te creará dos registros nuevos con los valores:

idp-----12/30/2017-----0

idp-----12/31/2017-----0

Suponiendo que tus campos se llamen realmente así ("idParticipante", "fecha" y "horas"", la SQL sería:

CurrentDb.Execute "INSERT INTO asistencias(idParticipante,fecha,horas) VALUES (" & idParticipante & ",#" & Format(i, "mm/dd/yyyy") & "#,0)"

Como supongo que tanto idParticipante como horas son números, los paso como números y no como textos, por lo que sobran las comillas simples.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas