プロが教える店舗&オフィスのセキュリティ対策術

Access2007のサブレポートの絞り込み(フィルタ)について教えて下さい。

いつも親切に教えて下さりありがとうございます。

Access2007でサブレポートを入れたレポートがあります。
フォームから絞り込み(フィルタ)をかけて印刷できるようにしているのですが、サブレポートが上手く作動しません。

主にフィルタは日付で検索します。
メインレポートとフォームは同じクエリから作成しています。
サブレポートは別のクエリからです。
リンクフィールドには顧客IDが親子で入っています。
フォームに印刷ボタンを設置し、DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter
で、印刷出来るようにしています。
クエリには抽出条件は入れていません。

例えば12/17のみフィルタをかけた場合は、メインもサブを作動するのですが、
12/17と12/18など1つ以上の条件を選択してフィルタをかけると、メインのみ2日分表示されサブは12/17のみ表示されます。

サブレポートも同じようにフィルタをかけた場合に作動させるにはどうしたら良いでしょうか?
大変わかりづらい説明で申し訳ありません。
教えて下さい。よろしくお願い致します

A 回答 (3件)

なぜにサブレポートを作成する必要があるのでしょう?


二つのクエリの相違点は、問合せ.有望チェックの = Yes/No の部分だけでしょう?
なのでサブレポートは無しにしてメインレポートのSQL文の問合せ.有望チェックの抽出条件は外して

SELECT 媒体.媒体ID, 媒体.媒体, 媒体.詳細, 媒体.折込日, 問合せ.問合せID, 問合せ.月日, 問合せ.顧客ID, 顧客リスト.氏名, 顧客リスト.フリガナ, 顧客リスト.住所2, 顧客リスト.住所3, [住所2] & [住所3] AS 住所, 顧客リスト.住所4, 顧客リスト.TEL, 顧客リスト.携帯, 問合せ.内訳, 問合せ.見学会備考, 問合せ.有望チェック, 問合せ.見学会既存・見込み
FROM 媒体
INNER JOIN (顧客リスト INNER JOIN 問合せ ON 顧客リスト.顧客ID = 問合せ.顧客ID)
ON 媒体.媒体ID = 問合せ.媒体ID
WHERE (((媒体.媒体)="見学会") AND ((問合せ.見学会既存・見込み)=No));

にしてしまえば事足りるとおもいます。
後は適宜必要に応じて、並び替えやグループ化の設定を行えば済む問題では?と。
    • good
    • 0
この回答へのお礼

ありがとうございます。
グループ化にしたところ出来ました。助かりました。

お礼日時:2012/12/21 11:20

あなたの隣でモニタ画面を見ているわけではないので


>Forms!テーブルA!日付のパラメータ・・
と言われてもサブレポートの中で独自の抽出条件が設定されているのかな
などと、あらぬ推測をしてしまいます。
”テーブルA”というフォームは実在するのでしょうか?

メインレポートの元になっているクエリのSQL文
サブレポートの元になっているクエリのSQL文
を提示してみてください。

この回答への補足

大変すみませんでした。

>メインレポートの元になっているクエリのSQL文

コピーしそのまま記載します。
SELECT 媒体.媒体ID, 媒体.媒体, 媒体.詳細, 媒体.折込日, 問合せ.問合せID, 問合せ.月日, 問合せ.顧客ID, 顧客リスト.氏名, 顧客リスト.フリガナ, 顧客リスト.住所2, 顧客リスト.住所3, [住所2] & [住所3] AS 住所, 顧客リスト.住所4, 顧客リスト.TEL, 顧客リスト.携帯, 問合せ.内訳, 問合せ.見学会備考, 問合せ.有望チェック, 問合せ.見学会既存・見込み
FROM 媒体 INNER JOIN (顧客リスト INNER JOIN 問合せ ON 顧客リスト.顧客ID = 問合せ.顧客ID) ON 媒体.媒体ID = 問合せ.媒体ID
WHERE (((媒体.媒体)="見学会") AND ((問合せ.有望チェック)=Yes) AND ((問合せ.見学会既存・見込み)=No));


>サブレポートの元になっているクエリのSQL文
これもコピーしそのまま記載します。
SELECT 媒体.媒体ID, 媒体.媒体, 媒体.詳細, 媒体.折込日, 問合せ.問合せID, 問合せ.月日, 問合せ.顧客ID, 顧客リスト.氏名, 顧客リスト.フリガナ, 顧客リスト.住所2, 顧客リスト.住所3, [住所2] & [住所3] AS 住所, 顧客リスト.住所4, 顧客リスト.TEL, 顧客リスト.携帯, 問合せ.内訳, 問合せ.見学会備考, 問合せ.有望チェック, 問合せ.見学会既存・見込み
FROM 媒体 INNER JOIN (顧客リスト INNER JOIN 問合せ ON 顧客リスト.顧客ID = 問合せ.顧客ID) ON 媒体.媒体ID = 問合せ.媒体ID
WHERE (((媒体.媒体)="見学会") AND ((問合せ.有望チェック)=No) AND ((問合せ.見学会既存・見込み)=No));

よろしくお願い致します。

補足日時:2012/12/20 15:34
    • good
    • 0

お助けできるかどうか分かりませんが、ふたつ以上の条件の場合の


Me.Filter
の値はどのようになっていますか?

また、フィルターには何も設定せずに、
メインレポートの元になっているクエリに抽出条件を複数のレコードが取得できるように
設定した場合にはどのようになりますか?

この回答への補足

ありがとうございます。

>ふたつ以上の条件の場合の
Me.Filter
の値はどのようになっていますか?

→リボンのフィルタをつかって、該当の日付をチェックしています。

>また、フィルターには何も設定せずに、
メインレポートの元になっているクエリに抽出条件を複数のレコードが取得できるように
設定した場合にはどのようになりますか?

→Forms!テーブルA!日付のパラメーターの入力画面が出て、メインのみが表示されます。

上記の回答でお分かりになりますか?説明不足でしょうか??
よろしくお願い致します。

補足日時:2012/12/20 09:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A