ココに注意
クロス集計クエリは便利な反面、くせすごです!
やりたい事
やりたい事
「User」がデータ入力したテーブル「Clearing_data」とそれに紐づいた「Category」の「仕分」毎に集計を出したい
という事になります。
そして、その集計をレポートにして下記のようにしたいというのが目的になります。
期間を絞ったテーブル作成
今回の題材とは関係ありませんが、「Clearing_data」には、月日というフィールドがあり、その期間を新しいテーブルとして作成しました。
期間の方は、フォームの非連結のテキストボックスから設定できるようにしました。
この期間を絞ったテーブル「job_petty_payment」というテーブルから、ID「User」と仕分「分類2」でクロス集計をしました。
クロス集計クエリで値の無い列が出ない!?
上のようなクロス集計クエリを作成して、ほぼ必要なデータ内容になりました。
が、しかし・・・
ココに注意
値がない列が「0」で出てこない!
この方法から、「クエリ列見出し」と言う場所に、表示させたい列を入力しました。
これで、値が無い列でも表示することができるようになりました。
列が変動する場合は・・・(無理)
今回の仕組みでは、「Category」テーブルに仕分のマスターとして変動しても良いように備えました。
が、しかし・・・
「Category」テーブルに新たに追加した場合は、列として変動してくれません。
つまり、「クエリ列見出し」に追加した項目を追加しないと列として出てくれないのです。
本当は、「Category」マスタの内容に連動して、列が変動して欲しかったのですが、今の自分のスキルでは難しいのです。
結局、列固定にて、
ココがダメ
「Category」マスタ変動時には、手動で、「クエリ列見出し」を修正する
ことで納めました。
印刷プレビューでの不具合
数値の3桁カンマがグレーアウト
クロス集計クエリをレポートにしましたが、数値の3桁ごとのカンマを入れようとしたら、グレーアウトになっていて変更ができません。
クロス集計で出した値の合計の方は、問題なくカンマ変更をすることができたのに不思議です。
ココがポイント
Val関数を使ったらグレーアウトが改善されました!
Val関数
文字列に含まれる数値を、適切なデータ型の数値で返します。
今さながら、ひとつひとつを改善させていくしかないですね。
合計がSUM関数でエラー
そして、もう一つの印刷プレビューでの不具合は、クロス集計での、合計がSUM関数でエラーになるのです。
クロス集計から演算して値として出された値に関しては、SUM関数を使えば、レポートフッターにて、合計が表示されました。
しかし、クロス集計から合計として出した「合計金額」をSUM関数にて総合計を出そうとするとエラーになって計算してくれません。
これは、Accessの仕様なのかなーーーって思う事にしました。
結局、演算値をSUMで合計して総合計をだしました。