Problema con vba y sql

Tengo el siguiente código:
SQL = "SELECT Colaborador FROM Cursos_Comunicados WHERE (Obligatoria)= True AND (Fecha_Comunicacion)= Forms.[Cursos_Comunicados].[Texto50]"
    RS = CurrentDb.OpenRecordset(SQL)
    RS.MoveFirst
    Do While Not RS.EOF
        If RS!Colaborador <> var Then
            var = RS!Colaborador
            DoCmd.OpenReport "Aviso_Visita_Obligatoria", acViewPreview, , Colaborador = var
        End If
            RS.MoveNext
    Loop
Me da el siguiente error: "Se ha producido el error 3061 en tiempo de ejecución. Pocos parámetros, se esperaba 1"

1 respuesta

Respuesta
1
Suponiendo que ese código se ejecuta desde el formulario Cursos_Comunicados y teniendo en cuenta de que las fechas deben ir entre almohadillas y en formato americano:
SQL = "SELECT Colaborador FROM Cursos_Comunicados WHERE Obligatoria= True AND Fecha_Comunicacion = #" & Format(Me!Texto50, "mm/dd/yyyy") & "#"
Prueba y cuentas
Xavi
Parece que esa parte funciona, ahora tengo problema parece con la siguiente linea:
DoCmd.OpenReport "Aviso", acViewPreview, , Colaborador = "&var&"
Me parece que es un problema de sintaxis al pasarle el criterio al informe, pero llevo ya un rato sin verlo.
Gracias de antemano
"Colaborador=" & var
Ahora me dice:
Se ha producido el error 3075 en tiempo de ejecución.
Error de sintaxis (falta operador)en la expresión de consulta 'Colaborador= fulano'
Si fulano es, como parece, un texto, debes ponerlo entre comillas (o apostrofes)
"Colaborador = " & Chr(34) & var & Chr(34)
Tambien podrias utilizar esta sintáxis (la de los apostrofes)
"Colaborador = '" & var & "'"
Pero daría problemas su el fulano se llamae fu'lano ;-)
Lo que he puesto en el mensaje anterior es el error que me da, lo de "fulano" era para omitir información personal.
Lo que necesito es pasarle en la variable "var" el valor del colaborador para que filtre el informe por ese valor. var es un string.
Gracias y un saludo
"Colaborador = " & Chr(34) & var & Chr(34)
¿Lo has probado? Porque debería funcionar...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas