Malcolm,
Aren't patterns in the data more easily discerned in a grid where you can see more than one record at a time?
If you are only talking about 100 records I wouldn't bother with an acceleration factor.
One way to repeat something like this you do it in the MouseDown of the button:
do while mdown()
skip 1
thisform.Refresh()
Sleep( 100 )
enddo
Depending on how long your form takes to refresh you may or may not need much of a sleep.
>My app pulls down small record sets (1-100 records) to a local cursor. Analysts browse this cursor looking for patterns. There's a grid on the left for users to navigate via a list, and record details on the right where users navigate via first, previous, next, last. The auto-repeat navigation capability is still valuable with relatively small sets of data. And quickly browsing a local cursor doesn't impact the network.