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


3 participantes

    [Resolvido]Erro de sintaxe (vírgula)

    guilhas23
    guilhas23
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 29/09/2015

    [Resolvido]Erro de sintaxe (vírgula) Empty [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  guilhas23 22/3/2019, 08:22

    Olá!

    Estou com um problema, procurei no fórum, testei vários resolvidos, mas sem sucesso.

    O erro é esse: "Erro de sintaxe (vírgula) na expressão de consulta 'Valores>= 105,92'
    Em seguida aparece uma janela com a mensagem de alerta: Desconhecido.

    No caso acima, 105,92 é um dos valores a ser considerado na consulta. Mas poderia ser outros números, acredito que esse aparece por ser o último da tabela csABC.

    ------------
    SELECT csABC.Codigo, csABC.Descricao, ABC.Valores, ABC.acumulado, ABC.percentual, IIf([percentual]<20,"A",IIf([percentual]<50,"B","C")) AS Curva
    FROM (SELECT Valores, acumulado, Val((acumulado/DSum("Valores","csABC"))*100) AS percentual
    FROM (SELECT valores, Val(DSum("Valores","csABC","Valores>=" & csABC.Valores)) AS acumulado
    FROM csABC ORDER BY Valores DESC)  AS ABC)  AS ABC INNER JOIN csABC ON ABC.Valores = csABC.Valores
    GROUP BY csABC.Codigo, csABC.Descricao, ABC.Valores, ABC.acumulado, ABC.percentual;
    ------------

    Esse código numa consulta está me dando dor de cabeça. Eu destaquei em vermelho a parte em questão. Quando eu tento colocar os Valores da tabela csABC de vírgula para ponto, a consulta interpreta 13.00 (treze ponto (ou vírgula) zero como 1.300 (mil e trezentos).

    Já tentei diversas maneiras inverter as aspas, mudar o formato de número, moeda texto. Mas não consegui nada. Como sou leigo, estou chutando que a vírgula do resultado está se confundindo com a vírgula que separa os campos de seleção. Mas não consegui isolá-la.

    Peço ajuda aos colegas, e desde já agradeço.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  JPaulo 22/3/2019, 13:36

    Amigão o Ms Access dá erro sempre que existam virgulas na numeração.

    Para resolver a sua dor de cabeça, tem de usar a função Replace() para alterar de virgula para ponto.

    Código:
    Replace(Valores,",",".")


    .................................................................................
    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 (vírgula) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro de sintaxe (vírgula) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro de sintaxe (vírgula) Folder_announce_new Instruções SQL como utilizar...

    lucasgin gosta desta mensagem

    guilhas23
    guilhas23
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 29/09/2015

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  guilhas23 22/3/2019, 15:58

    Grande Jpaulo, onde eu devo usar o replace: no momento de cadastrar na tabela ou dentro do SQL?

    Pois eu pesquisei a fundo no fórum, e encontrei muitos Resolvidos com o Replace, mas como eu disse, ele interpreta 1,31 como 131 quando está 1.31.
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  Celso Roberto 22/3/2019, 16:20

    Olá..

    Acredito que o problema pode estar na função Val() Usada em sua expressão.

    Esta função não reconhece a virgula como separador decimal e ela também só retorna numeros inteiros.
    Pesquise sobre esta função.

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  JPaulo 22/3/2019, 16:37

    Altere de Val() para CDbl(), não vi antes, boa observação.

    No entanto penso que o Replace() faz falta aqui, mas só testando;

    Código:
    FROM (SELECT valores, Cdbl(DSum("Valores","csABC","Valores>=" & Replace(csABC.Valores,",","."))) AS acumulado



    .................................................................................
    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 (vírgula) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro de sintaxe (vírgula) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro de sintaxe (vírgula) Folder_announce_new Instruções SQL como utilizar...
    guilhas23
    guilhas23
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 29/09/2015

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  guilhas23 22/3/2019, 17:19

    Eu fiz o que o Celso Roberto sugeriu sobre o comando VAL, coloquei o Replace no construtor da consulta e deu certo.

    Agradeço a todos pela ajuda.

    Refazendo o agradecimento, pois essa última função do JPaulo me ajudou em outro local. Valeu, pessoal!


    Reedidanto o resolvido: eu tirei o VAL e usei a fórmula do JPaulo, pois trazer o replace da consulta consulta estava dando o mesmo erro. Agora deu tudo certo. Obrigado.


    Última edição por guilhas23 em 22/3/2019, 18:00, editado 1 vez(es)
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  Celso Roberto 22/3/2019, 17:49

    Olá..

    Ficamos felizes por ter ajudado .

    O Fórum agradece o seu retorno

    Abraços e sucesso


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    [Resolvido]Erro de sintaxe (vírgula) Empty Re: [Resolvido]Erro de sintaxe (vírgula)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:48