次の方法で共有

メインレポートに抽出条件付きサブレポートが埋め込んであります。メインレポートを開くときにサブレポートも開くのですが、サブレポートのパラメータを2回要求されます。1回で済ますにはどうすればよいでしょうか?

Anonymous
2012-07-10T09:30:53+00:00

団体連合会のデータベースをつくっています。

団体ごとに、団体名、代表者、住所などのデータを入力してあります。

代表者の変更などがあったときなどは、その日付と内容を別テーブルに入力し、変更履歴が残るようにしています。

連合会加盟団体の一覧表(レポート)を作る際、末尾に上記の変更履歴をサブレポートとして、記載することにしました。

この際、任意の期間の変更履歴のみ抽出するようにクエリを作成しました。

サブレポートのみを開くときは問題ないのですが、メインレポートを開くとき同時に開くサブレポートのパラメータを要求されるので入力するのですが、再度要求されます。目的のレポートはできるのですが、パラメータの入力を1度だけで済ますにはどうすればよいでしょうか?

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-07-12T12:40:18+00:00

A.上記4.の加入団体一覧(レポート)に、備考用テーブルから抽出した当年だけの「備考」をサブレポートとしてレポートフッターに埋め込もうと考えました。

この際、サブレポート用クエリで抽出条件にBetween「いつから」And「いつまで」としたところ、パラメータを2回要求されます。

Q(A). この状況で最もよい方法は何でしょうか。

当年だけというのが、システム日付を基準にするのなら、パラメータを使わずに、抽出条件を

Between DateSerial(Year(Date()),1,1) And  DateSerial(Year(Date()),12,31)

と設定すればどうでしょうか。

サブレポート用クエリの抽出条件には次の通り入れてあります。

Between Nz([Forms]![備考の期間指定]![備考いつから],#1900/01/01#) And Nz([Forms]![備考の期間指定]![いつまで],#9999/12/31#)

Q(B). 何が抜けているのでしょうか?

備考の期間指定 フォームを開いて、備考いつから、いつまで のテキストボックスに日付を入力してから、レポートを開いてますか。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-07-15T12:52:10+00:00

    ご教示ありがとうございました。

    「備考の期間指定」フォームの設定でコントロールの名前の付け方に不備がありました。修正したら、任意の期間を指定したサブレポートつきのレポートが作成できるようになりました。

    ところが、埋め込んだサブレポートのページヘッダーが表示されません。原因はどこにあるのでしょうか?

    サブレポート単独で開いたときは、ページヘッダーは正しく表示されます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-07-12T05:43:47+00:00

    MukkuMukuさん、hatena19さん、さっそくの返信ありがとうございます。

    質問の仕方が下手で申し訳ありません。

    あらためて、いま出来ていることと、やりたかったことを記します。

    1.団体連合会の基礎データを1つのテーブルに入れてあります。

    フィールドは登録番号、団体名、連合加入日、代表者、住所などです。

    2.各フィールドのうち、例えば代表者に変更があった場合、上記テーブルで該当欄のデータを書き換えてしまいます。しかし、過去の代表者の変遷を記録に残したいということになりました。

    3.そこで、基礎データのテーブルとは別に、登録番号、団体名、変更年月日、変更内容というフィールドをもった備考用のテーブルを作成しました。

    4.毎年末に、加入団体の一覧リストを作成します。その際、その年内に異動のあった項目について「備考」として、リストの末尾に記載したいのです。

    A.上記4.の加入団体一覧(レポート)に、備考用テーブルから抽出した当年だけの「備考」をサブレポートとしてレポートフッターに埋め込もうと考えました。

    この際、サブレポート用クエリで抽出条件にBetween「いつから」And「いつまで」としたところ、パラメータを2回要求されます。

    Q(A). この状況で最もよい方法は何でしょうか。

    B.以前、MukkuMukuさんにお教えいただいた、期間指定フォームをつくって、やって見ましたが、リレーションが上手くいってないのか、今度は抽出されずに、全件がサブフォーム表示されてしまいます。

    サブレポート用クエリの抽出条件には次の通り入れてあります。

    Between Nz([Forms]![備考の期間指定]![備考いつから],#1900/01/01#) And Nz([Forms]![備考の期間指定]![いつまで],#9999/12/31#)

    Q(B). 何が抜けているのでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2012-07-10T13:50:09+00:00

    メインレポートの詳細セクションにサブレポートを埋めこんだ場合、

    メインレポートのレコード数分、サブレポートが呼び出されます。

    サブレポートにパラメータが設定されていれば、メインのレコード数分要求されます。

    サブレポートを使わずに、メインとサブを結合したクエリからレポートを作成して、

    グループ化してグループヘッダー/フッターを利用するものに変更すれば

    1回の要求で済みます。

    また、サブレポートを使用するレポートより軽くなるはずです。

    できることなら、この方法がお勧めです。

    サブレポートを使わなければ実現できないレイアウトの場合は、

    フォーム上のテキストボックスに値を入力して、それをサブレポートから

    参照するようにします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2012-07-10T13:48:26+00:00

    こんばんは、MukkuMukuです

    レポートのレコードソース/サブレポートのレコードソース、いずれも同じ値を必要としているということでしょうか。

    詳細が見えないのでいくつか考えられてしまうのだけど、

    TempVarとかフォーム上コントロールに値を入れていて、これらを参照するとか、

    テーブルを結合し一つのクエリにして、レポートのコントロール配置で必要な分だけ表示させるとか

    以前に似たような問答があったような。。。思い出すことができない。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません