から、ダイアログ モード Form1
で開きます。コードは待機します。 Form2
Form1
Form2
「完了」ボタンをに追加し、プロパティを Falseに設定して非表示のフォームを再度開くForm2
クリック イベントにプロシージャを追加します。非表示にすると、ダイアログ モードが解除されます。したがって、ユーザーが値を入力した後、「完了」をクリックすると、フロー制御が再開され、現在非表示のコントロールから入力値を読み取ることができます。Form2
.Visible
Form1
Form2
このアプローチでは、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