Di tanto in tanto, i nostri clienti ci chiedono quali sono le loro opzioni quando il loro tentativo di utilizzare un database di Access poiché il back-end della loro applicazione non riesce con:
[Microsoft][ODBC Driver Manager]The specified DSN contains an architecture mismatch between the Driver and Application
La causa del problema è che l'architettura del driver utilizzato per connettersi ad Access è diversa da quella della loro applicazione, ovvero stanno tentando di utilizzare un driver di Access a 64 bit con un'applicazione a 32 bit. Finiscono in questa situazione perché le versioni recenti di Access utilizzano il formato ACCDB per i loro file di database e il driver di Access per i file ACCDB è solo a 64 bit.
(Il driver in questione è un driver ODBC per Access. ODBC è una tecnologia di accesso ai dati che consente alle applicazioni di connettersi a qualsiasi database per il quale è disponibile un driver ODBC.)
Data questa situazione, sono disponibili le seguenti soluzioni alternative:
- Utilizzare invece un database di Access in formato MDB, che, in Microsoft Access, è denominato Database di Microsoft Access (formato 2002-2003) nella finestra di dialogo File nuovo database.
Windows include un driver ODBC di Access a 32 bit, che è compatibile con i file MDB (ma non con i file ACCDB). Sarà necessario configurare un'origine dati di Access nella versione a 32 bit di ODBC Administrator per utilizzare questo driver. Per eseguire la versione a 32 bit dell'amministratore ODBC, nella finestra di dialogo Esegui di Windows, digitare:
%windir%\syswow64\odbcad32.exe
È necessario verificare se è necessaria una delle funzionalità di accesso aggiuntive fornite dai file ACCDB prima di impegnarsi in questa soluzione alternativa.
- Installa AccessDatabaseEngine di Microsoft. Ciò fornisce un driver ODBC di accesso a 32 bit che supporta i file di database in formato ACCDB. Tuttavia, Windows 8 e versioni successive non sono elencati come sistemi operativi supportati per AccessDatabaseEngine.
- Utilizzare Easysoft ODBC-ODBC Bridge, che consente a un'applicazione a 32 bit di utilizzare un driver ODBC a 64 bit (e viceversa).