• ベストアンサー

Access データの横展開

|学年|クラス|出席番号|氏 名|教科名| ===================== |1 | A | 1  |青 木|音楽 | |1 | A | 1  |青 木|美術 | |1 | A | 1  |青 木|国語 | |1 | A | 1  |青 木|数学 | |1 | A | 1  |青 木|英語 | |1 | A | 2  |有 安|音楽 | |1 | A | 2  |有 安|美術 | |1 | A | 2  |有 安|国語 | |1 | A | 2  |有 安|数学 | |1 | A | 2  |有 安|英語 | 上記のようなテーブルのデータを |1 | A | 1  |青 木|音楽 |美術 |英語 |国語 |数学 | |1 | A | 2  |有 安|音楽 |美術 |英語 |国語 |数学 | のように、フォームで表示させることができるでしょうか? できる場合、どうようにすればいいのでしょうか?どなかた宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatezoo
  • ベストアンサー率43% (7/16)
回答No.3

サブフォームを利用すると良いと思います。 学年データのみを表示させる単票フォームを1つ用意いたします。 レコードソースは学年テーブルか集計クエリを利用します。 これが親フォームになります。 これに、先ほどつくったクロス集計フォームをサブフォームとして貼り付けてやり、学年でリンクを取ります。 これで、親フォームで学年別データが表示され、かつ移動ができるようになります。 ウィザードを利用すれば簡単にできると思います。 頑張ってください。

その他の回答 (2)

  • tatezoo
  • ベストアンサー率43% (7/16)
回答No.2

まず、クロス集計クエリを作ります。 次に、そのクエリを元に帳票フォームをつくることで実現いたします。 クロス集計はウィザードによりつくることができます。 今回の場合ですと、 クエリの「新規作成」→「クロス集計クエリウィザード」から元となるテーブルを選択いたします。 次に行見出し用のフィールドを設定します。 今回の場合、学年、クラス、出席番号、氏名の4つですね。 (但し、行見出しは3フィールドしか選択できないため、事前に学年、クラスをまとめておく必要があるでしょう。 例:3-A、3-B・・・) 次に列見出し用のフィールドを設定します。 今回の場合、教科名ですね。 実際の値には、点数なり、教科名を合計、先頭として設定すればよいと思われます。 これで、要求されるような表示がなされると思います。 あとは、フォームのレコードソースをクロス集計クエリに設定してやればOKです。

mincho
質問者

お礼

ありがとうございます!参考になりました!!

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.1

クロス集計クエリーを使いましょう。 簡単に説明しますと、 クエリーのデザインビューでまずクロス集計を選びます。 表示するフィールドはそれぞれの項目です。 ここで教科名のフィールドを一つ余分に作ります。 学年|クラス|出席番号|氏名|教科名|教科名 となりますね。 次に行列の入れ替えのコンボボックスを選択して 行見出し|行見出し|行見出し|行見出し|列見出し|値 とします。 そして集計は グループ化|グループ化|グループ化|グループ化|グループ化|先頭 としておきます。必ずしも先頭を選ぶ必要はありませんが。 これをデータビューで見てみましょう。 どうですか。 いろいろ触って思いどおりになるようにしてみてください。 それでは。

mincho
質問者

補足

ありがとうございました。スゴイっ!と思いました(^^) 追加で申し訳ないのですが、上記のクロス集計クエリの学年のところに 下記のwhere条件を入れると、有効なフィールド名、または式として認識できません。と表示されてしまいます。。。(T_T) [Forms]![画面]![学年] 画面には、学年という項目を作ってあります。単純に条件に1や2を入れるとうまくデータビューが表示されます。

関連するQ&A