>I have not used a grid with a cursor recordsource (Do cursors need to be requeried?), but i have used several tables as grid recordsource. The recordsource does not like to be "messed with". zapping, closing, changing the value, etc are all messing with the recordsource. To see if the zap is the problem:
>
>hold_recordsource = grid1.recordsource
>grid1.recordsource = space(0)
>zap cursor1
>grid1.recordsource = hold_recordsource
>
>If this keeps your grid from blanking then the zap is the problem. Before the Zap you will need to save the recordsource, and possibly the columncount and columns' controlsource. After the zap restore your saved values.
No need for that. I'm doing exactly the same thing - using one cursor, zapping it and filling it with records. Works just fine, and doesn't disturb the grid. It's just that in this case the grid doesn't show the visible record - as if the refresh() didn't do the necessary "go to the first available record and then show".