Hi Fabio
I kinda figured that was the case - that, at EOF() there's an extra "mythical" rec no added on. Thanks for the solution. The trouble is, as with Sergey's, in display mode I have a rec no. As soon as I toggle to hide (and they're ALL hidden), then I get this bad VFP design extra rec no, then toggle back, I haven't got my original rec no to return to, which is the problem.
I guess I'll have to store the recno of each table in a form property that I continually update every time I move in a grid. Then I can always go back to it as I know it exists.
PS As I explained to Sergey, I'm all for using Locate in stead of go top - I just changed it in case that was the problem.
molti grazzies
Terry
>>
>>Select pxEntryCodes
>
>If pxEntryCodes it is in EOF(), RECNO()=RECCOUNT()+1, and you cannot use this for a GO command
>( this is a VFP bad design )
>
>> lnRecNo = RECNO()
>> If .lHide
>> Set Filter To EMPTY( FacCatCode)
>> Else
>> Set Filter To
>> Endif
>
>Use LOCATE here
>
>> Go Top
>> .grdEntryCodes.Refresh()
>> Select pxEntryCodes
>
>* use this
>IF m.lnRecNo<=RECCOUNT()
>> Goto lnRecNo
>ENDIF
>
>>
>>
>>Now there are 10 recs in this table (pxEntryCodes) and 56 in its daughter. When all data have been disappeared and I toggle back to display, with the above routine, I get "Record out of range" for the granny and the daughter, i.e. rec no. 11 and 57 respectively.
>>
>>This suggests that after the filter has been set (on the hide toggle) each table has its record pointer at a "mythical" extra record, at the eof, which is what gets stored in lnRecNo.
>>
>>At the moment I've commented out the recno bits and left it at Go Top for both grids - no problem. But I would prefer them to go back to the records upon which they weere focusing before the hide toggle.
>>
>>Any enlightenment?
>>
>>'Ppreciate it
>>
>>Terry
- Whoever said that women are the weaker sex never tried to wrest the bedclothes off one in the middle of the night
- Worry is the interest you pay, in advance, for a loan that you may never need to take out.