- ベストアンサー
空白があると集計レポートがエラーに!
- アクセスで集計クエリーを実施し、その内容をレポートで見やすく表示するように作成しました。
- しかし、行に顧客、列に商品を羅列し売上高を集計させるクエリーで、商品の内、当月商品Bの売上が無いとエラーが発生します。
- 試しに商品Bの売上を0円とした新しいレコードを作成するとうまく表示されるのですが、元になるクエリーはBの売上があろうがなかろうが正常に表示できるのに、それを元に作ったレポートが表示できないので困っています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>行に顧客、列に商品を羅列し売上高を集計させるクエリーで わかりにくい書きかたですが >'[商品B]'を有効なフィールド名、または式として認識できません」が発生します。 ということから見てクロス集計クエリをソースとするレポートのようですね 列名が変動するクロス集計クエリではこのようなことが起こります 変動しても大丈夫な方法もありますがバリバリにVBAが必要です 質問の場合は商品名に限りがあるようですから クロス集計クエリで列名プロパティーに 全商品名を指定してやることで逃げられそうですね
その他の回答 (3)
- CHRONOS_0
- ベストアンサー率54% (457/838)
プロパティー名が少し違っていましたね [クエリ列見出し]です 通常表示されているフィールドのプロパティーではなく クエリデザインビューで上半分のテーブルが表示されているところの 空白をクリックした時に表示されるクエリのプロパティーの方にあります そこに商品名をカンマで区切って羅列します
- toku8
- ベストアンサー率26% (64/246)
ちょっと手間がかかりますが。 印刷専用のテーブルを新規作成する このテーブルは定義のときに固定的に aの売上 bの売上 cの売上 dの売上 * * * というフイールドを作成しておきます ---------------------------------- 1.新規テーブルを削除クエリーで0件にする (テーブル削除ではなく、 0件にする「なにか適当な条件で0件に」) 2.集計クエリーを新規テーブルへ書き込みます --インプットは集計クエリー結果-- 3.売上のない品目の値はnullになるので nullを0にする更新クエリーを作成して実行 (nullなら0にする---a-b-c-d 全部へ それぞれに作る--条件式の設定のために別々で) ------------------------------------------- 作成するのは 集計印刷用テーブル テーブル書き込みのための追加クエリー 削除クエリー 更新クエリー です
- mshr1962
- ベストアンサー率39% (7417/18945)
空白を他の数値に置き換えるなら Nz([商品B],0) ※0(ゼロ)の場合だけ省略できます。 のようにすれば出来ます。 集計なら Sum(Nz([商品B],0)) ですね。 ただ数値の項目は既定値を0として、表示形式を#,###のようにして ゼロを表示しないようにしたほうがいいかと思いますが...
補足
ありがとうございます。 商品名は10種類しかなく、今後も増える予定もありません。 >クロス集計クエリで列名プロパティーに >全商品名を指定してやることで逃げられそうですね ってどうやればよいのですか?