MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


4 participantes

    [Resolvido]Erro de sintaxe (operador faltando)

    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Qui 24 Ago 2023, 11:43 pm

    Boa noite Grandes Mestres

    Tenho essa instrução:

    strSQL = "SELECT * FROM [Consulta TbContrato + TbPrestações] " & _
                    "WHERE " & campoPesquisa & " LIKE '*" & valorPesquisa & "*'"

    Em seguida:
    Set rs = db.OpenRecordset(strSQL)

    Onde: campoPesquisa pode assumir o nome de qualquer campo de uma tabela
            ValorPesquisa pode ser qualquer descrição a ser procurada no campo da tabela do campo anterior

    Para todos os campos funciona com perfeição, exceto Data.

    Erro de sintaxe (operador faltando) na expressão da consulta 'DataCompra Like '*08/03/23*"

    Se coloco 08 (puxar tudo do dia 08 ou ano 08) erro;
    Se coloco 08/ (puxar tudo do dia 08) erro;
    Se coloco /03/ (puxar tudo do mês 03) erro;
    Até colocando "pp" poderia dizer não encontrado, mesmo erro.
    Enfim, campo data sempre erro.

    Como resolvo isso usando a mesma instrução para qualquer tipo de campo?

    Muito grato

    Forte abraço
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Marcelo David Sex 25 Ago 2023, 4:11 am

    Olá, boa noite.
    [Consulta TbContrato + TbPrestações] é um nome de uma tabela? Se sim, aconselho fortemente que altere isso para algum nome seguindo as boas práticas, como não usar caracteres especiais e espaços e se não, não tem como juntar duas tabelas dessa forma.
    (Pelo menos nunca vi essa sintax no sql, mas pode ser que eu é que não conheça).


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Erro de sintaxe (operador faltando) Marcel11
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sex 25 Ago 2023, 5:30 am

    Boa Noite Marcelo!

    [Consulta TbContrato + TbPrestações] é uma consulta. Como os nomes são separados estão entre colchetes. Vc está estranhando sql? Pesquei a maior parte por aqui. Interessante é que funciona para quase tudo. Exceto campo Data. Aí é que é o problema.

    Muito grato

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Marcelo David Sex 25 Ago 2023, 7:03 am

    Finformática escreveu:[Consulta TbContrato + TbPrestações] é uma consulta. Como os nomes são separados estão entre colchetes.

    Entendi. Aconselho fortemente melhorar a nomeclatura. Por exemplo, para essa consulta, eu definiria assim:

    qryTbContratoTbPrestacoes

    E sobre o seu erro, vamos ver o que dentro da variável strSQL.

    Logo abaixo da linha:
    strSQL = "SELECT * FROM [Consulta TbContrato + TbPrestações] " & _
    "WHERE " & campoPesquisa & " LIKE '*" & valorPesquisa & "*'"

    'Ponha isso:

    Msgbox strSQL.

    Poste aqui um print ou exatamente o que está retornando. Tente simular o erro para MsgBox exibir o conteúdo da variável.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Erro de sintaxe (operador faltando) Marcel11
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sex 25 Ago 2023, 1:26 pm

    Caro Marcelo

    Muito grato por seu interesse em ajudar. Fiz outra consulta conforme vc sugeriu usando nome QryTbContratoTbPrestacoes. Coloquei nessa consulta no campo [Data Compra] para DataCompra:[Data Compra] e continua aparecendo Data Compra (nome original na tabela).
    Fiz o ? strSql e exibiu isso.

    SELECT * FROM [QryTbContratoTbPrestacoes] WHERE Data Compra LIKE '*08/08/22*'ORDER BY [DataCompra]

    Reconheço as suas recomendações sobre as boas práticas. Justificando (que não justifica) é que esse DB é muito antigo (+- 15 anos) e começou com uma tabelinha e uma consulta feito as pressas, sem grandes pretensões. Isso foi crescendo, crescendo (atualmente tem 35000 registro) e agora está ruim de reformar tudo dentro dos padrões. Sei que sempre vou passar por problemas como esse.

    Muito grato a você por tudo

    Forte abraço
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  JPaulo Sex 25 Ago 2023, 5:58 pm

    O SQL correto seria;

    Código:
    SELECT * FROM [QryTbContratoTbPrestacoes] WHERE [Data Compra] >= #08-08-2022# ORDER BY [Data Compra]

    Repliquei aqui com o LIKE e funciona bem;

    Código:
    SELECT *
    FROM QryTbContratoTbPrestacoes
    WHERE (((QryTbContratoTbPrestacoes.[Data Compra]) Like '*08/08/2022*'))
    ORDER BY QryTbContratoTbPrestacoes.[Data Compra];

    Ou assim que também funciona;
    Código:
    SELECT *
    FROM QryTbContratoTbPrestacoes
    WHERE (((QryTbContratoTbPrestacoes.[Data Compra]) Like '*' & "08" & '*'))
    ORDER BY QryTbContratoTbPrestacoes.[Data Compra];

    Mas gostava de ver todo o seu trecho de código.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro de sintaxe (operador faltando) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro de sintaxe (operador faltando) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro de sintaxe (operador faltando) Folder_announce_new Instruções SQL como utilizar...
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sex 25 Ago 2023, 7:21 pm

    Grandes Mestres

    JPaulo, não sei se entendi direito seus comentários do sql: SELECT * FROM [QryTbContratoTbPrestacoes] WHERE Data Compra >= #08-08-2022# ORDER BY [Data Compra]. Essa instrução com as datas explícitas é o resultado da variável strsql que Marcelo havia pedido.

    Para melhorar para todos estou postando a parte envolvida do problema. Conforme Marcelo havia falado a respeito das boas práticas, como nomes de variáveis, nomes de consultas, tudo tem haver. Fiz dois testes referentes ao fato: troquei a tabela por outra que também tem campo tipo data sendo DtNascimento e tudo funcionou perfeitamente, em seguida na tabela TbContrato alterei o campo Data Contrato para DataContrato e tudo funcionou perfeitamente.
    Uma pergunta aos Mestres: Se eu trocar o nome do campo Data Contrato para DataContrato na tabela TbContrato isso terá efeitos cascata? Vai alterar em todos os locais (consultas, relatórios, formulários, códigos, etc.)?
    Outra pergunta: Como resolver a bronca alterando apenas o código?

    Muito grato

    Abraços

    Anexos
    [Resolvido]Erro de sintaxe (operador faltando) AttachmentSysComboLst_TbContrato.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.3 Mb) Baixado 9 vez(es)
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sáb 26 Ago 2023, 4:56 pm

    up
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Alexandre Fim Sáb 26 Ago 2023, 5:24 pm

    F Informatica,

    Altere o nome da coluna "Data Compra" para "DataCompra" que vai funcionar.
    [Resolvido]Erro de sintaxe (operador faltando) Compra10

    Lembrando que um assunto muito abordado aqui (principalmente por mim...rsss) sobre Modelagem de Normalização de base de dados.
    Procuse usar a melhor nomenclatura, tipo e tamanho dos campos.
    Evite utilizar nome de tabelas e colunas com espaço.
    Não utilizar "ç" e nem acentuação e caracteres especiais ('@#$%¨&*()/?<>|\"º), pois quando houver a possibilidade de vc migrar seu bd para outros SGBD (Sql Server, Oracle, MySql), voce pode ter problemas, pois nem todos reconhecem esses caracteres.
    Evite utilizar nome de colunas como "Data", "Status", "Name", "Value" e etc.

    É isso.

    Espero ter ajudado.

    Att,
    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Erro de sintaxe (operador faltando) Setinf11
    Sistemas e Tecnologia Ltda
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sáb 26 Ago 2023, 5:54 pm

    Grande Alexandre!

    Muito obrigado por mais essa aula. Conforme havia falado na mensagem anterior, fiz uns testes trocando tabela e acertando nome de tabela e realmente a situação final foi essa mesmo (trocar nome na tabela). Fico insistindo nas duas interrogações anteriores:
    Se eu trocar o nome do campo Data Contrato para DataContrato na tabela TbContrato isso terá efeito cascata? Vai alterar em todos os locais (consultas, relatórios, formulários, códigos, etc.)?
    Outra pergunta: Como resolver a bronca alterando apenas o código?

    Muito grato

    Abraço


    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Alexandre Fim Sáb 26 Ago 2023, 6:41 pm

    Sim,
    Vai alterar consultas, relatórios, formulários exceto no código. Ai tem que arrumar mesmo.

    Para frazer alteração no código, na IDE do VBA, pressione CTRL+L, que é a ferramenta "Localizar". Em seguida, clique em "Substituir..." e irá abrir a seguinte caixa:
    [Resolvido]Erro de sintaxe (operador faltando) Subst10

    Siga os procedimentos acima e altere tudo de uma vez.
    Caso vc fique inseguro com o procedimento, clique em "Localizar próxima" e em seguida "Substituir". Desta forma, o Access irá exibir todos os textos que vc informou para localizar, e assim vc confere pra saber se não vai substituir errado.
    Mas antes faça uma cópia do seu bd!!
    Porque quem salva é Jesus, e os demais faz backup.

    É isso

    Att,

    Alexandre Fim



    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Erro de sintaxe (operador faltando) Setinf11
    Sistemas e Tecnologia Ltda
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sáb 26 Ago 2023, 7:00 pm

    Olá,

    Gostei da citação: Porque quem salva é Jesus, e os demais faz backup. É verdade!

    Valeu por todas as instruções. Vou fazer esse passo a passo, um a um. Muito obrigado. Mas ainda continuo curioso sobre sobre se tem como resolver a bronca alterando apenas o código? Mais aprendizado.

    Muito grato

    Abraço




    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Alexandre Fim Sáb 26 Ago 2023, 7:06 pm

    É necessário que vc altere o nome das colunas e no código também.
    Se alterar somente no código, o Access vai informar que determinado objeto (textbox, cbobox) não existe.
    Por isso que é necessário manter a nomenclatura de objetos nas melhores praticas de desenvolvimento e evitar este tipo de problema.
    É isso

    Abraço e sucesso !!!


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Erro de sintaxe (operador faltando) Setinf11
    Sistemas e Tecnologia Ltda
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sáb 26 Ago 2023, 7:16 pm

    Valeu Amigo, muito obrigado por tudo.
    Muito obrigado a todos que se envolveram nesse tópico. Muito aprendizado.

    Grande abraço

    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Sáb 26 Ago 2023, 10:05 pm

    Caros Amigos

    Insistindo na dúvida. Quando eu trocar o nome do campo Data Compra para DataCompra na tabela TbContrato isso terá efeito cascata? Vai alterar em todos os objetos (consultas, relatórios, formulários, códigos, etc.)?

    Muito obrigado
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Dom 27 Ago 2023, 2:42 pm

    up
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1077
    Registrado : 23/03/2010

    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Finformática Dom 27 Ago 2023, 9:30 pm

    Resolvido

    Conteúdo patrocinado


    [Resolvido]Erro de sintaxe (operador faltando) Empty Re: [Resolvido]Erro de sintaxe (operador faltando)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Dom 28 Abr 2024, 5:23 pm