Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Could Not Find installable ISAM

Status
Not open for further replies.

vb6novice

Programmer
Sep 23, 2002
288
0
0
US
Trying to run a VB6 app linked to an Access 2000 database. Always get the error message "Couldn't find installable ISAM". MS Knowledge bases suggested fixes were of no help. I think I am missing some DLL files, and/or the DLL that calls the other DLLs does not include Access in the list of databases. Any help on solving this problem would be appreciated.
 
Download MDAC 2.5 or higher from Post here the connection string that you are using.
A typo will cause this just as well.... [/b][/i][/u][sub]*******************************************************
General remarks:
If this post contains any suggestions for the use or distribution of code, components or files of any sort, it is still your responsibility to assure that you have the proper license and distribution rights to do so!
 
I have this same problem while in the development but when I compile it out it seems to work just fine. So I can't run Debug in VS but I can compile it then run the program.

-Chris Diaz
 
CCLINT,

I'm using Access 2000. Which MDAC should be used? Also, I don't know anything about connection strings. I need education on that.

Thanks for the help.

 
Ok. Two things that need to be done first:

Make sure you have the most recent VB6 service pack (SP5 from )

2. And, as I stated, download and install MDAC 2.5 or higher. If you are using a Jet MDB then 2.5 should be sufficient.

Change the reference to the correct version of ADO (under the menu point: PROJECT|REFERENCES if the version of "Microsoft ActiveX Data Objects Library" is not 2.5 or higher (maybe 2.0) then deselect the one checked, and select the 2.5 Version.

Now, try to run your program. If the error still happens, then post here how you are connecting to the Database (Adodc1 - A data control, ADO code or a ADO class. If one of the latter two, then search in your code for a ConnectionString and post it here).

[/b][/i][/u][sub]*******************************************************
General remarks:
If this post contains any suggestions for the use or distribution of code, components or files of any sort, it is still your responsibility to assure that you have the proper license and distribution rights to do so!
 
The error message "Couldn't find installable ISAM"

often occurs on Access databases with passwords.
Does the Access DB you are trying to open have a password?

If so, do you include "Jet OLEDB:Database Password=" in the ADO connection string?


Codefish
 

>"...often occurs on Access databases with passwords."

I never saw that happen before.
And seriously doubt that that will cause it on an MDB.

The error means that the driver specifications, or the driver, for the provider given in the connection string is not found on the clients machine.

This could be because of one of the two mentioned possibilities, or, more often, a syntax error in the connection string which is causing the problem.

At that point, an actual connection to the db hasn't even been attempted yet, so whether a password is needed or not hasn't even been determined yet. Nor has it been determined if the DB even exists, or the path is correct or not.

Simply put it, it is like a "File not found" (the ISAM driver for the version specified) or "Registry entry not found" (again, the ISAM driver entry for the version specified) error.

Therefore the need to try an correct the problem by installing a more current version of MDAC, and/or changing the reference for ADO DB to a valid one, or checking the connection string for a syntax error. [/b][/i][/u][sub]*******************************************************
General remarks:
If this post contains any suggestions for the use or distribution of code, components or files of any sort, it is still your responsibility to assure that you have the proper license and distribution rights to do so!
 
The database is NOT password protected.

I have not created any connection string. I don't know how to create a connection string. I did not know I was required to create a connection string. Prior to this occuring on my own computer, I had been working succesfully with VB6 connected to an Access 2000 database on the machine of another individual, and, to my knowledge, he has never created (intentionally) a connection string. Is he keeping secrets from me or is that something that VB6 will generate when I use a data control and attach it to a database?
 
vb6novice,

Looking at some code I did some time ago has now shown me how to duplicate this error that I saw so Frequently.

CCLNT is quite right that its not the password which is what I first thought of but an error in the connection string:-

A connection string with DATA SOURCE spelt "Datasource" instead of "Data source" will produce an error of the type,
"Couldn't find installable ISAM"

i.e.
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\temp\db1.mdb; Jet OLEDB:Database Password= codefish"

instead of:-
"Provider=Microsoft.Jet.OLEDB.4.0;Datasource=C:\temp\db1.mdb; Jet OLEDB:Database Password= codefish"


Sorry for the mistake,

Regards

Codefish
 
That's great Codefish. Now where do I put that connection string?
 
vb6novice,

To Create an ADO Connection to an Access DB there a many variations but a couple you can use are:-

Dim oConn As ADODB.Connection

'Instantiate Connection Object
Set oConn = New ADODB.Connection

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\temp\db1.mdb"

OR/

Dim oConn As ADODB.Connection

'Instantiate Connection Object
Set oConn = New ADODB.Connection

'Set Connection Properties
With oConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
'If there is a Password use the line below
'.Properties("Jet OLEDB:Database Password") = ""
.Mode = adModeReadWrite
.Open "Data source=C:\temp\db1.mdb"
End With

Now you have created the Connection Object you can create an ADO Recordset.

Dim oRec As ADODB.Recordset

'Instantiate ADO Recordset Object
Set oRec = New ADODB.Recordset

'Create Recordset
oRec.Open "SELECT * FROM TABLE1", oConn, 3, 3




Codefish

 
vb6novice: Your program is probably using a Data control, and the connection string is there.

You mentioned that the program worked on another computer but not on yours.

Well, this identifies that it is not your connection string (if the program itself is the same on both computers).

Before offering any more help here, have you done the two things that I mentioned - download VB SP5 and MDAC 2.5, and then change the reference to ADO 2.5 in your project?

Please do this first. The post back the results.
[/b][/i][/u][sub]*******************************************************
General remarks:
If this post contains any suggestions for the use or distribution of code, components or files of any sort, it is still your responsibility to assure that you have the proper license and distribution rights to do so!
 
CCLINT & Codefich,

It's been a while since the last post on this. I'm still having the problem. Here's what I have done.

Verified "Microsoft ActiveX Data Objects 2.5 Library" checked in the References.
Downloaded MDAC 2.5 (mdac_typ.exe). Ran it. Nothing changed.
Downloaded Service Pack 5. When I run vs6sp5vb.exe, it asks me where the files are supposed to go. I would have thought the exe would know where to put them, 'cause I sure don't. I told it to put them in C:\Program Files\Common Files. Nothing changed.

I learned about connection strings. I know how to use them in code to connect to either an Access 97 or Access 2000 db. Here's an example for an Access 2000 connection.

Code:
Set temp_conn = New ADODB.Connection
connection_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TestDb.mdb;Persist Security Info=False"
temp_conn.ConnectionString = connection_string
temp_conn.Open

The problem occurs when trying to set the Connect and RecordSource properties of a Data Control in the properties window during design. I discovered that the Connect property drop down box has only 'Access'. The 'Access 2000;' option is not there, so I have to use the 'Access' option. If I specify an Access 2000 database in the DataBaseName property, then hit the drop down in the RecordSource property, I get the ISAM message.

I just need to determine how to get the Acess 2000; option to show up in the Connect property list.

I hope this provides enough info to help solve the problem. All help is appreciated.
 
Oops.

I gave some bad info in that last post. Here's the real story. If I type 'Access 2000;' in the Connect property, THAT'S when I get the ISAM message. If I use 'Access' in the Connect property, specify a 2000 database in the DatabaseName property, then hit the RecordSource drop down, I get the "Unrecognised database format..." error.

Sorry for any confusion.

 
You say 'type Access 2000; in the Connect property' -if it doesn't appear in the dropdown, then I believe that your upgrade to SP5 may not be complete. Try re-installing SP5 - it should get the installation directory from the registry - if it can't find the registry info it will ask for directory.

Try re-installing VB6, using default directory, then SP5 again
________________________________________________________________
If you want to get the best response to a question, please check out FAQ222-2244 first

'People who live in windowed environments shouldn't cast pointers.'
 
vb6novice: Please note that the problem IS a wrong Data Control version. The one originally delivered with VB6 was only good with Jet 3.51, or DAO 3+ or ADO 1+.
If you get the right version installed, the one that works with Jet 4 MDB's, then your problem is solved.

If you are using ADO, then you will not need the default Data Control but can use the OLEDB data control (PROJECT|COMPONENTS "Microsoft ADO Data Control 6.0 (OLEDB)"

But even if you use this and it works, with-out correcting the original problem, it still means that VB is not updated to the most current service pack, and other problems may arise.

The actual first service pack with the corrected data control was service pack 4.

I was assuming that sp5 would also have the updated control in it, and I almost sure it does.

When you install a VB service pack, it will ask for which directory to extract the files into. Please note that this is not the same as the location where the files will be installed to. So use the default tempory folder.
The actual location where the files are to be installed is, as johnwm states, the setting in the registry where visual basic is installed to.
[/b][/i][/u][sub]*******************************************************
General remarks:
If this post contains any suggestions for the use or distribution of code, components or files of any sort, it is still your responsibility to assure that you have the proper license and distribution rights to do so!
 
All is well. I re-installed SP5 (I think I did it right this time). Now the Access 2000; option is in the data control Connect property list. No more ISAM message and no more "Unrecognized database forma..." message.

Thanks for all the help.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top