DCount con variable en criterios

Espero puedan ayudarme con el siguiente código, pretendo que primero se evalúe si existen registros del participante, si no existen registros se ejecute la inserción y si ya existen registros solo se muestre un msgbox, pero tengo problema al usar la función DCount y querer contar los registros asociados al idParticipante ya que no puedo usar una constante sino una variable proviniente del cuadro de texto "elparticipante".

Gracias de antemano

Private Sub Comando25_Click()
Dim i As Date
Dim coincidencias As Integer

ClaveCurso = Me.ClaveCurso
idp = Me.elparticipante

coincidencias = DCount("*", "asistencias", "idParticipante=idp")
If coincidencias = 0 Then

For i = Me.fechaInicio To Me.FechaFin

CurrentDb.Execute "INSERT INTO asistencias(idParticipante,fecha,horas) VALUES (" & idParticipante & ",#" & Format(i, "mm/dd/yyyy") & "#,0)"
Next i
MsgBox "Asistencias Generadas correctamente", vbExclamation, "Atención"
Else
MsgBox "ya existen : " & coincidencias & " asistencias asociadas ", vbInformation, "Atencion"
End If

End Sub

Respuesta
2

Sería así:

coincidencias = DCount("*", "asistencias", "idParticipante=" & idp)

Y te faltaría declarar la variable idp

¡Gracias amigo!
Ya había intentado eso, pero cuando lo hago el error ahora es: el siguiente

Dime si entiendo mal pero tengo entendido que la función DCount crea una cadena de texto concatenando los argumentos dentro del paréntesis delimitando todo dentro de las comillas y al colocar la variable fuera de ellas se genera el error porque considera el INSERT INTO como parte de los argumentos o algo así, ¿no?

Y ya declare la variable idp también, gracias por recordármelo, aun me aparece el error que te mostré, gracias nuevamente la atención amigo!

Obviamente el error de la SQL "INSERT INTO" no tiene nada que ver con la sintaxis de la función DCount()

Tu error, creo, porque no soy adivino para conocer lo que tienes en tu formulario y BD, está en el valor que le asignas a la variable idp. Revísalo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas