tags:

views:

108

answers:

2

I have an Access database which is split, and have moved it from the network and a client machine to my machine to test and debug.

When I run the main/startup form, I get:

Run-time error 3044. [Old Path] is not a valid path.

Where "Old Path" is the path where the back-end file used to reside.

I found some posts that talked about using the Linked Table Manager, but this is greyed out in my backend database and does not exist as an option in my front end database.

I can't find anywhere in the Module or form code where this gets set. Can anyone shed any light on where this information is stored?

+1  A: 

In the front end database, right click the table name (the one that has the little arrow on the top left) and choose "Linked Table Manager" from there.

The reason it is not available in your backend database is because there are no linked tables in that database.

When you open the front end and the form opens, the Navigation Pane is probably minimized on the left hand side. You can click that to get a list of objects.

To remove the startup form, with the Front End opened, go to the Menu / Access Options / Current Database and change the startup form to none. In the same menu, scroll down and you can set options to show/hide the navigation pane.

Raj More
Hmm, I don't see what you are talking about. All I see are forms and modules after the error gets thrown.
Phil Sandler
Actually, the forms and modules are all I see in VB when the error gets thrown. I got it working temporarily by creating a fake path and putting the back end there. Now when I open the front end, I can only see the form that is running. I'd still like to fix it for good so I can move this again if I need to without the workaround.
Phil Sandler
VB will not show you anything other than code objects. Answer modified to add details about `navigation pane`
Raj More
The app basically had everything completely hidden. Thanks, you got me on the right track.
Phil Sandler
A: 

If the linked table manager is not working you could do it with code. Here is a quick function that will replace any linked tables with the new path

Public Function Relink_tables(strNew_file_path As String)
Dim tdf As DAO.TableDef
Dim db As DAO.Database

Set db = CurrentDb
For Each tdf In db.TableDefs
    'check to see that it is a linked tables
    If Len(tdf.Connect) > 0 Then
        'table is linked, replace the path with the new one
        tdf.Connect = ";DATABASE=" & strNew_file_path
    End If
Next tdf
db.Close
Set db = Nothing

End Function
Kevin Ross