Hmmm, it seems like a LOT OF WORK, < rof, l > and < lol >. It is hardly a lot of work. Only about 8 lines of code:
SELECT ( This.RecordSource )
ZAP
SELECT < some field > FROM < Some Table > WHERE < Some Condition > ;
INTO CURSOR Temp NOFILTER
SELECT ( This.RecordSOurce )
APPEND FROM DBF( 'Temp' )
USE IN Temp
GO TOP IN ( This.RecordSource )
This.Refresh()
I don't want to recreate the Grid after an Zapping or Packing, I never suggested PACKing which closes the grid's RecordSorce and blows it away. ZAPing, however, does not close the RecordSource so there is no issue of having to re-create the grid < s >.
generally I use Views or RecordSourceType=4.A parameterized view would be a good way to go. But I was under the impression that you wanted to draw data from several different data sources and put the results into a cursor with a common structure. I'm sorry if I didn't understand your problem...