>>I'm thinking of instantiating DataEnvironment at the class level, probably using something like an array property to keep the list of tables to open.
>
>Why even have a DE? The only reason its there (IMO) is to create the DS visually. If you do it in code, why not just provide an abstract method to do your USEs and SET RELATIONs and stuff. Probably faster than making the objects do it.
I actually had that in DOS days... and a routine which would generate the routine checking whether all the OpenTable() calls were successfull. Too bad I can't apply that in the current environment - there are just too many forms with DEs, and they tend to be visually very confusing and hard to track, once you get more than a dozen tables there.