Då och då frågar våra kunder oss vilka alternativ de har när deras försök att använda en Access-databas eftersom deras applikations baksida misslyckas med:
[Microsoft][ODBC Driver Manager]The specified DSN contains an architecture mismatch between the Driver and Application
Orsaken till problemet är att arkitekturen för drivrutinen som används för att ansluta till Access skiljer sig från den för deras applikation, det vill säga de försöker använda en 64-bitars Access-drivrutin med 32-bitars applikation. De hamnar i den här situationen eftersom de senaste versionerna av Access använder ACCDB-formatet för sina databasfiler, och Access-drivrutinen för ACCDB-filer är endast 64-bitars.
(Drivrutinen i fråga är en ODBC-drivrutin för Access. ODBC är en dataåtkomstteknologi som gör det möjligt för applikationer att ansluta till vilken databas som helst för vilken en ODBC-drivrutin är tillgänglig.)
Med tanke på den här situationen finns följande lösningar tillgängliga:
- Använd istället en Access-databas i MDB-format, som i Microsoft Access är märkt Microsoft Access-databaser (2002-2003-format) i dialogrutan Arkiv ny databas.
Windows inkluderar en 32-bitars Access ODBC-drivrutin, som är kompatibel med MDB-filer (men inte ACCDB-filer.) Du måste konfigurera en Access-datakälla i 32-bitarsversionen av ODBC Administrator för att använda den här drivrutinen. För att köra 32-bitarsversionen av ODBC Administrator, i Windows Kör-dialogrutan, skriv:
%windir%\syswow64\odbcad32.exe
Du måste dock kontrollera om du behöver någon av de ytterligare Access-funktioner som ACCDB-filer tillhandahåller innan du bestämmer dig för den här lösningen.
- Installera Microsofts AccessDatabaseEngine. Detta ger en 32-bitars Access ODBC-drivrutin som stöder databasfiler i ACCDB-format. Windows 8 och senare är dock inte listade som operativsystem som stöds för AccessDatabaseEngine.
- Använd Easysoft ODBC-ODBC Bridge, som gör att en 32-bitars applikation kan använda en 64-bitars ODBC-drivrutin (och vice versa).