Search code examples
sql-serverms-accesssql-server-2016-express

SQL Server Linked Server to MS Access - DSN Architecture Mismatch Error


I am using SQL Server 2016 Express, trying to connect to an Access Database on another server on the network, via an ODBC Data Source. I have looked up a number of tutorials and tried a variety of different methods, but cannot get the connection to work. Ultimately I seem to be stuck on this error:

[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application (Microsoft SQL Server, Error: 7303)

To rule out permissions and networking issues, I have copied the database to the local machine to try to create a test connection. I have verified that the security settings for Microsoft Access are OFF (meaning there is no username / password to log in). I am making sure to use the 32-bit version of the ODBC Data Source Administrator (in Windows\SysWOW64\), have tried a variety of settings in SQL Server, and have even tried creating the linked server directly via T-SQL code, like this:

EXEC sp_addlinkedserver
     @server = N'TESTLINK',
     @provider = N'MSDASQL',
     @srvproduct = N'',
     @datasrc = N'TEST';

Here are the current settings I am using to try to create this connection, where I keep getting this error:

ODBC Data Source

New Linked Server Dialog

Linked Server Security Settings

Error Message

Note that I have also tried each of the settings on the Security tab of the New Linked Server dialog, but have received errors each time.

If anyone has an idea to what I might be missing here, please let me know.

EDIT: There is a similar question here, but it is an old thread, and the highly rated answers were unsuccessful for me (I had already tried):

The specified DSN contains an architecture mismatch between the Driver and Application. JAVA

The key to resolving my issue was that I needed to specifically download the 64-bit version of the Access ODBC driver, which can be downloaded here:

https://www.microsoft.com/en-US/download/details.aspx?id=13255


Solution

  • If the SQL Server process is running as 64-bit (which seems extremely likely these days) then it needs to have the 64-bit version of the Access Database Engine components installed. They are available for download here.