• 締切済み

access2003 表示の仕方について

ルート毎の経由地点と経由時刻を記録したテーブルがあるとします。 ID ルート 区名  時間 0001 A 葛飾区 12:30 0002 A 中央区 16:00 0003 A 江東区 19:00 0004 A 葛飾区 20:00 0005 B 杉並区 9:00 0006 B 葛飾区 10:00 0007 C 杉並区 11:00 ※種別の数は最大20種程度で随時変化します。 また、一つの種別あたりのレコード数も随時変化します。 (最低5件、最大30件程度)。 同じルートでも区名が複数出てくる時もあります。 (循環ルート等) このようなテーブルから、下記のように ルート別の区名と時間を一覧で表示させたいと考えています。 一つのルートのみの抽出では、他のルートと見比べることが できない為、Aルートのみの表示ではなく、ルート毎の 区名、時間を並べて表示し、画面上で比較したいのです。 A         B        C 葛飾区 12:30 杉並区 9:00  杉並区 11:00 中央区 16:00 葛飾区 10:00 江東区 19:00  葛飾区 20:00 特定のルートをクエリで抽出して表示させることならできますが 各ルートを並べるとなると、全く分らなくなってしまいます。 どのような方法を取れば、各ルートを並べて表示させる事が できるでしょうか。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

お望みのものと縦横が変わりますが、やるとすればクロス集計クエリでしょうね ルート 1区      2区       3区       4区 A 葛飾区 12:30:00 中央区 16:00:00 江東区 19:00:00 葛飾区 20:00:00 B 杉並区 9:00:00 葛飾区 10:00:00 C 杉並区 11:00:00 クエリで 式1: [区名] & " " & [時間] 列名: DCount("*","cast","ID<='" & [ID] & "' and ルート='" & [ルート] & "'") & "区" のような式フィールドを作り クロス集計クエリに変えて ルート:行見出し 列名:列見出し 式1:値:先頭 とします 30列もあると制限にかかるかもわかりません

noname#79209
noname#79209
回答No.1

一つの例ですが、 レポート1枚に、ルート別にサブレポートを置くのは如何でしょうか。 例えば、レポート1枚に4つのルートが幅として置けるなら、4つのサブレポートを配置します。 ルートが20存在したら、5枚(5種)のレポートを印刷します。 ルートの数は、元テーブルをルートでグループ化した集計クエリを作り、そのレコード数をカウントすることで算出できます。 別にルートが20だから5個のレポートを用意する必要はなく、1つのレポートを 4ルート毎にダイナミックにサブレポートのレコードソースを変更していけば、1個のレポートで済みます。 これらは、レポートのOpenArgsで指定すれば良いでしょう。

関連するQ&A