I still don't understand how the top level form, the formset and the menu are related, I now think you have a top level form with a menu and start a formset. We talked about the modality of the forms, but you only checked the top level form. Top level form's can'T be modal, even if you set them modal, that was already explained by Dan in thread184-1724866.
What really interests is the modality of the form started, not the modality of the form having the menu. Or more general: If any currently started form is modal the menu is inactive, unless it's the manu of the active modal form. So if any form of the formset would be modal, that would block the menu.
>I would like a GUI similar to quickbooks(TM), where the user can go from form to form by clicking on it, and still see one or more of the other pages.
I don't know quickbooks, but the simple answer to get no form blocking the activation of other forms is not making any form modal. That's all to it.
Definition of Modality:
A modal means a modal dialog, which needs the attention of a user, he has to fill in some info or make a decision, which determines how the application continues, or he has to confirm having read an important information. Eg any Messagebox is modal, even with just an OK button or Yes/No Cancel/OK, etc. It restricts access to anything else, you have to finish the messagebox first, before anything else can be activated. The same goes for any modal forms. So you also know when modality is good. You can use it for your own forms, too, but rather sparsely, if you want an application not narrowing down how users switch between forms.
Also mostly work with private datasessions, unless you want to let one form have direct influence about the record pointer positioning in another form. Typical case: a parent form shows a list, you pick a record from there eg by doubleclick and start a detail form. If you show the current record details, eg much more fields than are shown in the list, that's easy if the child form is in the same datasession, you just need to have controls to show a single record in the same way as if the controls were on the same form. But if you pick another record from the list form and start another detail form, this new form and the already started detail form would show the same current record, as all three forms work on the same workarea and it only has one record pointer, one active record. Therefore you use a private datasession, pass the id of the record to it and let the detail form use the table or tables it needs again (eg in the data environment) in their own private datasession and move to the record via the passed in ID (you pass parameters to and receive them in the Init event). Such a parent form with many detail forms also can't be done in a formset, that alone makes formsets less usable for any situation.
Bye, Olaf.