When I am trying to connect to a MS Access database to display a data report, I am getting a dialog-box pop-up showing the different parameters for the connection string. Clicking on either the 'OK' or 'Cancel' buttons gives a "Couldn't find Installable ISAM" error.

The database is not password protected. Other projects in the same machine, which uses the same code for connecting (except the filename), are working perfectly.

Why am I getting the pop-up and the error ? Searching through MSDN & KB articles suggested some incompatible MSVBVM60.dll problems. But in that case, none of the other projects should be running also.

Here's the Code for connection:

If DEnv.Conn.State = adStateOpen Then
     DEnv.Conn.Close
End If
DEnv.Conn.ConnectionString = "Provider=MSDataShape.1;" & _
                "Persist Security Info=False;" & _
                "Data Source=" & mFileName & ";" & _
                "Data Provider=Microsoft.Jet.OLEDB.4.0"
DEnv.Conn.Open

The error is occurring at the DEnv.Conn.Open line

I'm not that cluded up on the Datashape properties, but from a bit of research, try and drop the "1" after .Datashape.1...

See the following link -
http://http://www.a1vbcode.com/vbtip-102.asp

Their quote as follows -

As you probably know, a shaped ADO recordset lets you contain a
hierarchical structure (parent/child records) in a single Recordset
object. When you create one, however, make sure you set the correct
Provider options.

For instance, typically, when you create a standard recordset,
you might use a connection string like so:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyData\SomeDB.mdb"

However, when you create a shaped Recordset, you must use MSDataShape
as the provider. In addition, you must still indicate which OLEDB
engine will supply the data.

So how do you indicate both the MSDataShape provider and the database
provider? First, you use the Provider clause for MSDataShape. You
can set this property either in the connection string or with the
ADO Connection object's Provider property.

To indicate the data provider, use the "Data Provider" clause.
The following string indicates one way to accomplish this:

"Provider=MSDataShape;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyData\SomeDB.mdb"

Or, for SQL Server users:

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=MyServerName;Initial Catalog=SomeSQLDB"

Hope this helps.

As you can see, my last post in this thread was more than 2 years ago. In the meantime, of course this particular problem has been solved though I can't recall exactly what solution I used. And I still use MSDataShape.1 without any problems, so that wasn't the issue.

This article has been dead for over six months. Start a new discussion instead.