Terence,
Just my .2 cents addition. It doesn't make difference either you use 'do form' or 'createobject(form)'. All grid needs is to 'find' its recordsource. I really tried your sample too.
Maybe when you're trying TableA wasn't used at all and an error handler routine made it gone unseen.
Cetin