articles:

classic asp and access not working on windows 2008 64bit

There is not a 64 bit version of Jet 4, so classic asp that used it on an older server ported over will not run on 64 bit version of IIS.

But you can get a 64 bit ms access driver in this Office 2010 download from here:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

Run that installer and it installs native 64 bit drivers for access and excel (and possible a couple of other things)

Now you have to change your connection strings from

Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("db.mdb")

to

Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & server.MapPath("db.mdb")

classic asp and access will now work together as normal, but in 64 bit mode.

Note:

Even though classic asp will now work, asp.net using accessdatasource still doesn't work you get this error:

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

So you have to change the app pool for the particular website to run in 32 bit mode

(app pools > [app pool] > advanced settings > Enable 32 bit applications)

If you do this and you are using classic asp as well remember to put your connection strings back to the old ones.

i.e. remove the *.accdb as its not required for the 32 bit driver.

In conclusion you can run classic asp with access in either 64 bit or 32 bit mode, but asp.net using accessdatasource only in 32 bit mode.

BUT wait there's more!!

There is a way of using asp.net and access in 64 bit mode, just not using the accessdatasource (which relies on Jet 4 driver)

Introducing.... sqldatasource

thats right you can connect to access using an sqldatasource.

"Yeah but..." i hear you say "when we do that this is what we get":

ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb" ProviderName="System.Data.OleDb"

Thats just another wrapper around Jet 4....thats not going to work

no its not,

but this is:

ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & Server.MapPath("~\db.mdb") ProviderName = "System.Data.Odbc"

This way we are able to use the driver that we just installed from the Microsoft Access Database Engine 2010 Redistributable

And this works. So this now means we can run both classic asp and asp.net in 64 bit mode and use access.

Comments

Posted on Friday, March 17, 2017 3:16:00 AM GMT by anonymous
Good post. I'm facing some of these issues as well..

Post a comment

name:
(optional)

email:
(optional)

comment: