Select (This.calias) Zap If Used(This.ctempcur) And Reccount(This.ctempcur)>0 Append From Dbf(This.ctempcur) Locate EndifThis.cTempCur is the alias of the temporary (SQL-selected) cursor which holds the new data. Maybe you're missing the locate statement, or you still have some .recordsource= somewhere. When using this technique, you should not touch the recordsource at all, and the code to build the grid should run only once, best in grid's init. There you do something like this (I have my column class defined in dcGrids.prg and it basically adds my textbox (or other) class and sets the .currentcontrol):
Local lcCursor lcCursor="curpptsearch" Create Cursor (lcCursor) (pptpk i, ippttype i, cppttype c(2), cname c(80)) This.RecordSource=lcCursor this.ColumnCount=0 Set Procedure To dcgrids Additive This.AddObject("colCType","gcol","Typ",lcCursor+".cppttype") this.colctype.visible=.t. This.AddObject("colcName","gcol","Name",lcCursor+".cname") this.colcname.visible=.t.Works for me.