If you don't have a reference set to "Microsoft DAO 3.6 Object library", search you disk for the file "Dao360.dll". It should be there.
What you're trying to do is to let the user toggle between live data and archived data. By doing it this way, you can use the same forms/reports/queries.
This is how I set mine up.
MyDatabase_App.mdb ... This database contains my forms, reports, queries, macros, and modules (Front-End) and links to the tables in the Back-End database.
MyDatabase_Tbl.mdb ... This database contains my LIVE tables only (Back-End)
MyDatabase_Archive.mdb ... This database contains only the tables that I need to archive. Note that MyDatabase_Tbl.mdb may contains 15 tables, but I only archive 3. So there are only 3 tables in this database. These tables are an exact clone of the tables that reside in MyDatabase_Tbl.mdb (even the table names are the same. If fact, this is a must).
Note that MyDatabase_Tbl.mdb and MyDatabase_Archive.mdb could have the same name, just located in a different folder. I prefer to name them differently, and keep them together in the same folder.
MyDatabase_Tbl MyDatabase_Archive
-------------- ------------------
Table1 Table1
Table2 Table2
Table3 Table3
Table4
Table5
...
Table15
Initially, all of the tables in MyDatabase_App.mdb (Front-End) are linked to MyDatabase_Tbl.mdb (Back-End). If the user selects "View Archived Data", then you want to link Table1, Table2, and Table3 to MyDatabase_Archive.mdb. Now, when the user wants to view the Live data again, they select the button labeled "View Live Data". Table1, Table2, and Table3 will be linked to MyDatabase_Tbl.mdb.
In the OnClick event of the button, do this:
Private Sub cmdViewArchive_Click()
Dim strDatabase As String
'*****************************************************
'* If the Caption of the command button says:
'* "View Archive Data" then, set Database name to
'* MyDatabase_Archive.mdb. Else set it to
'* MyDatabase_Live.mdb.
'*****************************************************
If (InStr(cmdViewArchive.Caption, "Archive"

) Then
strDatabase = "path\MyDatabase_Archive.mdb"
cmdViewArchive.Caption = "View Live Data"
Else
strDatabase = "path\MyDatabase_Tbl.mdb"
cmdViewArchive.Caption = "View Archived Data"
End If
Call LinkTable(strDatabase, "Table1", "Table2", "Table3"
End Sub
Set a break point at the statement "Call LinkTable..." and step thru the code. The first time thru, assuming that you are initially linked to the live database, you should be relinking to the archived database. Therefore, strDatabase should contains the path and name of the archived database and the table names should be tables that reside in the archived database. Step thru the code to make sure the names are what you expect them to be. After the tables are relinked, goto Tools|Database Utilities...|Link Manager via the database window. You should be able to see that your tables are now linked to the Archived database. Now, via your form, select the button to relink to the live database. Your code will pause at the "Call LinkTable..." statement. Ensure that the variable strDatabase points to you Live database and the tables reside in the live database. Step thru your code to ensure the variables are what you expect them to be. You may find it more helpful to use Debug's Immediate window (In code view goto "View|Immediate Window"

. To examine the contents of a variable in the Immediate window, just type a question mark and the variable name and press enter (i.e. ?strDatabase).