Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


302 / 2272 ツリー ←次へ | 前へ→

【12190】一つのレポートでいろんな条件 comakomako 12/10/26(金) 18:34 質問[未読]
【12195】Re:一つのレポートでいろんな条件 小僧 12/10/27(土) 13:13 回答[未読]
【12202】Re:一つのレポートでいろんな条件 comakomako 12/10/31(水) 17:13 お礼[未読]
【12199】Re:一つのレポートでいろんな条件 hatena 12/10/30(火) 14:57 回答[未読]

【12190】一つのレポートでいろんな条件
質問  comakomako  - 12/10/26(金) 18:34 -

引用なし
パスワード
   レポートのレイアウトは一つなので、いろんな条件で出したいのです。なので条件別にクエリを増やしたくないのですが、効率のよい方法はありますでしょうか。

テーブル:
T_商品(商品CD・分類・金額・日付・店舗)

レポート:
1.商品CD順(全部出し)
2.分類ごと改ページで商品CD順
3.店舗ごと改ページで分類順の商品CD順

上記のケースには、日付範囲を加えたり金額を加えたりしていきたいので
イメージとすれば、フォームに条件を入れて「印刷」ボタンを押して出るようにしたいのですが、どのような方法がありますでしょうか。

今までは必要な数だけクエリを作っては同じレイアウトなのにレポートを増やしていったのですが、一か所レポートのレイアウトを変更するたびに、全部同じレイアウトにしなければならないので、一つ一つ修正するのが効率が悪くて困っていたのです。サイトでいろいろ探したのですがいまひとつこれという方法が見つけられません。おしえていただけないでしょうか。

【12195】Re:一つのレポートでいろんな条件
回答  小僧  - 12/10/27(土) 13:13 -

引用なし
パスワード
   ▼comakomako さん:
こんにちは。

> 日付範囲を加えたり金額を加えたりしていきたいので

抽出条件を変更するだけでしたら、
OpenReport メソッドの WhereCondition 引数を利用すれば可能です。

  DoCmd.OpenReport "レポート名", acViewPreview, , _
   "金額 > 300 AND 日付 Between #2012/10/01# AND #2012/10/31#"


>レポートのレイアウトは一つなので、いろんな条件で出したいのです。

こちらはいったんレポートを不可視状態で開いて
条件を指定してレポートを保存して閉じ、
再度レポートを開く様な感じになります。

  DoCmd.OpenReport "レポート名", acViewDesign, , , acHidden
  
  With Reports![レポート名]
    .GroupLevel(0).ControlSource = "店舗"
    .Section("グループフッター0").ForceNewPage = True
    .OrderBy = "分類, 商品CD"
    .OrderByOn = True
  End With
    
  DoCmd.Close acReport, "レポート名", acSaveYes
  
  DoCmd.OpenReport "レポート名", acViewPreview

ご参考になれば幸いです。

【12199】Re:一つのレポートでいろんな条件
回答  hatena  - 12/10/30(火) 14:57 -

引用なし
パスワード
   ※等幅 を設定するのを忘れたので、削除して再投稿しました。

> レポート:
> 1.商品CD順(全部出し)
> 2.分類ごと改ページで商品CD順
> 3.店舗ごと改ページで分類順の商品CD順

並べ替え/グループ化の設定(2007以降は「グループ化と並べ替え」)で
グループに下記の式を設定すればどうでしょうか。

条件は フォーム(名前 Frm1)上の オプショングループ(名前 Opt1)で指定するとします。

オプション値が 1 の時は、1.商品CD順(全部出し)・・・・


フィールド名/式           並べ替え順
-----------------------------------------------
=Choose(Forms!Frm1!Opt1,0,分類,店舗) 昇順    グループヘッダー表示
=Choose(Forms!Frm1!Opt1,0,0,分類)   昇順
商品CD

グループヘッダーの「改ページ」を「カレントセクションの前」に設定。

AC2003以前の場合で説明。2007以降も同様に設定する。

【12202】Re:一つのレポートでいろんな条件
お礼  comakomako  - 12/10/31(水) 17:13 -

引用なし
パスワード
   ▼小僧 さん

せっかく回答いただいたのに、別の仕事が忙しくなってしまいなかなか試せないのですが、何とかやってみます。
ありがとうございました。

302 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free