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]Chamar nome da função armazenado em variável (Call Variavel)

    Compartilhe

    Feltz
    Novato
    Novato

    Respeito às Regras 100%

    Localização : Anónimo
    Mensagens : 18
    Registrado : 15/12/2009

    [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Feltz em Seg 13 Out 2014, 13:49

    Olá amigos,

    Gostaria de um auxilio na seguinte situação:

    Em um código que tenho, preciso chamar um outro procedimento, porém o nome desse procedimento está em um campo de uma tabela...
    Tentei fazer com o código abaixo, onde busquei o valor do campo da tabela (procedimento que quero chamar) e gravei em uma variavel... depois usei a função call para chamar, porém gera o erro: "Era esperado Sub, Function ou Property"

    Código:
    'Variável que grava o código da regra a ser calculada
    Dim VRegra As String

    'Busca a verba e a respectiva regra de calculo
    VRegra = DLookup("COD_REGRA", "TBL_REGRA", "ID_REGRA  = 1")

    'Chama o procedimento com o nome gravado na variavel VRegra
    Call VRegra

    É possivel chamar um procedimento com o nome dele armazenado um campo de tabela? alguma sugestão?
    Obrigado,
    Abraço
    Feltz
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1697
    Registrado : 11/11/2009

    Re: [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Dilson em Seg 13 Out 2014, 14:08

    Gera o erro porque a função não existe.
    Ex.
    Vamos supor que a variável traga o nome "ProcedimentoX", logo terá que ter a sub ou função existente no código, assim:

     Function ProcedimentoX()
        'Codigo
     End Function

    Se o que está armazenado na tabela é um argumento da função, então:

    Call ProcedimentoX(VRegra)

    e a função estará esperando o argumento:

      Function ProcedimentoX(argumento)
         'Codigo
      End Function

    Feltz
    Novato
    Novato

    Respeito às Regras 100%

    Localização : Anónimo
    Mensagens : 18
    Registrado : 15/12/2009

    Re: [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Feltz em Seg 13 Out 2014, 14:32

    Certo, eu fiz o seguinte:

    Eu gravei na variável VRegra o valor: R0001...

    Dai depois tenho o código abaixo:

    Código:
    Sub R0001()
    MsgBox 100 / 4
    End Sub

    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1697
    Registrado : 11/11/2009

    Re: [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Dilson em Seg 13 Out 2014, 19:45

    Tente assim:
    Call Eval(VRegra & "()")

    A sua função não pode estar dentro do form, ou seja, não funciona com subs. Tem de estar num módulo, assim:

    Public Function R0001()
    'Codigo
    End Function

    O modificador Public é opcional

    Feltz
    Novato
    Novato

    Respeito às Regras 100%

    Localização : Anónimo
    Mensagens : 18
    Registrado : 15/12/2009

    Re: [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Feltz em Seg 13 Out 2014, 21:49

    Dilson,

    Com a sua sugestão funcionou perfeitamente!
    Muito Obrigado pela ajuda amigo.

    Abraço e boa semana.
    Att,
    Luis
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1697
    Registrado : 11/11/2009

    Re: [Resolvido]Chamar nome da função armazenado em variável (Call Variavel)

    Mensagem  Dilson em Ter 14 Out 2014, 02:35

    Agradecemos o feedBack e por marcar o Resolvido. Até a próxima!

    Titulo modificado para facilitar ferramenta de buscas:
    De: Call + Procedimento com o nome armazenado em tabela
    Para: Chamar nome da função armazenado em variável (Call Variavel)

      Data/hora atual: Dom 19 Nov 2017, 21:16