Como o Access resolve as referências Visual Basic for Applications

Número original da BDC: 824255

Nota

Este artigo aplica-se a uma base de dados do Microsoft Access (.mdb) e a um projeto do Microsoft Access (.adp). Requer codificação especializada, interoperabilidade e competências multiutilizadas.

Resumo

Este artigo aborda a sequência de tarefas que o Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002, Access 2000 ou Access 97 executa para resolver as referências no Microsoft Visual Basic for Applications (VBA).

Mais Informações

Importante

Esta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorreta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Para maior segurança, faça uma cópia de segurança do registo antes de o modificar. Deste modo, pode restaurar o registo se ocorrer um problema. Para obter mais informações sobre como fazer uma cópia de segurança e restaurar o registo, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft: 322756 Como fazer uma cópia de segurança e restaurar o registo no Windows

No Access, pode ver as referências do VBA que estão atualmente selecionadas através do visual basic Revisor. Para tal, siga estes passos:

  1. Inicie o Access.

  2. Abra uma base de dados do Access.

  3. Prima Alt+F11 para abrir o visual basic Revisor.

  4. Na janela visual basic Revisor, clique em Referências no menu Ferramentas.

    Na caixa de diálogo Referências , pode ver as referências selecionadas.

Nota

Quando seleciona uma referência, também pode ver as informações que correspondem ao ficheiro que tem de ser carregado para utilizar a referência.

O ficheiro pertinente pode ser uma biblioteca de tipos, uma biblioteca de objetos ou uma biblioteca de controlo. O ficheiro pertinente para cada referência é carregado de acordo com as informações apresentadas na caixa de diálogo Referências . No entanto, se o ficheiro não for encontrado, o Access procura o ficheiro em localizações diferentes no seu computador.

Para cada referência VBA selecionada, o Access executa as seguintes tarefas:

  • O Access verifica se o ficheiro referenciado já está carregado.

  • O Access verifica se a chave de RefLibPaths registo existe se o ficheiro referenciado não está atualmente carregado.

    Se a chave do registo existir, o RefLibPaths Access procura um valor com nome que tenha o mesmo nome que a referência. Se existir uma correspondência, o Access carrega a referência a partir do caminho mencionado no valor com nome.

    Nota

    Pode adicionar manualmente a chave de RefLibPaths registo ao registo e, em seguida, pode adicionar os nomes e as localizações de quaisquer suplementos ou de quaisquer bibliotecas que estejam na chave do RefLibPaths registo. Para tal, siga estes passos:

    1. Clique emIniciar e, em seguida, clique em Executar.

    2. Na caixa Abrir, digite regedit e, em seguida, clique em OK.

    3. Na janela Revisor registo, localize a seguinte chave de registo:

      Access 2007: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access

      Access 2003: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access

      Access 2002: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Access

      Access 2000: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\Access

      Access 97: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\Access

    4. Clique com o botão direito do rato na chave de registo do Access , aponte para Novo e, em seguida, clique em Chave.

    5. Atribua o nome à chave RefLibPathsrecém-criada .

    6. Clique em RefLibPaths.

    7. Clique com o botão direito do rato em qualquer parte do painel direito e, em seguida, clique em Valor da cadeia.

    8. Atribua o nome string ao valor de Cadeia recentemente criado com o mesmo nome que a referência VBA.

    9. Clique com o botão direito do rato no valor Cadeia que criou no passo 8 e, em seguida, clique em Modificar.

    10. Na caixa de diálogo Editar Cadeia , escreva a localização do ficheiro que tem de ser carregado para corresponder à referência no VBA.

      O nome do valor do registo tem de ser o nome do ficheiro e a extensão. A localização (dados de valor) tem de ser o caminho e o nome do ficheiro. Por exemplo, se definir uma referência para a base de dados de exemplo da Northwind, pode adicionar os seguintes valores:

      • Nome do Valor: Northwind.mdb
      • Dados do Valor: C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb
    11. Repita o passo 7 até ao passo 10 para adicionar os nomes e para adicionar as localizações dos suplementos adequados ou das bibliotecas adequadas como valores de Cadeia.

    12. No menu Ficheiro , clique em Sair.

  • O Access utiliza oSearchPathAPI para procurar o ficheiro referenciado se a chave de registo RefLibPaths não existir ou não contiver uma referência correta. As seguintes pesquisas são efetuadas.

    Área de Pesquisa Descrição
    Diretório de Aplicações Localização do Msaccess.exe.
    Diretório Atual Diretório que vê se clicar em Abrir no menu Ficheiro .
    Diretório de Sistema A pasta Sistema e a pasta System32 localizadas na pasta windows ou na pasta WINNT.
    WinDir A pasta onde os ficheiros do sistema operativo são executados. Normalmente, esta é a pasta do Windows ou a pasta WINNT.
    Variável de Ambiente PATH Esta variável de sistema contém uma lista de pastas que são diretamente acessíveis pelo sistema. Microsoft Windows NT 4.0: no Painel de Controlo, faça duplo clique em Sistema e, em seguida, clique no separador Ambiente. A variável PATH está na lista Variáveis do Sistema. Microsoft Windows 2000, Microsoft Windows XP e Microsoft Windows Server 2003: no Painel de Controlo, faça duplo clique em Sistema, clique no separador Avançadas e, em seguida, clique em Variáveis de Ambiente. O CAMINHO está na lista Variáveis do Sistema . Microsoft Windows Vista: no Painel de Controlo, abra o item "Sistema e Manutenção". Clique em Sistema, clique em Definições avançadas do sistema, clique no separador Avançadas e, em seguida, clique em Variáveis de Ambiente. O CAMINHO está na lista Variáveis do Sistema
    Diretório de Ficheiros A pasta que contém o ficheiro .mdb, o ficheiro .mde, o ficheiro .adp ou o ficheiro .ade e quaisquer subpastas.

Nota

O Access não requer a chave de RefLibPaths registo se o ficheiro que pretende referenciar estiver localizado em qualquer um dos diretórios mencionados na tabela.

Se o Access não conseguir encontrar a referência, receberá a seguinte mensagem de erro quando compila o projeto ou quando tenta executar um procedimento:

A sua base de dados ou projeto do Microsoft Office Access contém uma referência em falta ou quebrada ao nome do ficheiro.
*Para garantir que a base de dados ou o projeto funcionam corretamente, tem de corrigir esta referência.

Nota

Enquanto a base de dados estiver aberta, recebe a mensagem de erro anterior uma vez para cada referência quebrada.

Por exemplo, se abrir MyDatabase.mdb e MyDatabase.mdb não tiver uma referência ao Controlo de Calendário da Microsoft e à biblioteca do DAO da Microsoft, receberá duas mensagens de erro, uma para cada referência em falta. Não recebe novamente as mensagens de erro, a menos que não corrija as referências, feche a base de dados e volte a abrir a base de dados. Se corrigir as referências e, em seguida, guardar a base de dados, não receberá as mensagens de erro da próxima vez que abrir a base de dados.

A propriedade BrokenReference

O objeto Aplicação para o Access tem uma BrokenReference propriedade que indica se alguma referência está quebrada. Para verificar a BrokenReference propriedade, siga estes passos:

  1. Inicie o Access.

  2. Abra uma base de dados do Access.

  3. Prima Alt+F11 para abrir o visual basic Revisor.

  4. Prima Ctrl+G para abrir a janela Imediata.

  5. Na janela Imediato, escreva o seguinte comando e, em seguida, prima ENTER:

    ?Application.BrokenReference

    Repare que a BrokenReference propriedade do objeto Aplicação devolve Verdadeiro se existirem referências em falta. Caso contrário, a BrokenReference propriedade devolve Falso.

Referências

Para obter mais informações sobre referências, clique em Ajuda do Microsoft Visual Basic no menu Ajuda , escreva Coleção de Referências na caixa Procurar no painel Assistência e, em seguida, clique em Iniciar pesquisa para ver o tópico.

Para obter mais informações sobre referências em falta, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

283806 funções Visual Basic for Applications (VBA) quebram numa base de dados com referências em falta