ボタンをクリックすると、リスト ボックスに値を含む別のフォームが開くメイン フォームが 1 つあります。私が望むのは、値の 1 つをクリックして、その値を他のフォームのテキスト ボックスに入力することです。
私はいくつかの異なる方法を試しましたが、これは私が現在取り組んでいるものです。
メインフォーム:
Private Sub txtFindInvoice_AfterUpdate()
If IsNull(Me.OpenArgs) = False Then
txtFindInvoice = strSelectedInvoice
End If
End Sub
2 番目の形式:
Private Sub lstInvoices_Click()
DoCmd.OpenForm "SummaryByInvoice1", acNormal, , , , , lstInvoices.Value
Forms!SummaryByInvoice1.Refresh
DoCmd.Close acForm, "frmSearchByMonth"
End Sub
メイン フォームは「SummaryByInvoice1」で、開くフォームは「frmSearchByMonth」です。テキスト ボックスは txtFindInvoice で、リスト ボックスは lstInvoices です。
つまり、SummaryByInvoice1 のコードでここで設定した OpenArgs 値を参照しても、フォームは実際には再オープンされていないため、OpenArgs はまだ空白として読み取られているということです。
frmSearchByMonth を開いたときに SummaryByInvoice1 を閉じてみましたが、これで問題は解決しました。ただし、frmSearchByMonth は大量のデータからプルし、読み込みが少し遅いため、これは実行可能なオプションではありません。したがって、数秒間空白の画面を表示することはできません。クローズを数秒遅らせる方法があれば、うまくいく可能性があります。
どんな助けでも大歓迎です。ありがとう。