Access DSN-Less connection SQL Azure - "Could not find installable ISAM"

Kris L 26 Reputation points
2020-12-14T19:22:47.853+00:00

So I have an Access database and a new Azure SQL Server that I'm trying to connect to (via a linked table) for a proof of concept. First off, I can create a linked table right now. That's obviously not why I'm posting. I'm posting because I much prefer to create linked tables using a "DSN-less" method, because it just works better IMO (MS would seem to agree by reading their article):
https://learn.microsoft.com/en-us/office/troubleshoot/access/create-dsn-less-connection-linkted-table

This method works great for a local SQL Server on our network. However, for some reason it just does not seem to want to work if the SQL Server is Azure. Even when I KNOW I have the correct connection string, because it's working if I use it to create a DSN, I still get "Could not find installable ISAM" if I attempt to use the exact same connection string and the method in the above article. Also, I'm using the ODBC connection string directly from the "Connection Strings" tab found in the Azure portal for the DB in question.

Any idea why the "DSN-less" method fails when used with a SQL Azure DB?

Azure SQL Database
{count} votes

Accepted answer
  1. David Browne - msft 3,846 Reputation points
    2020-12-18T23:17:30.707+00:00

    For Azure SQL Database you need to use a newer ODBC driver than the old Windows "{SQL Server}" driver. I tried that code and it generated multiple errors (which I had to use ODBC Trace to see) when trying to create the tableDef. like

      DIAG [37000] [Microsoft][ODBC SQL Server Driver][SQL Server]Reference to database and/or server name in 'master..sysdatabases' is not supported in this version of SQL Server. (40515) 
    
      DIAG [S0002] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'MSysConf'. (208) 
    

    But when I changed the connection string to use the latest ODBC driver, it worked fine. eg

    stConnect = "ODBC;DRIVER={ODBC Driver 17 for SQL Server};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
    
    2 people found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.