So the idea is that they will start out separately, but at completion or some other point they will be rolled into master tables and the original individual files deleted?
Here are a couple ideas to get you started. If others have better suggestions, hopefully they will chime in.
I would keep a master table of currently open projects with customer number and job number in it. You could then present that to your users in a preliminary form and let them select which one they wanted to work with currently and then pass that infomation through OpenArgs to your main
form(s).
Then name all of your files identically with the customer number and job number appended to the table names. This does two things, it makes them unique and it allows you to very easily access the correct tables programatically.
As an example, say the Customer ID was 1234 and the job ID was 98765. You would then create tblJob123498765, tblJobDetails123498765, etc. If you build a standard set of tables to copy as you noted above, then all of your relationships, etc will be maintained for you automatically.
Then you can create SQL on the fly using the input from the user information mentioned above to get the correct tables and use that as the data source for your forms, etc.
As an example, assume the user selected Customer 1234 and Job 98765 as above from a combo box named cboJobInfo where that information is in columns 0 and 1 (zero based counting).
Then in the After Update event of cboJobInfo you could call your main form passing "RecordSource=123498765" in OpenArgs.
Dim strOpenArgs As String
strOpenArgs = "RecordSource=" & cboJobInfo.Column(0) _
& cboJobInfo.Column(1)
DoCmd.OpenForm etc, , , ,OpenArgs <- commas not counted
In your main program you could then have something like the following in the Load or Open event:
Dim strTableName As String
Dim strSQL As String
Dim strRecordSource As String
If IsNull(OpenArgs) Then
DoCmd.Close
Else
strRecordSource = Mid$(OpenArgs, InStr(OpenArgs, "="

+1)
strTableName = "BaseTableName" & strRecordSource
strSQL = "SELECT " & strTableName & ".* FROM " _
& strTableName & " WHERE SomeCriteriaIfAny " _
& "ORDER BY SortCriteriaIfAny ", etc
Me.RecordSource = strSQL
End If
Hopefully this will get the old creative juices flowing and you'll end up with a very nice project out of this.
Good Luck!