No need to GO TOP as the record pointer will already be positioned there, but the time to run that line of code is so small that it won't be noticed.
You can run the code with the Coverage Profiler. It will tell you what lines are slowest and give you ideas where optimization should be done.
>USEFILE() is to use and select the dbf file.
>
>
>** usefile.prg
>Lparameter m.FILENAME, m.AFILENAME
>If Empty(m.AFILENAME)
> AFILENAME = m.FILENAME
>Endif
>Local FILENAME2
>FILENAME2 = Alltrim(OAPP.ZDATAPATH) + m.FILENAME
>If Not Used(m.AFILENAME)
> Use (m.FILENAME2) Again In 0 Alias (m.AFILENAME) Shared
> Select (m.AFILENAME)
> Go Top
>Endif
>Select (m.AFILENAME)
>
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer