vba error 3170: Could not find installable ISAM

R

Rod

Sorry for the repost. I didn't get a response on the first two. I really
need help. Read on:

I have a split database with the front end linking to several tables.
Compiles and runs perfect in Windows XP, whatever SP, Access 2002 and 2003.

I have a new computer with Windows Vista Business. I receive the following
error in Access 2003 and 2007:

"Run-time error 3170: Could not find installable ISAM."

The code stops at a point when trying to relink to a table, using the
following code:

Function RelinkToSpringfieldCountriesA() As Integer
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim FilePath As Variant

Set dbs = CurrentDb
Set FilePath = Forms!frmControlSMP.txtSMPDataPathWithFile

Set tdf = dbs.TableDefs("SpringfieldCountries")
tdf.Connect = ";DATABASE=" & FilePath
tdf.RefreshLink

End Function

The specific point is tdf.RefreshLink.

I'm stuck.

Rod
 
G

Guest

check the file path. got spaces in it? broken in some other way?

take out the tdf connect line and just try the refresh. fails correctly with
missing file?

try faking the file in the old location
(move a copy to c:\, relink on old machine, relink on new machine).
take out the tdf connect line and just try the refresh.
still fails?

try with login with windows admin permissions. still fails?

check registry settings for Jet and Access.

(david)
 
R

Rod

David,

Thanks for the list of ideas. I did the following:

1) I substituted this code that "wires" in the path...
Function TestLink() As Integer
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef

Set dbs = CurrentDb

Set tdf = dbs.TableDefs("tblCountries")
tdf.Connect = ":DATABASE=" & "c:\lacc\smpdata.mdb"
tdf.RefreshLink
End Function

I received the same "error 3170, could not find installable ISAM" message.

2) I then took out the tdf.Connet line, per your instruction. I received
the following message "Run-time error 3265: Item not found in this
collection." I don't know what that means.

3) I did the same as 1 and 2 above running Access 2003 as administrator with
the same results. I don't know how to "log in with Windows administrator
privilege." There is nothing in the Vista help file. But as a user I have
administrator privileges.

Thanks for any help you can provide.

Rod
 
R

Rod

David,

I forgot to mention that the error 3265 is on the line
Set tdf = dbs.TableDefs("tblCountries")

Rod
 
G

Guest

I forgot to mention that the error 3265 is on the line
Set tdf = dbs.TableDefs("tblCountries")

Try that again, more carefully. You're saying that when
you take out a line, the line before the one you took out
fails?

(david)
 
G

Guest

tdf.Connect = ":DATABASE=" & "c:\lacc\smpdata.mdb"

This one is not right, and might well give an error like you describe.
The colon at the start of the connect string should be a semi-colon.


otherwise,

open a copy of your FE, go to the immediate window, (press [ctrl][g])
and type
?codedb.version [enter]

do the same in your BE.

You should get a number like 2, 3, or 4.

The IISAM settings are in the registry (run regedit) under
HKEY_LOCAL_MACHINE/software/microsoft/jet/4.0

if you have a Jet 2 or 3 database, you should be using the
Jet 2 or 3 ISAM, which should refer to the Jet 2 or 3 engine,
which may have to be re-registered.


(david)
 
R

Rod

David,

That was it! I changed the colon to a semicolon and from there was able to
figure out the rest.

Now, my application is giving some other errors. I'll need to work through
those and may need to write you again.

Thank you so much for your patient help.

Rod

david@epsomdotcomdotau said:
tdf.Connect = ":DATABASE=" & "c:\lacc\smpdata.mdb"

This one is not right, and might well give an error like you describe.
The colon at the start of the connect string should be a semi-colon.


otherwise,

open a copy of your FE, go to the immediate window, (press [ctrl][g])
and type
?codedb.version [enter]

do the same in your BE.

You should get a number like 2, 3, or 4.

The IISAM settings are in the registry (run regedit) under
HKEY_LOCAL_MACHINE/software/microsoft/jet/4.0

if you have a Jet 2 or 3 database, you should be using the
Jet 2 or 3 ISAM, which should refer to the Jet 2 or 3 engine,
which may have to be re-registered.


(david)

Rod said:
David,

Thanks for the list of ideas. I did the following:

1) I substituted this code that "wires" in the path...
Function TestLink() As Integer
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef

Set dbs = CurrentDb

Set tdf = dbs.TableDefs("tblCountries")
tdf.Connect = ":DATABASE=" & "c:\lacc\smpdata.mdb"
tdf.RefreshLink
End Function

I received the same "error 3170, could not find installable ISAM" message.

2) I then took out the tdf.Connet line, per your instruction. I received
the following message "Run-time error 3265: Item not found in this
collection." I don't know what that means.

3) I did the same as 1 and 2 above running Access 2003 as administrator with
the same results. I don't know how to "log in with Windows administrator
privilege." There is nothing in the Vista help file. But as a user I have
administrator privileges.

Thanks for any help you can provide.

Rod
 
R

Robert Morley

Good catch, david. I'd completely missed that.


Rob

tdf.Connect = ":DATABASE=" & "c:\lacc\smpdata.mdb"

This one is not right, and might well give an error like you describe.
The colon at the start of the connect string should be a semi-colon.


otherwise,

open a copy of your FE, go to the immediate window, (press [ctrl][g])
and type
?codedb.version [enter]

do the same in your BE.

You should get a number like 2, 3, or 4.

The IISAM settings are in the registry (run regedit) under
HKEY_LOCAL_MACHINE/software/microsoft/jet/4.0

if you have a Jet 2 or 3 database, you should be using the
Jet 2 or 3 ISAM, which should refer to the Jet 2 or 3 engine,
which may have to be re-registered.


(david)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top