When you run a select statement which already has a cursor attached to it, the old cursor is destroyed and a new one takes it's place. This may or may not be in the exact same workspace. Your grid control then loses it's connection with the "controlsource".
A simple refresh of the ControlSources should make the grid work again. Also comment the code so that some time in the future you don't delete it because it looks so stupid. By the way, I ran into this exact same problem.
* a stupid but necessary loop
FOR i = 1 TO grid.columncount
grid.columns(i).controlsource = grid.columns(i).controlsource
ENDFOR