Solved

Runtime error 3001: Invalid argument when using tabledef.refreshlink

Posted on 2008-06-20
12
1,631 Views
Last Modified: 2008-06-20
I have some code to update my linked tables if the database they are contained in has a new location. When I run it I get an invalid argument error on the .refreshlink method.
Private Sub UpdateLinkedTables()

Dim itblFCRateApplicationPathRS As Recordset

Dim db As Database

Dim tblFCRate As TableDef

Dim itblFCRateInformation As TableDef

Dim itblFCRateOutputDirectories As TableDef
 

    Set itblFCRateApplicationPathRS = CurrentDb.OpenRecordset("itblFCRateApplicationPath", dbOpenDynaset)

    itblFCRateApplicationPathRS.MoveFirst

    

    If strInitialApplicationPath <> itblFCRateApplicationPathRS!Path Then

        Set db = CurrentDb

        

        Set tblFCRate = db.TableDefs("tblFCRate")

        Set itblFCRateInformation = db.TableDefs("itblFCRateInformation")

        Set itblFCRateOutputDirectories = db.TableDefs("itblFCRateOutputDirectories")

        

        tblFCRate.Connect = ";DATABASE = " & itblFCRateApplicationPathRS!Path

        tblFCRate.RefreshLink

        

        itblFCRateInformation.Connect = ";DATABASE = " & itblFCRateApplicationPathRS!Path

        itblFCRateInformation.RefreshLink

        

        itblFCRateOutputDirectories.Connect = ";DATABASE = " & itblFCRateApplicationPathRS!Path

        itblFCRateOutputDirectories.RefreshLink

        

        Set tblFCRate = Nothing

        Set itblFCRateInformation = Nothing

        Set itblFCRateOutputDirectories = Nothing

        

        db.Close

        Set db = Nothing

    End If

    

    itblFCRateApplicationPathRS.Close

    Set itblFCRateApplicationPathRS = Nothing

End Sub

Open in new window

0
Comment
Question by:bejhan
  • 6
  • 6
12 Comments
 
LVL 75
ID: 21833099
Put a break point on this line of code:

        itblFCRateOutputDirectories.Connect = ";DATABASE = " & itblFCRateApplicationPathRS!Path


then see what the actually Connect string is.

mx
0
 
LVL 1

Author Comment

by:bejhan
ID: 21833155
;DATABASE = M:\Bus_Activity\Finance_Collections\HAULTAIN\cdc\Bejhan\Applications\FC Rate\fcrate.mdb
0
 
LVL 75

Accepted Solution

by:
DatabaseMX (Joe Anderson - Access MVP) earned 125 total points
ID: 21833208
Well, this is how my connection strings look - when you look at a linked table property sheet:


DATABASE=C:\aaaaSCE\Databases\QA\P3DevMaster\BackEnd\QADataP3.mdb;TABLE=tblAudit

So, where is the table name ?

0
 
LVL 1

Author Comment

by:bejhan
ID: 21833276
Okay tried again with:

;DATABASE = M:\Bus_Activity\Finance_Collections\HAULTAIN\cdc\Bejhan\Applications\FC Rate\fcrate.mdb;TABLE=tblFCRate

Same problem. I also tried without the semicolon before "DATABASE" and then I got a different error:

Runtime error 3170: 'Could not find installable ISAM'
0
 
LVL 75
ID: 21833291
I think that is an installation problem ...

Try Help>>Detect and Repair from the menu inside Access.

mx
0
 
LVL 1

Author Comment

by:bejhan
ID: 21833359
Tried that still get the ISAM error. What else can I do? The syntax without the colon in front of the "DATABASE" is correct then?
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 75
ID: 21833422
I'm pretty sure you need the Semi Colon.  But, this error is something else I'm pretty sure.

Try googling this ... or search EE (Advanced Search) for Could not find installable ISAM'

I have seen this for quite some time ...

mx
0
 
LVL 1

Author Comment

by:bejhan
ID: 21833440
You don't think this error could just be occuring due to wrong syntax then?
0
 
LVL 75
ID: 21833546
Well, the example I posted works for me and has been for a long time.

Does this occur on all 3 RefreshLink statements ?

mx
0
 
LVL 1

Author Comment

by:bejhan
ID: 21833752
How stupid, it's because I had spaces between the database, equal sign, and path... Thanks for your help.
0
 
LVL 75
ID: 21833776
oops:
good catch.  sorry I missed that.  The error message was BOGUS ... misleading ...

mx
0
 
LVL 1

Author Comment

by:bejhan
ID: 21833932
I figured it would be such. I just remember when I first learned C++ and the compiler would go nuts if there was an extra semi-colon. Saying there was missing libraries and stuff so I figured it must be syntax.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
In the article entitled Working with Objects – Part 1 (http://www.experts-exchange.com/Microsoft/Development/MS_Access/A_4942-Working-with-Objects-Part-1.html), you learned the basics of working with objects, properties, methods, and events. In Work…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now