Erreur « Numéro d’erreur d’échec de l’action : 2950 » lors de l’exécution d’une macro qui appelle une fonction VBA dans une base de données Access

Numéro de la base de connaissances d’origine : 931407

Remarque

Si vous êtes une petite entreprise, vous trouverez des ressources de dépannage et d’apprentissage supplémentaires sur le site Support pour les petites entreprises.

Symptômes

Lorsque vous exécutez une macro qui appelle une fonction Microsoft Visual Basic pour Applications (VBA) dans une base de données Microsoft Office Access 2007 ou ultérieure, le message d’erreur suivant s’affiche :

Échec de l’action
Nom de la macro : MacroName
Condition : Condition
Nom de la macro : RunCode
Arguments : Arguments
Numéro d’erreur : 2950

Cause

Ce problème se produit si la base de données n’est pas approuvée par Access. Par défaut, les versions récentes d’Access ouvrent des bases de données qui ne sont pas approuvées en mode Désactivé. En mode Désactivé, le contenu exécutable est désactivé.

Résolution

Si vous faites confiance à l’auteur de la base de données et si vous souhaitez activer la base de données, utilisez l’une des méthodes suivantes.

Méthode 1 : Activer la base de données pour la session active

Lorsque vous utilisez cette méthode, Access active la base de données jusqu’à ce que vous fermiez la base de données. Pour activer la base de données pour la session active, procédez comme suit :

  1. Dans la barre des messages, cliquez sur Options.
  2. Dans la boîte de dialogue Options de sécurité Microsoft Office , cliquez sur Activer ce contenu, puis sur OK.

Remarque

Selon votre version d’Access, vous devrez peut-être répéter ces étapes chaque fois que vous ouvrez la base de données.

Méthode 2 : Déplacer la base de données vers un emplacement approuvé

Pour cela, procédez comme suit :

  1. Déterminez les emplacements approuvés vers lesquels vous pouvez déplacer la base de données. Pour cela, procédez comme suit :

    1. Cliquez sur Fichier, puis sur Options.

    2. Cliquez sur Centre de gestion de la confidentialité, puis cliquez sur Paramètres du Centre de gestion de la confidentialité sous Centre de gestion de la confidentialité Microsoft Office Access.

    3. Cliquez sur Emplacements approuvés, puis utilisez l’une des procédures suivantes :

      • Notez les chemins des emplacements approuvés répertoriés.
      • Ajoutez un nouvel emplacement approuvé. Pour ce faire, cliquez sur Ajouter un nouvel emplacement, puis spécifiez le chemin d’accès de l’emplacement que vous souhaitez ajouter.
  2. Déplacez la base de données Access vers l’emplacement approuvé que vous avez spécifié.

Informations supplémentaires

Vous pouvez utiliser une AutoExec macro pour tester si une base de données est approuvée lorsque vous ouvrez la base de données. En outre, la macro peut ouvrir un formulaire qui affiche un message personnalisé aux utilisateurs si la base de données n’est pas approuvée. Ce message indique aux utilisateurs que la base de données doit être activée ou approuvée pour que le code s’exécute correctement.

Pour créer la AutoExec macro et le formulaire, procédez comme suit :

  1. Créez un formulaire en mode Création.

  2. Ajoutez une zone de texte ou une étiquette au formulaire, puis tapez les informations que vous souhaitez afficher à l’utilisateur.

  3. Enregistrez, puis fermez le formulaire.

  4. Créez une macro, puis nommez la macro AutoExec.

  5. Afficher la colonne Conditions .

  6. Tapez la ligne suivante dans la colonne Conditions :

    CurrentProject.IsTrusted = False

  7. Dans la colonne Actions , cliquez sur OuvrirForm.

  8. Dans la zone Nom du formulaire sous Arguments de l’action, cliquez sur le formulaire que vous avez créé à l’étape 1.

  9. Enregistrez, puis fermez la macro.

Lorsque la base de données s’ouvre, la AutoExec macro démarre, puis teste la IsTrusted condition. Si la base de données n’est pas approuvée par Access, la macro ouvre le formulaire que vous avez spécifié dans l’action OpenForm de la macro.