At 10:03 11/09/00 -0400, JB Parrett wrote: >>> In an application : >>> - Form1 invokes Form2 through FrmPopupForm(idForm2). >>> - Form2 invokes in turn Form3 through FrmPopupForm(idForm3). >>> - Form3 calls FrmReturnToForm(0) and sets a flag in globals to tell Form2 to >>> return as well. >>> - in frmUpdateEvent processing of Form2, the flag is tested and when true, >>> Form2 calls FrmReturnToForm(0). > >One approach is to call FrmCloseAllForms(); followed by FrmGoToForm(FORM1);
Right, and that's what I finally did yesterday because in the case I described it works properly. However, suppose that I only want to get back 2 levels out of 4, it wouldn't work. A possible answer, that I experimented shortly (so it might be buggy) before turning to FrmCloseAllForms(), works like this : In Form2 event handler, when I get frmUpdateEvent, I test whether the update code is 0 (default value) or FORM_GOTO (custom value, 1 in this case). If 0, I simply do a FrmUpdateForm(Form2, FORM_GOTO) and return true (event handled). If FORM_GOTO, I do the FrmReturnToForm(0) and return true as well. This way, the 2nd frmUpdateEvent is received AFTER Form3 complete termination, so the error message does not show up. However, this is kind of tricky. I see this more like a work-around than a good implementation. -- Denis. -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/
