Jak zamrozić formularz nadrzędny, gdy formularz podrzędny jest otwarty

Mam sytuację, w której w pewnych okolicznościach muszę otworzyć inną formę i zachować tę formę skupioną (modal = true), a kiedy nie są i zamykają się, kontrola formularza nadrzędnego jest odświeżana z możliwymi danymi, które mogły ulec zmianie .

Pierwotnie miałem metodę, która by to zrobiłaDoEvents podczas gdy formularz podrzędny był otwarty, ale powoduje, że kilka formularzy podrzędnych nie nadaje się do użytku (nie były powiązane z danymi na poziomie formularza) do wprowadzania / edycji danych.

Metoda ShowForm - pierwotnie
Public Sub ShowForm(par As Form, nm As String, _
                    Optional whr As String = "", _
                    Optional args As String = "", _
                    Optional mode As AcFormOpenDataMode = acFormPropertySettings)
    DoCmd.OpenForm nm, acNormal, , whr, mode, , args

    While IsOpen(nm)
        DoEvents
    Wend
End Sub

Aby móc konsekwentnie korzystać z formularzy potomnych, musiałem skomentowaćWhile...Wend pętla.

Czy istnieje inny wzorzec logiczny, którego mógłbym użyć w tej metodzie lub OnClick kontrolki wywołującej, tak aby zamykając formularz podrzędny mógłbym wykonać kod po zamknięciu formularza potomnego?

questionAnswers(4)

yourAnswerToTheQuestion