>>My trick for this is to set the grid's recordsource and all the columns' controlsources at design time, and then just make sure all of them exist at runtime. I have to confess that I'm doing almost all of it in command window :).
>
>I wasn't sure whether that would be allowed, setting controlsource names in a grid before, possibly, the actual cursor is created.
No problem at design time. At run time, make sure the cursor exists before the grid instantiates.