views:

1357

answers:

4

I've written some VBA code in an Excel workbook to retrieve data from an Access database in the same directory on a desktop. It works fine on my machine and several other machines running Windows XP, but when we tested this on a Vista machine, we encountered the "Could not find installable ISAM" error.

I've done a bunch of searching online but can't seem to find a concrete answer. The connection string seems to be fine, and, as I mentioned, it works on several machines.

Does anyone have any idea what could be causing this? My connection string is as follows:

  Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb;

Thanks

A: 

Try putting single quotes around the data source:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb';
CodeSlave
+2  A: 

Have you checked this http://support.microsoft.com/kb/209805? In particular, whether you have Msrd3x40.dll.

You may also like to check that you have the latest version of Jet: http://support.microsoft.com/kb/239114

Remou
A: 

This problem is because the machine can't find the the correct ISAM (indexed sequential driver method) registered that Access needs.

It's probably because the machine doesn't have MSACeesss installed? I would make sure you have the latest version of Jet, and if it still doesn't work, find the file Msrd3x40.dll from one of the other machines, copy it somewhere to the Vista machine and call regsvr32 on it (in Admin mode) that should sort it out for you.

pezi_pink_squirrel
Access the application is not required to use the OLEDB driver with the name "MS Access" because that driver is for the Jet database engine, not for MS Access itself. Jet 4 is installed on every version of Windows from Win2K forward.
David-W-Fenton
OLE DB (note the space) has providers not 'drivers', and none have the name "MS Access". The ACE provider is named Microsoft.ACE.OLEDB.<version> and the deprecated Jet providers were named Microsoft.Jet.OLEDB.<version>.
onedaywhen
A: 

I have just encountered a very similar problem.

Like you, my connection string appeared correct--and indeed, exactly the same connection string was working in other scenarios.

The problem turned out to be a lack of resources. 19 times out of 20, I would see the "Could not find installable ISAM," but once or twice (without any code changes at all), it would yield "Out of memory" instead.

Rebooting the machine "solved" the problem (for now...?). This happened using Jet version 4.0.9505.0 on Windows XP.

Chris Nielsen