Avatar of joelmcm
joelmcm
 asked on

How do I find the location of a split database's data files in MS Access?

We moved the front end to a different server... and can't find the data. How can I find where it used to be located so that I can import them or link them back to the application?
Microsoft Access

Avatar of undefined
Last Comment
pdebaets

8/22/2022 - Mon
Dale Fye

generally, if you open the front end in design view, you can mouse over the tables and display the table name and path.  Theoretically, that should tell you were the backend is residing.
ASKER CERTIFIED SOLUTION
Gustav Brock

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Dale Fye

You can also use the connection property to get the connection string of linked tables in the immediate window.

?currentdb.tabledefs("linkedTableName").connect
pdebaets

I would not recommend importing the tables once you find them. It would be best to continue to have a split database for reasons too numerous to list here.

Once you find where the data is, consider mapping a drive letter to that location (drive Z:, Y:, X: or whatever), then link to the backend through that mapped drive. Some would say that you should map to the server name (such as "\\MyServer\whatever") and this may work well until the server name changes. I prefer to use drive mapping.

For more, see: http://deepintoaccess.blogspot.com/2011/12/map-network-drives-with-vbscript.html
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy
PatHartman

You can also open the MSysObjects table to view the connection strings.  Or, just use this query:

SELECT MSysObjects.Database, MSysObjects.Name, MSysObjects.ForeignName, MSysObjects.Type
FROM MSysObjects
WHERE (((MSysObjects.Type)=6));

@pdebaets,
The reason people suggest using UNC notation is because in many organizations, it is difficult to find a common drive letter that is available to ALL users once you get more than about 10 users.  And although servers do sometimes change names, it doesn't happen often.
pdebaets

@pat, yes, it can be hard to find a common drive letter and often brings up the organizational issue of standardizing mapped drives which I've implemented at a number of sites. The vbscript example I linked to above comes in handy for these situations.

If such organizational issues can't be resolved, there's a tool I've developed called TableLinker Lite that allows the developer to specify multiple possible locations for the data backend. Linking is attempted for the backends in a list and the first one found is linked to. Details are at: http://www.peterssoftware.com/tll.htm