MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA

    avatar
    andersonzx6r
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 10/08/2014

    Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA Empty Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA

    Mensagem  andersonzx6r em 31/5/2020, 03:46

    Boa noite.

    Estou criando um projeto formado por vários bancos de dados separados. Um destes bancos (arquivo accdb) contém um conjunto de funções e classes (VBA) que são usadas por outros bancos. Ou seja, este banco funciona como uma biblioteca de código que é reutilizado por outros projetos, bastando eu referenciar ela em Ferramentas -> Referências. Vou me referir a este arquivo como [Biblioteca].
    Além do código VBA, também tenho definido formulários e tabelas neste banco. Tenho uma função que abre um destes formulários, que está ligado a uma das tabelas deste banco. Quando eu chamo esta função em outro banco (arquivo diferente), ele abre o formulário e tudo funciona como deveria, ou seja, ele se comporta como se o formulário e as tabelas estivessem no mesmo arquivo que chamou a função.
    O problema que encontrei é o seguinte: não estou conseguindo encontrar um jeito de acessar as tabelas a partir da chamada das funções que estou exportando a partir da [Biblioteca]. Se eu escrevo um código como o a seguir

    dim rs as DAO.Recordset

       set rs = CurrentDb.OpenRecordset("tblMinhaTabela", dbOpenDynaset)

    ocorre um erro dizendo que não existe a tabela com o nome "tblMinhaTabela", mesmo que esta tabela exista no banco [Biblioteca]. Não sei como fazer referência a esta tabela a partir de código VBA.

    Resumindo:

    [Biblioteca]
    Tabelas:
       tblMinhaTabela
    Projeto VBA:
       public function NumeroRegistros as Long
       
       dim rs as DAO.Recordset

           set rs = CurrentDb.OpenRecordset("tblMinhaTabela")

           NumeroRegistros = rs.RecordCount

           rs.Close
       end function

    [Outro banco de dados (arquivo diferente)]
    Referências:
       [Biblioteca]
    Projeto VBA:
       public sub ExibirNumeroRegistros
           msgbox NumeroRegistros ' Vai ocorrer um erro, pois a tabela "tblMinhaTabela" não existe neste banco de dados.
       end sub

    A referência a CurrentDb vai ser ao Outro banco e não a [Biblioteca].

    O estranho é que um formulário dentro de [Biblioteca] consegue achar a tabela, se estiver ligado a ela. Então, se eu abrí-lo por uma chamada de uma função em [Biblioteca], tudo ocorre bem.

    Desde já agradeço se alguém puder me ajudar.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6957
    Registrado : 15/03/2013

    Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA Empty Re: Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA

    Mensagem  ahteixeira em 31/5/2020, 13:16

    Olá Anderson,

    Como a biblioteca é outra base de dados, deve indicar o caminho completo da base de dados e não o currentdb.

    Veja tópico abaixo, se ajuda:
    https://www.maximoaccess.com/t36269-resolvidovincular-varios-bancos-com-varias-tabelas

    Abraço
    avatar
    andersonzx6r
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 10/08/2014

    Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA Empty Re: Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA

    Mensagem  andersonzx6r em 31/5/2020, 13:57

    Bom dia.

    Grato pela resposta, mas ela não trata do problema que eu estou tentando resolver. No meu caso, NÃO VINCULO as tabelas que se encontram em [Biblioteca].
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6957
    Registrado : 15/03/2013

    Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA Empty Re: Acessar tabelas do mesmo banco de dados (arquivo externo) que um projeto referenciado via VBA

    Mensagem  ahteixeira em 31/5/2020, 16:22

    Olá Anderson,

    Talvez seja melhor montar um pequeno exemplo (as duas base de dados) e partilhar para se testar.

    Abraço

      Data/hora atual: 1/12/2020, 14:04