Graham,
That's really not what is normally considered to be "archiving."
Say you had a table of records that span from 2000 to 2008, and you want
to archive any record before, and up to, 2006.
You would develop 2 queries.
One... query to Update another table (ex. tblMyArchive) with all
records 2006 or less.
Two... a Delete query to remove them from the original table.
That's really what archiving involves.
But, what you requested... is much simpler.
Given the same table setup as above, you just need to criteria the query
that is the RecordSource for any form, query, or report.
For example, on a form, the query behind that form should have a
criteria against your date field like this...
YourDateField
Now that will work, but requires that every year you move up the
criteria's cutoff date.
A better method is to always ask for records older than say...2 years,
before today's date.
YourDateField
DateAdd("yyyy",-2,Date())
This will only show dates greater than two year's before today's date,
and never needs to be changed. And, leaves all the records in the table.
Note: as years go by (if you add MANY records each year)...your query
method might show some performance issues. Each query behind each
report.query or form has to run against ALL records. So, you may
eventually want to use the real "Archiving" method.
--
hth
Al Campagna
Microsoft Access MVP
http://home.comcast.net/~cccsolutions/index.html
"Find a job that you love... and you'll never work a day in your life."