メインレポートに2つのサブレポートを入れました。メインレポートは正常に表示されますが、[Enter Year]
パラメータは2回表示されます。1回はサブレポートのクエリごとに1回表示されます。これは正常なことであり、コードを記述することでおそらく1つのプロンプトに減らすことができます。
しかし、名前付きパラメーターを1回指定する方法が必要だと思います。サブレポートのクエリでそれを取得し、使用します。次に、共有パラメーターを使用して多くのサブレポートに対して同様の収集されたレポートを実行するため、非コードメソッドでこれを実行したいと思います。
私が試したのは次のとおりです。1。メインフォームのテキストフィールドのコントロールソースをに設定して=[Enter Year]
も、プロンプトはまったく表示されません。2.メインフォームのデータソースを設定するSELECT * FROM <common table> WHERE year=[Enter Year]
と、プロンプトが表示され、サブレポートのデータソースはスキップされますが、奇妙なことに、サブレポートページが無限に繰り返されます。
これはAccess2003用です。
編集: 1。「プロンプトの再利用」をクエリに含めたいので、上記は機能しません。パラメータが(標準の「期間」)フィルタとして使用されていない場合は、もちろん、テキストフィールドを親の値に設定することもできます。
現在、メインレポートは、プロンプトが表示されたパラメーターを列として含む単純なクエリに基づいています。しかし、何らかの理由でAccessは、列(tmpYear)への参照が「疑わしい」/「明確」であると言っています(私は英語のAccessを実行していません)。これは、メインレポートクエリの列が、サブレポートクエリで必要なときに「終了」していないためと考えられます。
私にとって、これは質問を次のように変更します。メインレポートのテキストフィールドの値をサブレポートのクエリに取得する方法。
編集2: これを解決するための2つの選択肢があることを理解しました。a)プロンプト値を返すグローバル関数を記述し、その関数をクエリデザインで使用します。b)パラメータを使用して元のクエリを保持し、myQueryDef.Parameters( "")をプロンプト値に設定します。
... b)を除いて、サブクエリプロンプトが表示されます。
(これを断片的な質問にして申し訳ありませんが、おそらく他の人の発見の旅と一致するでしょう。必要に応じて、b)が機能しない理由について新しい短い質問を投稿できます。)