Erro "Número de erro de falha da ação: 2950" ao executar uma macro que chama uma função VBA em um banco de dados do Access

Número de KB original: 931407

Observação

Se você for um cliente de Pequenas Empresas, encontre recursos adicionais de solução de problemas e aprendizado no site de Suporte para Pequenas Empresas.

Sintomas

Ao executar uma macro que chama uma função do Microsoft Visual Basic for Applications (VBA) em um banco de dados do Microsoft Office Access 2007 ou posterior, você 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 do erro: 2950

Motivo

Esse problema ocorrerá se o banco de dados não for confiável pelo Access. Por padrão, versões recentes do Access abrem bancos de dados que não são confiáveis no modo desabilitado. No modo desabilitado, o conteúdo executável está desabilitado.

Resolução

Se você confiar no autor do banco de dados e se quiser habilitar o banco de dados, use um dos métodos a seguir.

Método 1: Habilitar o banco de dados para a sessão atual

Quando você usa esse método, o Access habilita o banco de dados até que você feche o banco de dados. Para habilitar o banco de dados para a sessão atual, siga estas etapas:

  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 Habilitar esse conteúdo e clique em OK.

Observação

Dependendo da versão do Access, talvez seja necessário repetir essas etapas sempre que abrir o banco de dados.

Método 2: mover o banco de dados para um local confiável

Para fazer isso, siga estas etapas:

  1. Determine locais confiáveis para os quais você pode mover o banco de dados. Para fazer isso, siga estas etapas:

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

    2. Clique em Central de Confiabilidade e em Configurações da Central de Confiabilidade na Central de Confiabilidade do Microsoft Office Access.

    3. Clique em Locais Confiáveis e, em seguida, use um dos seguintes procedimentos:

      • Observe os caminhos dos locais confiáveis listados.
      • Adicione um novo local confiável. Para fazer isso, clique em Adicionar novo local e especifique o caminho do local que você deseja adicionar.
  2. Mova o banco de dados do Access para o local confiável especificado.

Mais informações

Você pode usar uma AutoExec macro para testar se um banco de dados é confiável quando você abre o banco de dados. Além disso, a macro pode abrir um formulário que exibe uma mensagem personalizada aos usuários se o banco de dados não for confiável. Essa mensagem permite que os usuários saibam que o banco de dados deve ser habilitado ou confiável para que o código seja executado com êxito.

Para criar a AutoExec macro e o formulário, siga estas etapas:

  1. Crie um novo formulário no modo design.

  2. Adicione uma caixa de texto ou um rótulo ao formulário e digite as informações que deseja exibir ao usuário.

  3. Salve e feche o formulário.

  4. Crie uma macro e nomeie a macro AutoExec.

  5. Mostrar a coluna Condições .

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

    CurrentProject.IsTrusted = False

  7. Na coluna Ações , clique em OpenForm.

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

  9. Salve e feche a macro.

Quando o banco de dados é aberto, a AutoExec macro é iniciada e, em seguida, testa a IsTrusted condição. Se o banco de dados não for confiável pelo Access, a macro abrirá o formulário especificado na ação OpenForm da macro.