MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Compartilhe

    Duque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 26/02/2010

    [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  Duque em 27/10/2017, 16:36

    Ex:
    Campo
    Critério: igual ou maior 10
    Resultado:
    10
    10
    10
    10
    12,5
    12,5
    12,5
    12,5
    12,5
    12,5
    12,5
    15
    15
    15
    15
    20
    25

    Critério: Mais próximo de 10 sendo maior ou igual:
    Resultado esperado:
    10
    10
    10
    10

    Alguém pode me ajudar a montar um código para resolver essa questão?
    Obrigado


    Última edição por Duque em 30/10/2017, 13:41, editado 1 vez(es)
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 306
    Registrado : 23/01/2017

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  thiagomcosta em 30/10/2017, 13:27

    Use a função DMIN:
    Resultado = DMIN("[CampoNumero]","NomeDaTabelaOuConsulta","[CampoNumero]>=" & Criterio)

    Duque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 26/02/2010

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  Duque em 30/10/2017, 18:05

    Muito obrigado Thiago, funcionou perfeitamente

    Duque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 26/02/2010

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  Duque em 31/10/2017, 14:28

    Bom dia,

    Naquele primeiro caso deu super certo, porém em uma aplicação parecida não retorna o resultado certo! Poria me dizer o que estou fazendo de errado?
    Segue:
    CRITÉRIO:
    strFiltro = strFiltro & " AND ([iccIcu(kA)] > " & Me!cboIcc.Column(0)
    strFiltro = strFiltro & " OR [iccIcu(kA)] = " & Me!cboIcc.Column(0) & ")"

    VALOR DE Me!cboIcc.Column(0) = 50
    RESULTADO: RESULTADO ESPERADO:
    iccIcu(kA) iccIcu(kA)
    50 50
    50 50
    50 50
    100
    100
    100

    Então apliquei o método me passado!
    CRITÉRIO:
    strFiltro = strFiltro & " AND [iccIcu(kA)] = " _
    & "DMin('[iccIcu(kA)]','tblDisjuntoresMotoresICC'," _
    & "'[iccIcu(kA)] >= " & Me!cboIcc.Column(0) & "')"

    VALOR DE Me!cboIcc.Column(0) = 50
    Perfeito, resultado conforme esperado!
    VALOR DE Me!cboIcc.Column(0) = 50
    RESULTADO:
    iccIcu(kA)
    50
    50
    50

    PORÉM, QUANDO SELECIONO OUTRO VALOR COMO:
    VALOR DE Me!cboIcc.Column(0) = 65
    RESULTADO:
    iccIcu(kA)
    Nulo
    e Deveria me trazer o resultado:
    100
    100
    100
    Que é o número mais próximo de 65 cadastrado

    QUAL SERIA A SOLUÇÃO PARA ESSE CASO?

    -----------------------------------------------------------------------------------------
    OUTRA QUESTÃO SERIA ENCONTRAR O MENOR PREÇO EM UM CAMPO, PORÉM NÃO TENHO CRITÉRIO ALGUM A NÃO SER QUE ELE SEJA O MENOR NUMERO DA SEQUENCIA:
    lpwPrecoCompra
    R$ 90,43
    R$ 109,58
    R$ 96,17
    RESULTADO ESPERADO:
    R$ 90,43

    Desculpem colocar duas questões em um mesmo poste, mas tem tudo haver com o assunto

    Obrigado
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 306
    Registrado : 23/01/2017

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  thiagomcosta em 31/10/2017, 15:22

    Esta parte do filtro não é necessário
    Código:
    strFiltro = strFiltro & " AND ([iccIcu(kA)] > " & Me!cboIcc.Column(0)
    strFiltro = strFiltro & " OR [iccIcu(kA)] = " & Me!cboIcc.Column(0) & ")"


    Olhei aqui e não consegui achar nenhum erro.
    Na dúvida, antes de fazer o filtro, na linha que antecede a sua consulta, dê o seguinte comando:
    Código:
    msgbox strFiltro

    Assim fica mais claro para achar o erro. As vezes é uma virgula que a gente não consegue enxergar no meio do código.

    Quanto à última questão, utilize o DMin sem colocar filtro, passe apenas os dois primeiros parâmetros.

    Duque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 26/02/2010

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  Duque em 31/10/2017, 15:42

    Tiago,

    Na verdade esssa parte do código era o que eu estava usando anteriormente a sua ajuda no outro caso, porém quando adaptei o a instrução que vc me passou para o caso anterior, neste não deu certo. Veja os dados que tenho na consulta:

    Caso eu digite em uma caixa ou selecione em um combo o valor 65, com a função Dmin imagino que o resultado mais próximo esperado seria: 100
    Mas não retorna nada, como se não estivesse existisse um valor igual ou maior que 65 mais próximo de 65. Que no caso real só pode ser 100
    iccIcu(kA)
    10
    30
    50
    50
    100
    100
    10
    50
    100

    Usando aquela parte do código que vc perguntou, me traz a resposta correta (100), pois o numero maior ou igual a 65 desta sequencia é o 100.
    Porém imagine se eu selecionar, por exemplo 50. O resultado será:
    iccIcu(kA)
    50
    50
    50
    100
    100
    100
    E deveria ser somente 50. Onde fica claro que usar sua função sugerida é o ideal.
    O problema que estou tento é que parece que como o numero 100 é muito longe do 65, parece que a função não o enxerga.
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 306
    Registrado : 23/01/2017

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  thiagomcosta em 31/10/2017, 18:42

    Tenta tirar aquela parte do código.

    Ou então posta todas as linhas de construção da variável strFiltro. Está me parecendo que é problema de lógica deste filtro.

    Duque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 26/02/2010

    Re: [Resolvido]Busca de um numero, maior ou igual dentro de uma sequencia, mais próximo dele mesmo

    Mensagem  Duque em 1/11/2017, 14:32

    Consegui resolver!
    Estava buscando na tabela, quando eu deveria buscar na consulta

      Data/hora atual: 14/11/2018, 11:50