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

2 participantes

    [Resolvido]SeImed ora compara ora não valores

    avatar
    E.Riera
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 20/01/2021

    [Resolvido]SeImed ora compara ora não valores Empty [Resolvido]SeImed ora compara ora não valores

    Mensagem  E.Riera 20/1/2021, 18:26

    Boa tarde
    Estou criando um BD para projetos de engenharia, sem a utilização de VBA,mesmo porque não tenho conhecimentos em VBA
    Em um dos formulários, baseado em uma consulta, possuo os campos: inf var fxs ; sup var fxs ; sps ; lls ; ls; hs ; hhs.Estes são preenchidos com valores através de digitação (EX: 0;100;50;60;70;80;90 respectivamente)
    Estou criando um campo calculado no qual quando a diferença entre sup var fxs e inf var fxs for maior ou igual a qualquer valor nos campos sps/lls/ls/hhs apresente o resultado:"OK" e quando a diferença acima for menor que qualquer valor dos campos sps/lls/ls/hhs apresente o resultado: "Verificar faixa calibrada ou pontos de ajuste".
    Para verificar o comportamento de pelo menos em um dos campos fiz a expressão :
    =SeImed([sup var fxs]-[inf var fxs]>=[sps];"OK";"Verificar faixa calibrada ou pontos de ajuste")
    O que acontece é que para certos valores da diferença acima (por exemplo a diferença é 100 e o sps=77 ), a expressão não funciona corretamente (deveria apresentar o resultado "OK" mas apresenta "Verificar faixa calibrada ou pontos de ajuste".Para valores da diferença acima (por exemplo 4000 e sps=3846) a expressão funciona!
    Os campos indicados acima estão formatados como texto,já alterei para numero mas continua dando o mesmo erro
    Poderiam me elucidar o porque ocorre isto?Porque não considera que 100 é maior que 77 como no exemplo acima e considera que 4000 é maior que 3846?
    Adicionalmente poderiam me informar se a expressão:
    =SeImed([sup var fxs]-[inf var fxs]>=[sps] e [lls] e [ls] e [hhs];"Verificar faixa calibrada ou pontos de ajuste";"OK"),está correta,já que não pude comprovar sua funcionalidade devido ao erro indicado acima
    Office 365
    Windows 7
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  DamascenoJr. 20/1/2021, 23:08

    Para maior clareza e evitar interpretações erradas, é bom esclarecer o que a expressão deve considerar primeiro, isto é, deixar entre parenteses as prioridades.

    =SeImed(([sup var fxs]-[inf var fxs])>=[sps];"OK";"Verificar faixa calibrada ou pontos de ajuste")

    Veja se resolve.
    avatar
    E.Riera
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 20/01/2021

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  E.Riera 21/1/2021, 00:01

    Olá Damasceno.Obrigado por sua resposta a este tópico
    Mesmo considerando as prioridades entre parenteses continua o problema,se a diferença for 100 e o SPS for 77 (por exemplo) continua aparecendo a resposta errada (neste caso deveria ser OK mas está aparecendo Verificar faixa calibrada ou pontos de ajuste.
    Se a diferença for 900 e o SPS for 411,23 (por exemplo) a resposta é correta.Realmente não consigo entender pois a expressão me parece correta e tanto o valor 100 é maior que 77 quanto o valor 900 é maior que 411,23
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  DamascenoJr. 21/1/2021, 01:33

    A única explicação para a resposta do seimed é que ele está tratando como texto. Ordenando, 1 é menor que 7. E 9 realmente vem depois de 4. Não tenho acesso aos seus objetos, só me resta mandar forçar tudo a números, na pressão mesmo. Pressão bruta!

    =SeImed((clng(clng([sup var fxs])-clng([inf var fxs])))>=clng([sps]);"OK";"Verificar faixa calibrada ou pontos de ajuste")
    avatar
    E.Riera
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 20/01/2021

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  E.Riera 21/1/2021, 15:31

    Boa tarde Damasceno
    Apliquei conforme sua sugestão e parece que funciona, porém nem para todos os casos.
    Veja na planilha em anexo onde listei o resultado da aplicação de sua expressão que funcionou para todos os casos menos onde indicado em vermelho.Alguma idéia do por que?
    Adicionalmente, se puder, poderia verificar e corrigir a expressão =SeImed([sup var fxs]-[inf var fxs]>=[sps] e [lls] e [ls] e [hhs];"Verificar faixa calibrada ou pontos de ajuste";"OK") aonde acrescento os valores LLS,LS,HHS?
    Abraços!
    Anexos
    [Resolvido]SeImed ora compara ora não valores AttachmentCheck.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (16 Kb) Baixado 3 vez(es)
    avatar
    E.Riera
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 20/01/2021

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  E.Riera 25/1/2021, 18:18

    Caro Damasceno,boa tarde!
    A aplicação de sua sugestão funcionou corretamente.O problema é que eu estava aplicando na integra a expressão que vc passou, sugerindo forçar tudo a numeros :=SeImed((clng(clng([sup var fxs])-clng([inf var fxs])))>=clng([sps]);"OK";"Verificar faixa calibrada ou pontos de ajuste")
    Fiz uma pequena modificação na expressão,que acabou ficando conforme abaixo e a mesma funcionou a contento:
    =SeImed((clng(clng([sup var fxs])-clng([inf var fxs])))>=(clng([sps]));"OK";"Verificar faixa calibrada ou pontos de ajuste")

    Agradeço então pela sua dica,muito bem sacada, e considero o tópico como resolvido

    Abraços e até uma proxima

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  DamascenoJr. 26/1/2021, 00:38

    Veja a maneira correta de dar um tópico por resolvido.

    https://www.maximoaccess.com/t860-resolucao-de-topicos

    Aguardamos sua ação.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    E.Riera
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 20/01/2021

    [Resolvido]SeImed ora compara ora não valores Empty Re: [Resolvido]SeImed ora compara ora não valores

    Mensagem  E.Riera 26/1/2021, 12:28

    Agradeço então pela sua dica,muito bem sacada, e considero o tópico como resolvido

      Data/hora atual: 21/9/2021, 03:56