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

    Código em VBA que seleciona o menor valor

    Compartilhe

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qua 22 Jul 2015, 19:58

    Olá pessoa, tudo bom?

    Possuo um código onde ele seleciona o menor valor de 3 campos diferentes, más ele também está selecionando valores iguais a ZERO, teria como adicionar alguma função que ele ignore valores iguais a ZERO e também que ignore caso não haja nenhum valor?

    O código é o seguinte:

    Public Function fncMenorValor(c1, c2, c3)
    Dim k
    If c1 < c2 Then If c1 < c3 Then k = c1
    If c2 < c1 Then If c2 < c3 Then k = c2
    If c3 < c1 Then If c3 < c2 Then k = c3

    fncMenorValor = k
    End Function

    Obrigado e desde já agradeço a ajuda dos senhores
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 10/04/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  biligo em Qua 22 Jul 2015, 20:38

    Amigo utilize "And" " Or" "&" sempre que quiser adicionar mais criterios:
    "<>" é diferente e utilize " " para enquadrar valores ou não depende as vezes.


    IF c2< c1 And > c3<> Null And "0"Then
    k = c1
    ElseIf c2< c1 And >c3 And <> "" And "0" Then
    k=c2
    ElseIf c3 C2<> "" And "0" Then
    k=c3
    Else
    MsgBox "algo esta errado"
    End If

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qua 22 Jul 2015, 20:46

    Amigo, desculpe más não entendi muito bem...

    também tentei colocar este código que você me informou e o mesmo também não funcionou Sad
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 10/04/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  biligo em Qua 22 Jul 2015, 20:55

    faz o seguinte,
    me envia as tabelas e o formulario relacionado que fica mais facil.

    mas é bem simples, <> Null And <> "0" Then ''é diferente de nulo E diferente de zero tente adicionar esta parte nas suas já feitas
    caso não consiga retorte com o bd

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qua 22 Jul 2015, 21:17

    Olá amigo, estou colocando o BD para que você possa dar uma olhada...

    Realmente não consegui realizar o mesmo...

    A consulta que está a funcão seria Consulta_menorvalor
    e o módulo seria, Mod_geral

    caso queira fazer alguma alteração nos valores, seria o FRM_comprasrequery, digitando o número das requisições, 12,14 e 15
    Obrigado desde já

    Hospedado no dropbox:
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 10/04/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  biligo em Qua 22 Jul 2015, 21:52

    Boas amigo,

    é achei que se tratava de um formulario XD.
    faça o seguinte substitua seu campo MenorValor por este:

    MenorValor: SeImed([SomaDeTforn1]<[SomaDeTforn2] E [SomaDeTforn1]<[SomaDeTforn3] E [SomaDeTforn1] É Negado Nulo Ou "0";[SomaDeTforn1];SeImed([SomaDeTforn2]<[SomaDeTforn1] E [SomaDeTforn2]<[SomaDeTforn3] É Negado Nulo Ou "0";[SomaDeTforn2];SeImed([SomaDeTforn3]<[SomaDeTforn1] E [SomaDeTforn3]<[SomaDeTforn2] E [SomaDeTforn3] É Negado Nulo Ou "0";[SomaDeTforn3];0)))

    é realmente bem grande e feio XD mais em consultas é assim que fica, talvez alguém mais experiente que eu saiba como
    facilitar e deixar isto mais bonito mas deste jeito funciona

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qua 22 Jul 2015, 22:00

    Amigo, não sei se vc testou, más ele ainda me retorna o valor 0 como menor valor, eu gostaria que ele ignorasse Smile

    más mesmo assim, muito obrigado pelo sua ajuda até o momento
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: Código em VBA que seleciona o menor valor

    Mensagem  Alexandre Neves em Qua 22 Jul 2015, 22:15

    Boa noite,
    Código:
    Public Function fncMenorValor(c1, c2, c3)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If c1 > 0 Then fncMenorValor = c1
        If c2 > 0 And c2 > fncMenorValor Then fncMenorValor = c2
        If c3 > 0 And c3 > fncMenorValor Then fncMenorValor = c3
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    biligo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 10/04/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  biligo em Qua 22 Jul 2015, 22:21

    Man testei sim, tanto que no codigo 15 existe e me retorna o 435.
    estou mandando pra você : teste

    caso não funfe tente pela função mesmo, mas pessoalmente prefiro não utilizar funções quando não necessario
    "acho" que diminui o stress do bd

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qui 23 Jul 2015, 12:33

    biligo, os dois código caso o fornecedor 1 seja Zero ele me retorna 0 como menor valor
    más agradeço o auxilio de todos!

    alexandre, o seu código está retornando o maior valor e eu acabei trocando as bocas dos jacares < e acabou não funcionando Sad
    kkkkk

    não teria como colocar alguma coisa no código para que se for = 0 ele passa para a próxima linha ou ignora aquela linha e passa para próxima
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: Código em VBA que seleciona o menor valor

    Mensagem  Alexandre Neves em Qui 23 Jul 2015, 17:36

    Boa tarde,
    Lapso meu, agora deve dar o menor
    Código:
    Public Function fncMenorValor(c1, c2, c3)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If c1 > 0 Then fncMenorValor = c1
        If c2 > 0 And c2 < fncMenorValor Then fncMenorValor = c2
        If c3 > 0 And c3 < fncMenorValor Then fncMenorValor = c3
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qui 23 Jul 2015, 18:16

    Perfeito amigo! o único problema que encontrei foi que se o fornecedor 1 ficar zerado, ele não retorna nenhum valor, más sem problema, pelo menos uma cotação eu terei que fazer Smile

    Só mais um pedido, como eu coloco este módulo como Moeda R$?

    Obrigado!
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: Código em VBA que seleciona o menor valor

    Mensagem  Alexandre Neves em Qui 23 Jul 2015, 18:37

    Eu só crie código para a sua ideia. Veja que pediu que fosse maior que zero. Veja, ainda, que os argumentos ficaram por definir, o que corresponde a variável do tipo Variant
    Se pretende que seja moeda, formate onde vai utilizar a função
    Código:
    Public Function fncMenorValor(c1 As Currency, c2 As Currency, c3 As Currency) As Currency
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        ' devolve o menor dos 3 valores, desde que maior que zero
       
        If fncMenorValor = 0 And c1 > 0 Then fncMenorValor = c1
       
        If fncMenorValor = 0 And c2 > 0 Then
            fncMenorValor = c2
        ElseIf c2 > 0 And c2 < fncMenorValor Then
            fncMenorValor = c2
        End If
        If fncMenorValor = 0 And c3 > 0 Then
            fncMenorValor = c3
        ElseIf c3 > 0 And c3 < fncMenorValor Then
            fncMenorValor = c3
        End If
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    bernardweger
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 22/12/2014

    Re: Código em VBA que seleciona o menor valor

    Mensagem  bernardweger em Qui 23 Jul 2015, 18:40

    Amigo, perfeito! agradeço demais a sua ajuda! que Deus o abençoe grandemente!

    você poderia me dar uma força neste tópico?
    [Você precisa estar registrado e conectado para ver este link.]
    Obrigado!

      Data/hora atual: Ter 26 Set 2017, 15:31