EHood,
First, welcome to the forum ... and to the world of Visual FoxPro. You're going to find a lot that's different from your DOS days, but I'm sure you'll find it rewarding.
Regarding your form that displays one record at a time. You probably have four "VCR" buttons on the form: one each for First, Previous, Next and Last. You will write code in the Click events of each of those buttons.
In each case, your code should navigate to the appropriate record, and then do a Refresh. You obviously already know that. However, instead of saying ScreenName.Refresh, you need THISFORM.Refresh. THISFORM is a reference to the current form object, that is, the one your code is running from. It helps you make your code generic, by avoiding the need to know the actual form's name.
A couple of points on your navigation code. First, don't make any assumptions about which table is currently selected within the Click event (or any other event). You can't know exactly what the user was doing immediately before clicking the button (they might have been in a different form, for instance), so you can't know which table is selected. For that reason, you should do SELECT SomeTableName before your navigation, or, alternatively, do something like SKIP IN SomeTableName.
Second, you need to take account of end of file and beginning of file. In the Click of your Next button, you could do something like this:
SELECT MyTable
SKIP
IF EOF()
SKIP -1
ENDIF
THISFORM.Refresh
Other people have answered your question about Scatter/Gather, so I won't go into any detail, except to say that this construct is still perfectly valid -- I occasionally use it in certain circumstances. But in general, you should aim to use buffering instead. When you're ready, read about buffering in the Help file.
Hope this is of some interest. Be sure to come back when you've got more questions.
Mike
__________________________________
Mike Lewis (Edinburgh, Scotland)
Visual FoxPro tips, advice, training, consultancy
Custom software for your business