Errore "Action Failed Error Number: 2950" durante l'esecuzione di una macro che chiama una funzione VBA in un database di Access

Numero KB originale: 931407

Nota

Per i clienti di Small Business sono disponibili altre risorse per la risoluzione dei problemi e l'apprendimento sul sito del Supporto tecnico per Small Business.

Sintomi

Quando si esegue una macro che chiama una funzione di Microsoft Visual Basic, Applications Edition (VBA) in un database di Microsoft Office Access 2007 o versioni successive, viene visualizzato il messaggio di errore seguente:

Azione non riuscita
Nome macro: MacroName
Condizione: Condizione
Nome macro: RunCode
Argomenti: Argomenti
Numero errore: 2950

Causa

Questo problema si verifica se il database non è considerato attendibile da Access. Per impostazione predefinita, le versioni recenti di Access aprono database non attendibili in modalità Disabilitata. In modalità Disabilitata il contenuto eseguibile è disabilitato.

Risoluzione

Se si considera attendibile l'autore del database e si vuole abilitare il database, usare uno dei metodi seguenti.

Metodo 1: abilitare il database per la sessione corrente

Quando si usa questo metodo, Access abilita il database fino alla chiusura del database. Per abilitare il database per la sessione corrente, seguire questa procedura:

  1. Nella barra dei messaggi fare clic su Opzioni.
  2. Nella finestra di dialogo Opzioni di sicurezza di Microsoft Office fare clic su Abilita questo contenuto e quindi fare clic su OK.

Nota

A seconda della versione di Access, potrebbe essere necessario ripetere questi passaggi ogni volta che si apre il database.

Metodo 2: Spostare il database in un percorso attendibile

A tal fine, attenersi alla seguente procedura:

  1. Determinare i percorsi attendibili in cui è possibile spostare il database. A tal fine, attenersi alla seguente procedura:

    1. Fare clic su File e quindi su Opzioni.

    2. Fare clic su Centro protezione e quindi su Impostazioni centro protezione in Centro protezione di Microsoft Office Access.

    3. Fare clic su Percorsi attendibili e quindi usare una delle procedure seguenti:

      • Prendere nota dei percorsi dei percorsi attendibili elencati.
      • Aggiungere un nuovo percorso attendibile. A tale scopo, fare clic su Aggiungi nuovo percorso e quindi specificare il percorso del percorso da aggiungere.
  2. Spostare il database di Access nel percorso attendibile specificato.

Ulteriori informazioni

È possibile utilizzare una AutoExec macro per verificare se un database è attendibile quando si apre il database. Inoltre, la macro può aprire una maschera che visualizza un messaggio personalizzato per gli utenti se il database non è attendibile. Questo messaggio informa gli utenti che il database deve essere abilitato o attendibile per l'esecuzione corretta del codice.

Per creare la AutoExec macro e il modulo, seguire questa procedura:

  1. Creare una nuova maschera in visualizzazione Struttura.

  2. Aggiungere una casella di testo o un'etichetta al modulo e quindi digitare le informazioni che si desidera visualizzare all'utente.

  3. Salvare e chiudere il modulo.

  4. Creare una macro e quindi denominare la macro AutoExec.

  5. Visualizzare la colonna Condizioni .

  6. Digitare la riga seguente nella colonna Condizioni :

    CurrentProject.IsTrusted = False

  7. Nella colonna Azioni fare clic su OpenForm.

  8. Nella casella Nome modulo in Argomenti azione fare clic sul modulo creato nel passaggio 1.

  9. Salvare e chiudere la macro.

All'apertura del database, la AutoExec macro viene avviata e quindi viene eseguita la verifica della IsTrusted condizione. Se il database non è considerato attendibile da Access, la macro apre la maschera specificata nell'azione OpenForm della macro.