質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

4674閲覧

ACCESS レポートでのグループ化について

napoleon

総合スコア18

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/05/16 06:37

編集2018/05/18 01:10

イメージ説明
イメージ説明
イメージ説明

クエリをもとにレポートを作成しています。

見やすい帳票にするために同名などはグループ化したいと考えています。
KEY1には同じ名前が入っているので、グループ化機能を使ってグループ化することが出来ました。

そこで同様に他のフィールドもグループ化したい箇所がありますが、値がNULLであったり規則性は特にないためグループ化機能ではグループ化されません。(左図の201804の列)

理想としてはオレンジ枠(右図)でグループ化したいと考えております。

グループ化するルールはKEY1と同様なので何かいい方法はないかとネットなどで検索していますがなかなか見当たりません。

非連結のフィールドを一つ作成して代入する方法が参考例としてありましたが、そのほかの方法でなにか良い方法は無いでしょうか?

ご教示宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

そこで同様に他のフィールドもグループ化したい箇所がありますが、値がNULLであったり規則性は特にないためグループ化機能ではグループ化されません。(左図の201804の列)

この状態では、テーブルの正規化ができているか怪しいですね。
データベースは正規化されていいなければ使い物になりません。

データベースの正規化の基礎

まず、現状のテーブルのフィールド名、主キー設定、データ例を提示しませんか。
それを元に話をすすめましょう。
レポートでのグループ化とかなどの話は、テーブルの正規化が正しくできてからです。

投稿2018/05/16 10:41

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

napoleon

2018/05/18 01:16

コメントありがとうございます。画像を追加しました。 テーブル3つをクエリで結合したものをもとにレポートを作成しています。(テーブルCを親にして、テーブルA,Bを結合しています。) KEY1,KEY2,品名,fam_code,カウントはグループ化し、その他の規格別の発注数は各々表示したいというのがイメージ図です。 (テーブルBに入れているfam_codeは無理やりKEY2で見たときのKEY1の最小に代入されるようテーブル作成時に設定しました。) 説明が分かりにくくて申し訳ありません。。。
hatena19

2018/05/18 04:47

想像以上に正規化ができてないないですね。 このテーブルからは、各データの関係もわからないので、どうすべきかというアドバスいも難しいです。 一度、正規化についての学習をして、テーブル設計を一から作り直すべきだと思います。 とりあえず現状でなんとかするには、クエリでは、無理ですね。 テーブルCが親として、テーブルAとテーブルBに明確な結合関係がないので、どう結合してもまともなデータになりません。 やるとすると、テーブルCをソースとするレポートをメインレポート、 テーブルA、テーブルCからそれぞれレポート作成して、サブレポートとして埋め込むぐらいでしょうか。 ただ、このままのテーブル設計ではいずれ行き詰るでしょう。
napoleon

2018/05/18 05:02

回答ありがとうございます。各担当からのデータがこのようなテーブルできてそれを一元化して見たいというオーダーのためなかなか統一性がなく、またKEY設定が難しいです。。。 しかもレポート機能では列数が足りそうにありません。。。 ADODBでExcel加工を試みようと考えております。 知識が足らず、質問内容が乏しくて申し訳ありませんでした。また教えてください。
guest

0

KEY1には同じ名前が入っているので、グループ化機能を使ってグループ化することが出来ました。

同様に他のフィールドもグループ化したい箇所がありますが、値がNULLであったり規則性は特にないためグループ化機能ではグループ化されません。

ここは理解されてますね。

グループ化するルールはKEY1と同様なので

状態が違うのでルールは作るしかありません。
グループ化ではなく、最大・最小・先頭・最後などで良さそうなものにするか、
以下のような関数を利用して列挙するなど。
DJoin 関数 - リスト文字列を取得する方法

若しくは、レポートのVBAで編集する。

投稿2018/05/16 08:21

編集2018/05/16 08:32
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

napoleon

2018/05/16 08:51

回答ありがとうございます。画像を追加したのですが「L110A~L102A]が10×10と500バラと10×1000に同様に値が入っていればグループ化できるのかなと思い試してみたのですが、なぜかグループ化のフィールドリストの選択肢に出てきません。。。ご教示いただいたDjoin関数をやってみようと思います。 明後日、また質問させていただくかもしれませんがよろしくお願いいたします。
guest

0

NULLにならないようルールを決めて値を詰めるSELECTクエリーを作ってから、
グループ化を試す。

投稿2018/05/16 06:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

napoleon

2018/05/16 07:40

ご回答ありがとうございます。値が入っていたりNullであったりと月ごとに状況が変わります。また値は3~5個あった場合にChr(10)で改行しており、そのように表示したいと考えています。Selectクエリを作ってからというのはAAAなどのKEYの値すべてに対し同じ値を代入しグループ化するということでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問