Erro "Ação Falhou Número de Erro: 2950" ao executar uma macro que chama uma função VBA numa base de dados do Access

Número original da BDC: 931407

Nota

Se for um cliente de Pequenas Empresas, encontre recursos de resolução de problemas e de aprendizagem adicionais no site Suporte para Pequenas Empresas .

Sintomas

Quando executa uma macro que chama uma função do Microsoft Visual Basic for Applications (VBA) numa base de dados do Microsoft Office Access 2007 ou posterior, recebe a seguinte mensagem de erro:

Falha na Ação
Nome da Macro: MacroName
Condição: Condição
Nome da Macro: RunCode
Argumentos: Argumentos
Número de Erro: 2950

Causa

Este problema ocorre se a base de dados não for fidedigna pelo Access. Por predefinição, as versões recentes do Access abrem bases de dados que não são fidedignas no modo Desativado. No modo Desativado, o conteúdo executável está desativado.

Resolução

Se confiar no autor da base de dados e se quiser ativar a base de dados, utilize um dos seguintes métodos.

Método 1: Ativar a base de dados para a sessão atual

Quando utiliza este método, o Access ativa a base de dados até fechar a base de dados. Para ativar a base de dados para a sessão atual, siga estes passos:

  1. Na Barra de Mensagens, clique em Opções.
  2. Na caixa de diálogo Opções de Segurança do Microsoft Office , clique em Ativar este conteúdo e, em seguida, clique em OK.

Nota

Dependendo da sua versão do Access, poderá ter de repetir estes passos sempre que abrir a base de dados.

Método 2: mover a base de dados para uma localização fidedigna

Para tal, siga estes passos:

  1. Determine as localizações fidedignas para as quais pode mover a base de dados. Para tal, siga estes passos:

    1. Clique em Ficheiro e, em seguida, clique em Opções.

    2. Clique em Centro de Confiança e, em seguida, clique em Definições do Centro de Confiança em Centro de Confiança do Microsoft Office Access.

    3. Clique em Localizações Fidedignas e, em seguida, utilize um dos seguintes procedimentos:

      • Tenha em atenção os caminhos das localizações fidedignas listadas.
      • Adicione uma nova localização fidedigna. Para tal, clique em Adicionar nova localização e, em seguida, especifique o caminho da localização que pretende adicionar.
  2. Mova a base de dados do Access para a localização fidedigna que especificou.

Mais Informações

Pode utilizar uma AutoExec macro para testar se uma base de dados é fidedigna quando abre a base de dados. Além disso, a macro pode abrir um formulário que apresenta uma mensagem personalizada aos utilizadores se a base de dados não for fidedigna. Esta mensagem permite que os utilizadores saibam que a base de dados tem de ser ativada ou fidedigna para que o código seja executado com êxito.

Para criar a AutoExec macro e o formulário, siga estes passos:

  1. Crie um novo formulário na vista Estrutura.

  2. Adicione uma caixa de texto ou uma etiqueta ao formulário e, em seguida, escreva as informações que pretende apresentar ao utilizador.

  3. Guarde e, em seguida, feche o formulário.

  4. Crie uma macro e, em seguida, dê o nome à macro AutoExec.

  5. Mostrar a coluna Condições .

  6. Escreva a seguinte linha na coluna Condições :

    CurrentProject.IsTrusted = False

  7. Na coluna Ações , clique em AbrirFormulário.

  8. Na caixa Nome do Formulário , em Argumentos de Ação, clique no formulário que criou no passo 1.

  9. Guarde e, em seguida, feche a macro.

Quando a base de dados é aberta, a AutoExec macro é iniciada e, em seguida, testa a IsTrusted condição. Se a base de dados não for fidedigna pelo Access, a macro abre o formulário que especificou na ação OpenForm da macro.