から、ダイアログ モード Form1で開きます。コードは待機します。 Form2Form1Form2
「完了」ボタンをに追加し、プロパティを Falseに設定して非表示のフォームを再度開くForm2クリック イベントにプロシージャを追加します。非表示にすると、ダイアログ モードが解除されます。したがって、ユーザーが値を入力した後、「完了」をクリックすると、フロー制御が再開され、現在非表示のコントロールから入力値を読み取ることができます。Form2.VisibleForm1Form2
このアプローチでは、Form2について何も知る必要はありませんForm1。そのForm2ため、任意のフォームやその他のコードの入力を収集するために使用できます。
したがって、Form1という名前のコマンド ボタンがあると仮定cmdSaveAsすると、クリック イベント プロシージャとして次のようなものを使用します。
Private Sub cmdSaveAs_Click()
DoCmd.OpenForm "Form2", acNormal, WindowMode:=acDialog
' the next line is not executed while Form2 is modal (open in dialog mode);
' but after Form2 is hidden, we can read the value of the text
' box named txtInput
MsgBox "User input was: " & Forms!Form2!txtInput
End Sub