Hi Steve,
This is a swag but I think the grids source is getting ripped out and then put back in place. If a grids recordsource is closed while it is instantiated it will lose all it settings. If the recordsource is then reopened the only thing the grid can do is default to the order of fields in a table. It's a common problem if you don't that happens. The easy fix is to set the grids recordsoucre = '' close the table, reopen the table and then reset the recordsource.
I'm not clear on exactly how you are opening all the tables so ....
You may need to programmaticaly set the grids properties after all the tables are opened. Or, find a way to make sure the tables are available when the grid inits and stay avaiable. Or, set the recordsource to '' (in it's init maybe), open the tables, then reset the grid.
hth
Roi
'MCP' Visual FoxPro
In Rome, there was a poem.
About a dog, who found two bone.
He lick the one, he lick the other.
He went pyscho, he drop dead!