You want to use VBA, well this method, the paging method (my terminology) is VBA driven.
1. Get the total number of records (ie 1000).
2. Divide total records by visible records (ie 15).
3. We now know the total pages involved (1000/15 = 67 (round up)).
4. Every 15th record store the WHERE clause info into an array, will be 67 items.
(this is the starting point for each page's SQL statement)
(this could be the tricky or awkward bit)
5. Each page SQL is created as needed based on the WHERE clause ">=" and the TOP 15 predicate.
OR
4. Create a temporary table in the frontend, transfer all records, (either all fields or just primary key), additional field to be created, PageNumber.
Assign the correct Page number to each record (in temporary table)
5. Create SQL statement based on temporary table with the WHERE clause related to the Page Number.
6. Configure your text boxes as required ie. goto record n, goto page n, Record n of n.
7. Configure buttons accordingly.
8. On exit, if temporary tables utilised, delete them.
I've never implemented such a system before but if I were I would start with the above. The more I think about it, I think the temporary table version would be easier to implement.
Steve.