Microsoft Access 掲示板

レポート上でグループ化した項目のグループ件数を集計したい

2 コメント
views
4 フォロー

レポート上でグループ化したグループの、グループ内レコードではなくグループ数をカウントしたいと思っています。

現状

データソース(集計クエリ)

フィールドAフィールドBフィールドCフィールドD
チームうさぎ株式会社りんごタンバリン山田たろう
チームうさぎ株式会社りんごマラカス田中よしお
チームうさぎみかん株式会社タンバリン中村じろう
チームぞう合同会社いちごタンバリン村尾つねお
チームぞう合同会社いちごマラカス尾崎ゆたか
チームわに株式会社メロンタンバリン崎山さぶろう

※プロパティ>書式 にて 重複データ非表示:はい
※重複データはクエリ元の各テーブルでそれぞれ正規化してあるので、クエリ・レポートは実際はユニークキーで構成されています。

グループ

レポート上で

  • フィールドA
    • フィールドB
      の順でグループ化しています。

作りたいもの

拙い手書き・ピンぼけで申し訳ないですが、作りたいレポートのデザインビューのイメージを添付します。
(スマホの外カメラが故障中で内カメラで撮ったため、ピンぼけしています)
画像1

チームうさぎの中に、グループがいくつ(=りんご、みかんの2つ)
チームぞうの中に、グループがいくつ(=いちごの1つ)



というように表示したいのです。

本掲示板管理人のhatenaさんの、2019/4/11移行前のFC2ブログ内エントリ「レポート上でグループ化した項目を集計」の「グループ化したフィールドを集計」を参照して試しましたが、エントリ内でいう「グループ件数」テキストボックスをレポートフッターではなく、上位にネストしているグループのグループヘッダー(あるいはレポートヘッダー)に配置したいです。
エントリの方法ですと、集計するテキストボックス(グループ件数)が集計対象の連番テキストボックス(グループ連番)より先にありますので、集計できない(1しか表示されない)状態となっております。

どうしたらよいか、または関連機能やチェックすると良いプロパティがあるか、お知恵をお貸しください。

あんぱんまん
作成: 2019/07/22 (月) 21:00:32
最終更新: 2019/07/22 (月) 21:04:49
通報 ...
1

グループヘッダーとなるとリンク先の方法では無理ですね。
方法としては2つ考えられます。

1.集計クエリでグループ件数を計算して、それをレポートのレコードソースのクエリと結合して、それをレコードソースとする。

2.VBAでレポートのフォーマット時でグループ件数を取得して連想配列に格納して、印刷時にグループヘッダーで出力する。

1.の方法で回答します。

まず、現状の集計クエリからクエリを作成して、フィールドAとフィールドBを表示させて、
クエリプロパティの「固有の値」を「はい」にします。
これで、フィールドBの重複が排除された出力が得られます。

フィールドAフィールドB
チームうさぎみかん株式会社
チームうさぎ株式会社りんご
チームぞう合同会社いちご
チームわに株式会社メロン
 
さらにクエリを新規作成して上記のクエリを追加して、集計クエリにして、下記のように設定します。

フィールドA グループ化
フィールドB カウント

これで、重複を排除した件数が取得できます。

フィールドAフィールドBのカウント
チームうさぎ2
チームぞう1
チームわに1

このクエリをレポートのレコードソースのクエリと結合させてレポートのレコードソースにすれば、
ご希望の件数をグループヘッダーに表示できます。

2
あんぱんまん 2019/07/25 (木) 23:07:01 9a406@8f39b >> 1

回答いただきありがとうございます。
1の方法で試しまして解決しました!
Access使い始めて間もないので、一つの目的に対していくつものクエリを重ねてよいものか、プロパティなどをいじれば少ない工数でできるのではないか、といろいろ考えて手詰まっておりましたが…。もっとシンプルに、単純なクエリで一つ一つ進めればいいのだなと思いました。
2の方法は私には難しいと思うので、もう少しAccessとVBAに慣れてから勉強することにします。
ありがとうございます。