Access - Error sintaxis

 
Vista:

Error sintaxis

Publicado por Carlos (17 intervenciones) el 10/03/2020 15:51:08
Buenas a todos.

He hecho un código para filtrar seleccionando dos cuadros combinados en Access. Pero al ejecutar me sale un error de sintaxis. Alguien ve el error?

Muchas gracias.

El mensaje de error es:

Se ha producido el error 3075 en tiempo de ejecución.
Error de sintaxis. Falta operador en la expresión de consulta ' AND [Nombre unidad vigente]=Aquí aparece registro que selecciono en el cuadro combinado

Y el código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Comando35_Click()
    Dim vSerie_documental As String
    Dim vNombre_unidad_vigente As String
    Dim miFiltro As String
    Dim rst As Recordset
    vSerie_documental = Nz(Me.Cuadro_combinado65.Value, "")
    vNombre_unitat_vigente = Nz(Me.Cuadro_combinado33.Value, "")
    miFiltro = ""
    If vSerie_documental <> "" Then
    miFiltro = "[Serie documental]='" & vSerie_documental & "'"
    End If
    If vNombre_unidad_vigente <> "" Then
    miFiltro = miFiltro & " AND [Nombre unidad vigente]='" & vNombre_unidad_vigente & "'"
    End If
    Me.Filter = miFiltro
    Me.FilterOn = True
    Set rst = Me.Recordset.Clone
    If rst.RecordCount = 0 Then
        MsgBox "No se ha encontrado", vbInformation, "Mensaje"
    End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error sintaxis

Publicado por Anonimo (3322 intervenciones) el 10/03/2020 22:18:42
El problema es que no se ha tenido en cuenta la posibilidad de que:
1
vSerie_documental = ""
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error sintaxis

Publicado por Carlos (17 intervenciones) el 11/03/2020 10:01:34
Gracias por contestar, pero sigue sin funcionar. No sé que operador le falta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error sintaxis

Publicado por Anonimo (3322 intervenciones) el 12/03/2020 00:18:49
Ese es el error, a esa expresión no le falta nada: LE SOBRA

No lo voy a reproducir (créeme, puedo asegurar que ha sido publicado mas de una vez y copiado muchas mas)

Parece que el pan es un medio útil para expresar conceptos empíricos asi que …

Te piden un bocadillo y el usuario elige lo que desea (bocadillo = 'pan + algo' al menos en esta representación virtual)

Lo primero, vaciar al inicio (o reactivar el valor por defecto) y que nadie ha manipulado = perdida de tiempo

Cuando se dimensiona una variable, esta toma 'el valor por defecto' según su tipo (con alguna excepción como las fechas, pero contar desde el año cero D.C. carece de sentido, ha pasado mucho tiempo y han pasado muchas cosas).
1
2
3
Si
Dim miFiltro As String   ====> miFiltro = "" ' por defecto
   miFiltro = "" ' redundante: se limpia lo utilizado, lo que nace 'lo hace sin virus'

Supongamos que no hay nada en 'vSerie_documental'

Como NO se cumple la condición ( vSerie_documental = "" )
No se le asigna valor a 'miFiltro' que continuara siendo una cadena vacia

Si hay algo en 'vNombre_unidad_vigente' (If vNombre_unidad_vigente <> "" Then)

le asignamos a miFiltro' un valor CONCATENADOLO con el existente (y no hay nada: es una cadena vacia)

Conclusión si no hay nada en la variable serie, no habrá ni chocolate ni jamón y si no hay contenido el continente (el pan del bocadillo representado por nombre … etc) no contendrá nada y Access rechaza el pan solo (ni es un pato ni pájaro, le gusta el chocolate y jamón, sobre todo cuando con el 'AND se lo han prometido)



El chocolate:
vSerie_documental ===> el fugitivo
El Pan:
vNombre_unidad_vigente ===> PepeMaton

"[Serie documental]='El Fugitivo' AND [Nombre unidad vigente]='PepeMaton'"

El chocolate:
vSerie_documental ===> ¿?¿?¿?¿

El Pan:
vNombre_unidad_vigente ===> PepeMaton

" AND [Nombre unidad vigente]='PepeMaton'"

(Tiene una solución sencilla y seguro que si añades mas condiciones: encuentras la formula para todas las posibilidades, es simple lógica, la utilizaba El Cesar en sus conquistas).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error sintaxis

Publicado por Carlos (17 intervenciones) el 13/03/2020 11:46:03
Gracias por la respuesta. Lo probaré.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar