アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスで集計クエリーを実施し、その内容をレポートで見やすく表示するように作成しました。
ところが列のフィールドに該当する値がないとレポートが上手くできません。 具体的には行に顧客、列に商品を羅列し売上高を集計させるクエリーで、商品(A、B、C…)の内、当月商品Bの売上が無かったとするとエラー「'[商品B]'を有効なフィールド名、または式として認識できません」が発生します。 試しに商品Bの売上を0円とした新しいレコードを作成するとうまく表示されるのですが…。
元になるクエリーはBの売上があろうがなかろうが正常に表示できるのに、それを元に作ったレポートが表示できないので困っています。どなたか助けて下さい。よろしくお願いします。

A 回答 (4件)

>行に顧客、列に商品を羅列し売上高を集計させるクエリーで


わかりにくい書きかたですが
>'[商品B]'を有効なフィールド名、または式として認識できません」が発生します。
ということから見てクロス集計クエリをソースとするレポートのようですね

列名が変動するクロス集計クエリではこのようなことが起こります
変動しても大丈夫な方法もありますがバリバリにVBAが必要です

質問の場合は商品名に限りがあるようですから
クロス集計クエリで列名プロパティーに
全商品名を指定してやることで逃げられそうですね

この回答への補足

ありがとうございます。
商品名は10種類しかなく、今後も増える予定もありません。

>クロス集計クエリで列名プロパティーに
>全商品名を指定してやることで逃げられそうですね

ってどうやればよいのですか?

補足日時:2007/02/06 14:11
    • good
    • 1

プロパティー名が少し違っていましたね


[クエリ列見出し]です

通常表示されているフィールドのプロパティーではなく
クエリデザインビューで上半分のテーブルが表示されているところの
空白をクリックした時に表示されるクエリのプロパティーの方にあります

そこに商品名をカンマで区切って羅列します
    • good
    • 2

ちょっと手間がかかりますが。


印刷専用のテーブルを新規作成する
このテーブルは定義のときに固定的に
aの売上
bの売上
cの売上
dの売上
*
*
*
というフイールドを作成しておきます
----------------------------------
1.新規テーブルを削除クエリーで0件にする
(テーブル削除ではなく、
 0件にする「なにか適当な条件で0件に」)
2.集計クエリーを新規テーブルへ書き込みます
  --インプットは集計クエリー結果--
3.売上のない品目の値はnullになるので
  nullを0にする更新クエリーを作成して実行
  (nullなら0にする---a-b-c-d 全部へ
   それぞれに作る--条件式の設定のために別々で)
-------------------------------------------
作成するのは
集計印刷用テーブル
テーブル書き込みのための追加クエリー
削除クエリー
更新クエリー
です
    • good
    • 0

空白を他の数値に置き換えるなら


Nz([商品B],0)   ※0(ゼロ)の場合だけ省略できます。
のようにすれば出来ます。
集計なら
Sum(Nz([商品B],0))
ですね。
ただ数値の項目は既定値を0として、表示形式を#,###のようにして
ゼロを表示しないようにしたほうがいいかと思いますが...
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!