プロが教えるわが家の防犯対策術!

初めてaccessデータベースを作る為、マニュアルを読んでもわからなかったので、初歩的な質問をさせてください。
顧客データを管理しているのですが、一つのテーブルを元に、データを管理しています。(氏名・住所・希望予算・連絡先・顧客ランクなど)
それをレポート出力するにあたって、ソート(並べ替え)をかけるのですが、時と場合によって、「今日は、顧客来店日付順」「今日は担当者別」「今日は予算別」という風にソートの基準が違います。
レポートの雛型は作成してあるのですが、それは日付順でしか並べ替えできません。
任意に、並べ替えの基準を変えて並べ替えをし、既存のレポートに出力することはできるのですか?
それとも、並べ替えをするたびにレポート書式をデザイン作成しなくてはいけないのですか?
初心者なので、なるべく簡単な方法があるとよいのですが・・・。

A 回答 (3件)

ご質問のように、並び替えを動的にしたいなら、プロパティの「並べ替え」の使い方を調べると良いと思います。



例えば、レポートを呼び出すためのフォームをつくり、並び替えの種類(yukakさんの例なら「顧客来店日付」「担当者別」「予算別」)のコンボボックス(リストでも、ラジオボタンでもOK。)と、レポートを表示するボタンを作ります。
このときに、コンボボックスは、並び替えのキーになるフィールド名だとらくちんです。例として、フォームとコンボボックスに以下のようにつけたとします。

フォームの名前:F_並べ替え選択
コンボボックスの名前:C_ソートキー

この場合だったら、レポートの「イベント」の「開く時」に、マクロかプロシージャのどちらかで、「並べ替え」プロパティに「form_F_並べ替え選択.C_ソートキー」を入れてあげる必要があります。

プロシージャなら、こんな感じです。

----------------------------------------------
Private Sub Report_Open(Cancel As Integer)

Me.OrderBy = Forms![F_並べ替え選択]![C_ソートキー]

End Sub
-----------------------------------------------

こんなんで参考になりますか?
もし、「?」なところがあったらまた。
    • good
    • 0

わたしもそれほど詳しい訳ではないのですが・・・・



時と場合によってソートする項目を変えたいのですよね?
それでしたら、クエリーを使ったらどうでしょうか?
テーブル作成クエリーを3パターン作ります。
「顧客来店日付に並替えたテーブルを作成するクエリー。」
「担当者別に並替えたテーブルを作成するクエリー。」
「予算別に並替えたテーブルを作成するクエリー。」
それを、モジュールかマクロで条件を指定して呼び出せばいいと思います。
そこで作成したワークテーブルをレポートで使えばOKだと思います。
もっとスマートなやり方があるのかもしれませんけど、
仕事ではクエリーをよく使っているので、これしか思いつきませんでした(笑)
参考までに・・・・。

ざっとしか説明していないので、わからないことなどがありましたら、
補足していただければ付け足します。
    • good
    • 0

いろいろテクニックを駆使すればもっと効率良く作れますが、初心者だとおっしゃるので手間はかかりますが一番簡単な作成方法をお教えします。

この作成方法だとフォームを一つ、選択クエリーを3つ、レポートを3つ作成する必要があります。まず始めにフォームにラジオボタンを3つ作り、それぞれラベルで「顧客来店日付順」「担当者別順」「予算別順」と明示します。次に各ソート順でクエリーを3つ作り、そのクエリーを基にしたレポートも3つ作ります。フォームにVBA(コード)でIF文かSELECT文で「顧客来店日付順」ラジオボタンを選択したら顧客来店日付順専用のレポートを出力させ、「担当者別順」を選択したら担当者別順専用のレポートを出力する・・・という風にします。レポートのレイアウトが全く一緒でしたらレポートを一個作ってそれを二回コピーすれば簡単に複数枚できます。分かりやすく書いたつもりですけどこんな感じで作れば一日で出来ると思います。
    • good
    • 0

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