To make the most of Access' capabilities, reconsider your data structure.
From your description, you use different tables for different year's data.
This approach is very common ... in spreadsheets!
You don't want to do this in tables in a relational database like Access.
Here's one reason why -- all your queries, forms, reports and code that
refer to the table named 2004xxxxxx will have to be modified to refer to
2005xxxxxx. Here's another -- every year you add a new table, you have to
figure a way to look "across" another table for all historical records.
Instead, consider the impact of simply adding a date/time field to your
underlying basic table (forget using the year in the title, the table
records something common from year to year). If you were recording
Contracts, your new table would be tblContracts, not tbl2005Contracts.
Note that this satisfies your other requirement -- i.e., how to relate your
"links to reports" (and queries, and ...).
With the new design, you can easily get only those rows with a date in 2005.
Create a query that returns the fields you want, and add a criterion to the
newly-added date/time field. You could even get more creative and make the
criterion "dynamic", changing each year, rather than "static", hard-coded to
"2005".