Slow queries typically suggest your query is hunting for too much data
-- you need to refine your query to bring back only what you want.
There are some things to try:
1) Confirm that you have indexed the critical fields that you are
querying against, reduce and eliminate JOINS in the query.
2) refine your query so that it only pulls out a smaller record set.
For example, if the weekly new information is all your really care
about, add a record date component to your query and limit the query to
the last 8 days of data.
3) Create two queries -- one for the most often used recent data and a
second one for "all the data in the database" -- then train your users
when to use one vs.the other to answer their questions.
4) Using VB, create a record set that pulls back only the first, say,
1000 rows at a time. Display the first thousand and let the user
scroll the thousand (key to success is sort the record set in the most
likely order of use -- say, descending date order), then when the user
gets to row 950, have the recordset refreshed by purging records 1-800
and appending the second 1000 records. Etc.
5) If you DB is really going to be growing at a straight line forever,
you will (a) need to move off Access to an Enterprise RDBMS and (b)
redesign your DB, because even Oracle has physical limits on table
size, if you still want good performance.