MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    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


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    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


    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    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


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    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

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    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)


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

      Data/hora atual: Sab 03 Dez 2016, 19:37