Error de compilación en consulta SQL access

Me podrían ayudar donde tengo el error, que dice VBA error de compilación, error de sintaxis, luego dice que se esperaba fin de la instrucción y remarca toda la concatenación

Private Sub CmdInvnPres_Click()
Me.LstInvgral.Visible = False
Me.LstInvPormenor.Visible = False
If Me.TxtFecinv = "(Fecha Inv. teórico)" Or Nz(Me.TxtFecinv, "") = "" Then
    MsgBox "Debe indicar una fecha final de inventario", vbInformation + vbOKOnly, "SIN FECHA"
Else
    Me.LstInvPrest.Visible = True
    LstInvPrest.RowSource = "SELECT [11VALES_PRÉSTAMO].FechaV, [11VALES_PRÉSTAMO].CodLib, [02LIBROS].Libro, [11VALES_PRÉSTAMO].Cv, [02LIBROS].CostoL, [11VALES_PRÉSTAMO].Carnet, [06CLIENTES]![Nombres] & " " & [06CLIENTES]![Apellidos] AS CLIENTE _
    FROM 06CLIENTES INNER JOIN (02LIBROS RIGHT JOIN 11VALES_PRÉSTAMO ON [02LIBROS].CodLib = [11VALES_PRÉSTAMO].CodLib) ON [06CLIENTES].Carnet = [11VALES_PRÉSTAMO].Carnet _
    WHERE ((([11VALES_PRÉSTAMO].FechaV)<=[Formularios]![ConInvLibros]![TxtFecinv]));"
    LstInvPrest.Requery
End If
End Sub
Respuesta
1

Ya lo solucioné, le quité el separador de línea y ahí funcionó. Tal vez no lo estaba haciendo correctamente.

1 respuesta más de otro experto

Respuesta
2

El primer error lo tienes en esta parte:

[06CLIENTES]![Nombres] & " " & [06CLIENTES]![Apellidos] AS CLIENTE

que debería ser así:

[06CLIENTES]![Nombres] & "" "" & [06CLIENTES]![Apellidos] AS CLIENTE

pues dentro de una cadena en VBA, para indicar una comilla doble, la tienes que poner dos veces.

El segundo error, es que usas mal el carácter para dividir la línea en varias (_). Tienes que cerrar las comillas antes de ponerlo, y luego usar el & otra vez:

    LstInvPrest.RowSource = "SELECT [11VALES_PRÉSTAMO].FechaV, [11VALES_PRÉSTAMO].CodLib, [02LIBROS].Libro, [11VALES_PRÉSTAMO].Cv, [02LIBROS].CostoL, [11VALES_PRÉSTAMO].Carnet, [06CLIENTES]![Nombres] & "" "" & [06CLIENTES]![Apellidos] AS CLIENTE "_    & "FROM 06CLIENTES INNER JOIN (02LIBROS RIGHT JOIN 11VALES_PRÉSTAMO ON [02LIBROS].CodLib = [11VALES_PRÉSTAMO].CodLib) ON [06CLIENTES].Carnet = [11VALES_PRÉSTAMO].Carnet " _    & "WHERE ((([11VALES_PRÉSTAMO].FechaV)<=[Formularios]![ConInvLibros]![TxtFecinv]));"

Fíjate en que has de dejar un espacio o bien antes de las comillas que terminan una linea (como yo en este caso), o después de las que empiezan la linea. Si no lo haces así, se te unirán la última palabra de la linea con la primera de la siguiente, y te dará error de sintaxis.

¡Mil Gracias!  Sveinbjorn El Rojo, eso de las comillas dobles y del espacio para escribir en otra línea no me las sabía.  Gracias nuevamente, buenísima explicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas