1

I've read most of the discussion surrounding 32-bit/64-bit ODBC driver and application mismatches. I have implemented the suggestions in articles pertaining to the error message in my question, and still have not found success. I recently converted from Windows XP to Windows 8.1, and am trying to reestablish the database connections that I had in XP. I was using localhost with Active Server Pages (classic ASP) serving up data from a local MS Access database via a system DSN - everything was 32-bit and on the same machine. I've enabled all the relevant IIS parameters on my new Windows 8.1 machine, but keep getting the error message described in the subject line. Obviously there's a mismatch between the 32-bit application and 64-bit platform, but the workaround most articles suggest isn't working (i.e., create system DSN from ODBC manager within sysWoW64 folder). Please help.

eyewrench
  • 11
  • 1
  • 2
  • Did you review the configuration settings against the suggestions made [here](http://stackoverflow.com/a/639286/2144390) and [here](http://stackoverflow.com/a/22227619/2144390)? – Gord Thompson Jun 25 '14 at 19:44
  • Enabling 32-bit applications in the default application pool did the trick. Thanks for the suggestion. – eyewrench Jul 07 '14 at 06:40

1 Answers1

0

You need to download the Microsoft Access Database Engine 2010 Redistributable from the Microsoft download center. A 32bit driver and 64bit driver are both available. What works?

If you have a 64bit server with no Office installation then install the 64bit driver.

If you have a 64bit server with 32bit office installation then install the 32bit driver*.

If you have a 32bit server with no Office installation then install the 32bit driver.

If you have a 32bit server with 32bit Office installation then install the 32bit driver.

*If you are trying to install the 32bit drivers on a 64bit machine then the installer will complain and fail. However the install has an override flag if you install it via the command line (cmd.exe) with administrator privileges.

AccessDatabaseEngine_x64.exe /passive

ASP Classic Connection Strings

Access File

<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\Database1.mdb;Persist Security Info=False;"
Con.Close
%>

Excel File

<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\book1.xlsx;Extended Properties=Excel 12.0;"
Con.Close
%>

Download both drivers from microsoft download center

Andy Davies
  • 1,456
  • 9
  • 13
  • When I follow these instructions, I get an error message that reads: Could not find file 'c:\windows\system32\inetsrv\[].mdb'. The [] is a concatenation of my database filename and the subfolders in which my database resides. – eyewrench Jul 01 '14 at 05:56
  • Could not find file suggests you have the path to the database file set in the connection string incorrectly or your don't have file permissions to read the database in that location. 'C:\windows\system32' is a system folder and shouldn't have any user content in it really. Move the database to a folder out of the c:\windows path and reference it in the data source part of the connection string with a full file path, e.g. 'Data Source=C:\mydatabase\Database1.mdb;'. – Andy Davies Jul 01 '14 at 09:14