Just a quick update - I did not know this before but if you instantiate a grid on a form, it *assumes* the recordsource whatever table/view is open in the current workspace if you do not specify this specifically in the setup e.g.
USE companys
loform=CREATEOBJECT("form")
loform.AddObject("TestGrid","grid")
? loForm.testgrid.RecordSource
Result: .Recordsource = "companys"
I would have thought .Recordsource would be empty if not explicitly set on the designer screen.
Albert