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


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  rgondim 30/5/2012, 18:18

    Preciso realizar vários cálculos que serão usados em um formulário.
    Vi que posso criar um cálculo para uma função e depois chamá-la através de Call, por exemplo..

    Gostaria de saber se posso realizar vários cálculo numa única função e depois chamá-los individualmente.

    Um exemplo abaixo, Calculo1 e Calculo2:

    Public Function FuncTeste()
    Dim curSomBCINSS As Currency, curTetoINSS As Currency, varAliqINSS As Variant, curBCINSS As Currency

    curSomBCINSS = DSum("BCINSS", "qryFolha13_Lancamentos", "CodFolha1 =" & Me.CodFolha)
    curTetoINSS = DMax("Ate", "qryFolha13_INSSAliquo")
    curBCINSS = IIf(curSomBCINSS <= curTetoINSS, curSomBCINSS, curTetoINSS)
    varAliqINSS = DLookup("Cota", "qryFolha13_INSSAliquo", "De <=" & Replace(curBCINSS, ",", ".") & "AND Ate >=" & Replace(curBCINSS, ",", "."))
    Calculo1 = varAliqINSS
    Calculo2 = curBCINSS * varAliqINSS / 100

    End Function
    avatar
    Convidado
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidado 30/5/2012, 18:47

    Podes no módulo criar variáveis globais, e na função carregar cada variável com o resultado do cálculo.

    No form, chame a função através do Call Nome da Função

    ao ele ser executado caregará as variáveis. depois é só carregar o campo com essa variável.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidado 30/5/2012, 19:02

    Abra o form e clique no botão.

    https://dl.dropbox.com/u/26441349/rgodim_30_05.rar

    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  rgondim 30/5/2012, 22:34

    Vou testar. Valeu Harysohn.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  rgondim 31/5/2012, 03:26

    Testei e funcionou.

    É possível limpar ou liberar a memória após executar a função?
    avatar
    Convidad
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidad 31/5/2012, 12:07

    Gondim

    Também pode ser desse jeito:
    Somente verifique o tipo de valor para a variável calculo e que tipo de valor deve ser retornado pela função (em azul).

    Public Function FuncTeste(ret as Integer) as Long
    Dim curSomBCINSS As Currency, curTetoINSS As Currency, varAliqINSS As Variant, curBCINSS As Currency

    curSomBCINSS = DSum("BCINSS", "qryFolha13_Lancamentos", "CodFolha1 =" & Me.CodFolha)
    curTetoINSS = DMax("Ate", "qryFolha13_INSSAliquo")
    curBCINSS = IIf(curSomBCINSS <= curTetoINSS, curSomBCINSS, curTetoINSS)
    varAliqINSS = DLookup("Cota", "qryFolha13_INSSAliquo", "De <=" & Replace(curBCINSS, ",", ".") & "AND Ate >=" & Replace(curBCINSS, ",", "."))
    Select case ret
    case 1
    FuncTeste = varAliqINSS
    case 2
    FuncTeste= curBCINSS * varAliqINSS / 100
    case 3
    'outro calculo
    End Select
    End Function

    Note que na função podemos ter quantos cálculos quisermos e cada um deles poderá ser chamado usando o parâmetro ret o qual irá dizer á função qual cálculo retornar.

    Abraços


    Última edição por Balem em 31/5/2012, 20:03, editado 1 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidado 31/5/2012, 12:46

    Melhor ainda amigão, eu havia pensado nisso, no entanto não cheguei a tentar. Mas assim é mais efeciente!

    Cumprimentos.
    avatar
    Convidad
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidad 31/5/2012, 12:49

    O bom de um fórum, Harysohn, é justamente isso.

    A ajuda dos amigos.

    As vezes estamos "encafifados" em um código e não vemos a solução, vem outro e vê a solução de pronto.

    Grande abraço
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  rgondim 31/5/2012, 19:14

    Ok, Balem.

    Tenho apenas algumas dúvidas sobre como chamar a função e o usar o argumento Ret.

    Para adicionar varAliqINSS no campo Aliquota, como devo fazer? Tentei aqui e me perdi...
    avatar
    Convidad
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidad 31/5/2012, 20:03

    Gondim

    Antes de tudo, veja que eu retirei um parâmetro da função que estava demais.
    Talvez seja por isso que você não tenha entendido.

    Então, no código, qual é o "case" que irá retornar o valor varAliqINSS ?
    É o 1, certo?

    Então podemos chamar a função de 2 maneiras:

    Colocando na Fonte do Controle dessa caixa:

    = FuncTeste(1)

    ou
    No evento Ao Abrir do formulário:

    Me.txtAliquota = FuncTeste(1)

    Abraços
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  rgondim 1/6/2012, 02:01

    Ok, certíssimo. Mais uma nova que aprendi.

    Obrigado.

    Por fim, é possível liberar a memória tal como feito em procedimentos envolvendo DAO.Recordset?
    avatar
    Convidad
    Convidado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Convidad 1/6/2012, 02:25

    Uma variável local e uma função fica na memória somente durante sua chamada.
    Então não há necessidade de liberar a memória, já que a vida tanto da memória local quanto de uma função é curta.

    Obrigado pelo retorno

    Boa sorte!

    Conteúdo patrocinado


    [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente Empty Re: [Resolvido]Realizar vários cálculos em Public Function e chamá-los individualmente

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 02:10