The primary keys in the other databases is not relavent to linking to the
tables in them. Certainly, each table is unique. If you are linking to the
tables for reporting purposes and won't be making any changes to the data, it
doesn't matter at all. The only issue is that if multiple databases have the
same table name. You would have to link it with a different table name.
Now, it doesn't matter whether the mdbs are split or not, even though they
should be, but if your objective is to split the current mdbs so you can put
the back end on a server where you have access to them, then good, but it
isn't that big of a deal.
You use the database splitter wizard. It will create two mdb files. The
Front End (fe) will retain the original name of the mdb file and the Back End
(be) will have _be appended to the file name. For example.
WorldsGreatestApp.mdb will become
WorldsGreatestApp.mdb (fe)
WorldsGreatestApp_be.mdb (be)
The fe will contain all the forms, reports, queries, macros, and code modules.
The be will contain only tables and relationships
The fe will be linked to the be in the location you specified in the
splitter wizard. You can change it either using the Linked Table Manager or
using code when necessary.
You don't have to move any data or do anthing else.
Now each month to do your reporting, I would suggest using the
TransferDatabase method to do the link. This way, you can easily specify the
name by which you will refer to the table. That is in case some of the table
names are the same.