Error de sintaxis (operador ausente) en la expresión acceso

Leonidas1508 Mensajes publicados 8 Estado Miembro -  
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   -

aquí está el cliente buscado: ABBAYE DE L'ETOILE

aquí está el mensaje que tengo:

error de sintaxis (operador ausente) en la expresión: [CT_Num]='00000' AND [EC_Sens]=0 AND [ec_piece]='1111' and [ec_intitule]='Factura N° 1111 / ABBAYE DE L'ETOILE' AND [EC_Lettre]=0 AND [jm_DATE] >=#01/01/001# and [ec_No]<=22222.

¿podría ayudarme?

si hago clic en otros, obtengo el resultado correcto, pero sobre todo en aquellos que hemos registrado con apóstrofes, aparece este error

el macro es:

condición where = [CT_Num]='"&[RefClient]&"'

5 respuestas

  1. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
     

    Hola,

    es normal, tu delimitador de cadena es el apóstrofe y en tu nombre tienes un apóstrofe, así que Access no sabe manejarlo, cree que estás buscando Factura N° 1111 / ABBAYE DE L y luego encuentra ETOILE' que no corresponde a ninguna sintaxis que él conozca.

    Cambia el delimitador por una comilla: "


    A+ blux "Los tontos, se atreven a todo.
    Es incluso así como los reconocemos"

    0
    1. Leonidas1508 Mensajes publicados 8 Estado Miembro
       

      Gracias @blux EstadoModerador he cambiado los ' por " y ahora no me devuelve ningún dato, aunque en realidad hay datos que devolver. Y ahora, con todos los otros clientes, no devuelve ningún dato, mientras que antes solo los clientes con apóstrofe devolvían un error de sintaxis.

      0
  2. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
     

    ¿Y si solo cambias los ' por " para la condición [ec_intitule]?

    Porque desconfío de los datos que parecen ser numéricos pero que vamos a probar como cadenas (tipo [CT_Num]).


    Hasta luego blux "Los tontos se atreven a todo.
    Es por eso que los reconocemos"

    0
    1. Leonidas1508 Mensajes publicados 8 Estado Miembro
       

      Sub privado Borrar_Búsqueda_Click()
      Me.Rech_RefCliente.Value = ""
      Me.Rech_Cliente.Value = ""
      Me.Rech_Colaborador.Value = ""
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].Cliente Like '*" & Replace(Me.[Rech_Cliente], "'", "''") & "*'"
      End Sub

      Sub privado Rech_Cliente_DespuésActualizar()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].Cliente Like '*" & Replace(Me.[Rech_Cliente], "'", "''") & "*'"
      End Sub

      Sub privado Rech_Cliente_Cambio()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].Cliente Like '*" & Me.[Rech_Cliente] & "*'"
      End Sub

      Sub privado Rech_Cliente_Entrar()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].Cliente Like '*" & Me.[Rech_Cliente] & "*'"
      End Sub

      Sub privado Rech_Colaborador_DespuésActualizar()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].CO_Nombre Like '*" & Me.[Rech_Colaborador] & "*'"
      End Sub

      Sub privado Rech_Colaborador_Cambio()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].CO_Nombre Like '*" & Me.[Rech_Colaborador] & "*'"
      End Sub

      Sub privado Rech_RefCliente_DespuésActualizar()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].RefCliente Like '*" & Me.[Rech_RefCliente] & "*'"
      End Sub

      Sub privado Rech_RefCliente_Cambio()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].RefCliente Like '*" & Me.[Rech_RefCliente] & "*'"
      End Sub

      Sub privado Rech_RefCliente_Entrar()
      Formularios![Gestión de Techos]![Control Exceso Cliente].Formulario.RecordSource = "SELECT [Control Exceso Cliente].RefCliente,[Control Exceso Cliente].Cliente,[Control Exceso Cliente].Techo,[Control Exceso Cliente].SaldoTotal,[Control Exceso Cliente].Exceso,[Control Exceso Cliente].SaldoA,[Control Exceso Cliente].SaldoB,[Control Exceso Cliente].CO_Nombre,[Control Exceso Cliente].BL,[Control Exceso Cliente].[Total BL] from [Control Exceso Cliente] where [Control Exceso Cliente].RefCliente Like '*" & Me.[Rech_RefCliente] & "*'"
      End Sub

      Aquí hay un poco de las otras consultas que rigen la macro. He retomado el trabajo de alguien y me está costando entender lo que ha hecho al final.

      0
      1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > Leonidas1508 Mensajes publicados 8 Estado Miembro
         

        hola,

        cuando compartas código, gracias por tener en cuenta esto: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

        ¿Cuál es el vínculo entre la expresión mostrada al principio y el código mostrado en el #4?

        Como has modificado el código mostrado al principio, ¿no crees que sería útil mostrar en qué se ha convertido?

        0
      2. Leonidas1508 Mensajes publicados 8 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
         

        Gracias @yg_be EstadoColaborador. De acuerdo. Tendré esto en cuenta. Solo muestro los módulos en los que funciona el formulario Access

        El código mostrado al principio, lo he modificado reemplazando los ' por los "

        0
      3. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > Leonidas1508 Mensajes publicados 8 Estado Miembro
         

        muéstranos el código modificado.

        0
  3. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
     

    La consulta en error no está en el código que diste...


    Hasta luego blux           "Los tontos se atreven a todo.
    Es incluso por eso que los reconocemos"

    0
    1. Leonidas1508 Mensajes publicados 8 Estado Miembro
       

      entonces se encuentra en el primero entonces. Hola @blux EstadoModerador

      0
  4. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Embajador 1 588
     

    ¿Cómo es que este problema aparece de repente?

    ¿Modificas el trabajo de alguien sin entender lo que ha hecho?

    0
    1. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
       

      ¿Cómo es que este problema aparece de repente?

      Quizás sea la reciente creación de la abadía la que lo desencadena...

      0
    2. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención  
       

      El código existente parece protegerse contra la presencia de apóstrofes en los campos:

       "SELECT ... where Client Like '*" & Replace(Me.[Rech_Client], "'", "''") & "*'"
      0
    3. Leonidas1508 Mensajes publicados 8 Estado Miembro
       

      Estoy tratando de modificar entendiendo. Pero me he perdido, por eso me dirijo a los expertos.

      0
    4. Leonidas1508 Mensajes publicados 8 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
       

      exactamente. por eso me siento perdido

      0
    5. Leonidas1508 Mensajes publicados 8 Estado Miembro > blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención  
       

      No ha habido una nueva creación. El cliente siempre ha existido, solo hemos cambiado de representante del cliente.

      0
  5. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
     

    Así que mantengo lo que he dicho, el error que nos muestras no parece estar cubierto por el tratamiento específico de otras solicitudes cuyo código nos diste (la cláusula "replace...").


    A+ blux           "Los tontos se atreven a todo.
    Es incluso por eso que los reconocemos"

    0