Well, assuming I understand what you're trying to do....

You could try putting a block in that stops the loop if frmChooseAction is active.

For Example, in the 'On Load'even of frmChooseAction, set a global variable to true (such as blnfrmChooseActionLoaded). When the form closes set it to false.

In your main loop you would then have a mini loop which goes as follows...

VB Code:
  1. while blnfrmChooseActionLoaded = true then
  2.      doevents
  3. wend

Give that a whirl. You could also try scrapping the global variable and simply checking the .visible property of the form - but this has never been very successful for me...