Come risolvere l’errore di runtime di MS Access 3146 “Chiamata ODBC non riuscita”?
Riassunto: L'errore di runtime di Access 3146 - Chiamata ODBC non riuscita si verifica quando si utilizza il codice VBA per accedere al database esterno in Microsoft Access. Di solito si verifica quando la connessione ODBC non riesce a causa di query errate, corruzione del file di database o altri motivi. Questo blog esamina le possibili cause dell'errore di runtime 3146 in Access e i metodi di risoluzione dei problemi per risolverlo. Verrà inoltre illustrato uno strumento avanzato di riparazione di Access che può aiutare a riparare il file di database danneggiato in modo rapido e semplice.
Molti utenti di Access utilizzano il protocollo ODBC per collegare le fonti di dati a MS Access. L’origine dati contiene file, fogli di lavoro e informazioni di connessione al database. Per collegare un’origine dati ad Access, è necessario definire il nome dell’origine dati (DSN) e il driver ODBC. Access non dispone di driver integrati per la connessione ad altri database esterni come Oracle, SQL Server, MySQL Server, ecc. Per questo è necessario installare un driver ODBC adatto e compatibile con il sistema.
Se si verifica un problema con il driver ODBC o se la connessione ODBC non riesce a connettersi a un’origine dati, in MS Access può verificarsi l’errore di runtime 3146 “ODBC Call Failed”. L’errore può verificarsi anche se si definisce l’origine dati direttamente con ODBC Driver Manager tramite un codice VBA. Di solito si verifica se si utilizza una query errata per passare la stringa di connessione o se ci sono altri problemi di codice.
Scenari frequenti di errore di runtime di MS Access 3146
Ecco alcuni scenari comuni in cui si può verificare l’errore “ODBC Call Failed”:
- Quando si cerca di aprire una tabella del database di Access per modificare un record.
- Se si cerca di collegare Microsoft Access a SQL Server tramite il driver ODBC.
- Se si cerca di aprire il file del database di Access su una rete condivisa.
- Se si cerca di importare i dati di SQL Server in Microsoft Access tramite una connessione ODBC.
Cause dell’errore “Chiamata ODBC non riuscita” in Access
L’errore Chiamata ODBC fallita indica un problema con la connessione ODBC del database Access. A parte questo, ci sono diversi motivi che possono portare a questo problema. Alcuni di questi sono:
- Il driver ODBC (gestore dell’origine dati ODBC) non è compatibile con la versione di Access
- File di origine dati corrotto
- Non si dispone delle autorizzazioni necessarie per accedere all’origine dati.
- Problema di connessione alla rete
- Configurazione errata dell’origine dati nell’amministratore dell’origine dati ODBC
- Il file del database di Access è danneggiato
- Il driver ODBC non è installato correttamente
- Percorsi non corretti verso la rete comune possono portare a incongruenze
- Disattivata l’opzione “Pooling delle connessioni
- Il firewall di Windows blocca la connessione tra MS Access e l’origine dati esterna.
- DSN (nome dell’origine dati) non definito o errato
- Credenziali ODBC errate
Metodi di risoluzione dei problemi per correggere l’errore “Chiamata ODBC non riuscita” in Access
È possibile che venga visualizzato il messaggio di errore Connessione ODBC fallita se il database di Access non dispone di autorizzazioni sufficienti per utilizzare il protocollo ODBC. Per prima cosa, quindi, accertatevi che il database desiderato abbia tutte le autorizzazioni necessarie per eseguire determinate azioni tramite la connessione ODBC. In caso contrario, provare i metodi seguenti per risolvere l’errore.
Metodo 1: Controllare il codice VBA
L’errore di runtime di MS Access 3146 – Chiamata ODBC non riuscita può verificarsi se c’è un problema con il codice VBA utilizzato per interagire con l’origine dati esterna tramite una connessione ODBC. L’errore si verifica solitamente quando si definisce un nome di origine dati (DSN) con una stringa di connessione. Può verificarsi quando la stringa di connessione nel codice VBA non corrisponde alla configurazione dell’origine dati esterna. Per risolvere il problema, verificare e correggere i problemi nel codice. Ecco i passaggi da seguire:
- Aprite il database di Access, andate su Strumenti database e fate clic sulla scheda Visual Basic.
- Viene visualizzato l’editor di Microsoft Visual Basic for Application.
Controllate il codice VBA ed eseguite le seguenti operazioni per risolvere il problema nel codice:
- Assicurarsi di utilizzare la sintassi corretta per la stringa di connessione.
- Controllare il nome degli oggetti.
- Controllare tutta la sintassi, i riferimenti e le query del codice.
Metodo 2: Controllare le credenziali ODBC
L’errore di chiamata ODBC di Access non riuscita può verificarsi quando Access non riesce ad autenticare il DSN (Data Source Name). Questo accade quando la connessione ODBC fallisce a causa di credenziali errate o non corrispondenti. È possibile controllare e modificare le credenziali ODBC per risolvere il problema. Ecco i passaggi da seguire:
- Aprite il database di Access, fate clic su Dati esterni e selezionate Database ODBC.
- Viene visualizzata la finestra Recupera dati esterni – Database ODBC. Fare clic su “Collegamento all’origine dati mediante la creazione di una tabella collegata”.
- Nella finestra Seleziona origine dati, selezionare Origine dati macchina e fare clic sull’opzione Nuovo.
- Nella finestra di dialogo Crea nuova origine dati, fare clic su SQL Server e selezionare Avanti.
- Quindi fare clic sull’opzione Fine.
- Nella finestra Crea una nuova origine dati in SQL Server, verificare le credenziali e selezionare Avanti.
Verificare se l’errore 3146 è stato corretto. In caso contrario, verificare l’impostazione del database della connessione ODBC.
Metodo 3: Verifica della connessione ODBC Impostazione del database
L’errore Access ODBC Call Failed può verificarsi anche se la connessione ODBC non è configurata correttamente o se si verificano i seguenti problemi:
- Si sta utilizzando un driver ODBC incompatibile.
- Il file DSN è danneggiato.
- Il DSN non è configurato correttamente.
- Il DSN non è riferito al database corretto (quando si utilizza una stringa di connessione in VBA).
Per risolvere il problema, installare un driver ODBC compatibile e ricreare il file DSN.
Metodo 4: Controllo della configurazione di rete
L’errore di chiamata ODBC fallita può verificarsi quando la connessione tra MS Access e l’origine dati esterna è fallita quando si utilizza il protocollo ODBC. Di solito si verifica a causa di impostazioni errate del firewall, del software antivirus o delle impostazioni di rete. Per risolvere il problema, è possibile disattivare temporaneamente il firewall e l’antivirus. È inoltre possibile controllare la connessione TCP attiva e altre informazioni relative alla rete utilizzando il Prompt dei comandi. Ecco i passaggi da seguire:
- Digitare cmd nel campo di ricerca del sistema e premere il tasto Invio.
- Nella finestra del prompt, digitare netstat -n -a.
Vengono visualizzate le informazioni di rete, tra cui indirizzo IP, numeri di porta, TCP, nomi di dominio completamente qualificati, porte monitorate, protocolli e altro ancora. Controllare le informazioni di rete. Se si riscontra un problema, riconfigurare le impostazioni di configurazione della rete o contattare il team IT.
Metodo 5: Abilitare le impostazioni di pooling nell’amministratore dell’origine dati ODBC
L’opzione “Connection Pooling” del driver ODBC garantisce le connessioni al database. Se l’opzione di pooling è disattivata, può verificarsi l’errore “Connessione ODBC fallita”. È possibile aprire l’amministratore dell’origine dati ODBC per verificare e attivare il pooling delle connessioni. A tale scopo, seguire i passaggi indicati di seguito:
- Aprire il pannello di controllo.
- Fare doppio clic sull’opzione Strumenti di amministrazione nella finestra del Pannello di controllo.
- Nella finestra di amministrazione, individuare l’origine dati ODBC (64 bit) e fare doppio clic su di essa.
- Viene visualizzata la finestra ODBC Data Source Administrator. Andare all’opzione Pooling di connessioni e selezionare l’opzione “Abilita i contatori PerfMon del pooling di connessioni ODBC per la risoluzione dei problemi”.
- Fare clic su OK.
Nella finestra ODBC Data Source Administrator è possibile controllare le impostazioni delle schede Driver, User DSN, System DSN e Driver e verificare che siano corrette.
Metodo 6: Utilizzare i protocolli di tracciamento
L’opzione di tracciamento ODBC fornisce un registro dettagliato delle tracce della comunicazione tra MS Access e altre fonti di dati esterne. Quando l’opzione di tracciamento è attivata nel driver, è possibile utilizzare questi registri dettagliati per determinare la causa del problema di connessione ODBC e risolvere il problema. È possibile aprire l’amministratore dell’origine dati ODBC e fare clic sull’opzione Tracing per visualizzare il registro delle chiamate del driver ODBC.
Metodo 7: Riparare il database di Access
L’errore di connessione ODBC di Access può verificarsi anche a causa di oggetti di database, query, tabelle o indici danneggiati. I danni al file di database di Access possono causare incoerenze e influenzare la connessione ODBC. È possibile riparare il database di Access utilizzando l’utilità Comprimi e ripara integrata in Access. Ecco i passaggi per utilizzare questa utility:
- Aprite il database Access desiderato.
- Spostarsi sul file e fare clic sull’opzione Info.
- Fare clic sull’opzione Compatta e ripara database.
- Andare alla posizione originale del database per visualizzare il database riparato.
Se per qualche motivo l’utility Compact and Repair non è in grado di riparare il file di database, optate per uno strumento professionale di riparazione di Access. Stellar Repair for Access è un potente strumento in grado di riparare i file di database di Access danneggiati o corrotti (.ACCDB/.MDB). È possibile scaricare la versione demo del software che consente di eseguire la scansione del file danneggiato e di visualizzare in anteprima tutti i dati recuperabili. Lo strumento è compatibile con tutte le edizioni di Windows, compreso Windows 11.
Alla fine
L’errore di runtime 3146 può verificarsi in MS Access quando la connessione al protocollo ODBC non è riuscita. Provare i metodi di risoluzione dei problemi indicati in questo post per risolvere il problema. Se il problema si è verificato a causa di un database danneggiato, è possibile utilizzare Stellar Repair for Access per riparare il database con il 100% di integrità. Lo strumento è compatibile con tutte le versioni di MS Access, compreso MS Access 2019. Scaricate la versione demo del software per verificarne le caratteristiche prima di acquistarlo.