Чтобы вызвать всплывающую форму так, чтобы выполнение кода приостановилось до закрытия всплывающей формы нужно использовать следующий синтаксис:
DoCmd.OpenForm "myform", acNormal, , , , acDialog
Пример:
Public Sub tst()
MsgBox "Процедура запущена, сечйас будет вызвана форма" 'Закрываем если уже открыта
If CurrentProject.AllForms("myform").IsLoaded Then DoCmd.Close acForm, "myform"
DoCmd.OpenForm "myform", acNormal, , , , acDialog
MsgBox "Форма закрыта , продолжение выполнения кода"
End Sub
Код не остановится в случае если форма окажется предварительно открыта. Проверить не открыта ли форма можно используя свойство isLoaded
Код продолжится, если диалоговую форму скрыть (программным кодом по событию нажатия соответствующей кнопки на всплывающей форме ).
Ссылки по теме