1

メイン フォーム 1、その中にサブフォーム 2、ポップアップ フォーム 3 があります。

フォーム 2フォーム 3はデータシートです。フォーム 1のボタンは、ポップアップフォーム 3を開きます。

現在、フォーム 2で、現在選択されているレコードをキャプチャし、次のコードでクエリをセットアップします。

クエリは、strSQL という名前の var です。

フォーム 3のレコード ソースをForms!1!2.forms!strSqlとして設定できるように、フォーム 2のプロパティとして strSQL を設定することは可能ですか? そうでない場合、フォーム 2からフォーム 3にデータを移動するオプションは何ですか?それらは関連していないため、OpenArgs を使用できません。

4

1 に答える 1

1

このようなものに OpenArgs を使用できます。必要に応じて、OpenArgs で SQL 文字列を渡すことができます。実際、正しく解析する限り、OpenArgs で複数の SQL 文字列を渡すことができます。OpenArgs を使用して 3 つの変数を別のフォームに渡すアプリがあり、それらをパイプで区切ります (つまり、パイプ キー "|" を使用して各変数を区切り、他のフォームに到達したときにそれらを解析します)。 . この方法論を使用して、やろうとしていることを確実に達成できます。

例として、次のコードを使用して、フォーム、サブフォーム、およびフィールド名を新しいフォームに渡します。

DoCmd.OpenForm stDocName, , , , , , stForm & "|" & stField & "|" & stSubForm

そのフォームを開くと、次のコードを使用してこれらの値を解析しています。

strForm = Left(Me.OpenArgs, InStr(Me.OpenArgs, "|") - 1)
Brk1 = Mid(Me.OpenArgs, InStr(Me.OpenArgs, "|") + 1)
strField = Left(Brk1, InStr(Brk1, "|") - 1)
strSubForm = Mid(Brk1, InStr(Brk1, "|") + 1)
于 2013-06-14T19:18:30.060 に答える