dポイントプレゼントキャンペーン実施中!

宜しくお願いします。

仕様環境:WinXP access2002

acecssで集計クエリを作り、それが反映されるフォームを作っています。
集計方法は「カウント」です。

テーブルは重要なところだけいいますと、
ステータステーブル・・・IDとステータス(「見積中、返答待ち、確定、作業中、作業完了、入金待ち、終了、NG」)。
案件テーブル・・いろんな項目がありますが、「ステータス」という項目があり、別途のフォームで
そこをコンボボックスにしてステータステーブルの情報を引っ張ってきています。

そこでなのですが、「集計フォーム」の画像を見ての通り、
実際、まだ案件テーブルで選択されていない項目については表示されません。
例えば:確定、作業中、作業完了など。

これを「確定0件、作業中0件、作業完了0件」と出したいのです。
集計クエリには実際まだ存在していないので、表示されないのはわかりまして、
それがフォームにも反映しているのもわかります。

そこでnz関数を使って、例えば
「確定:nz([ステータス],"0")」や「確定:nz[確定],"0"」ではクエリに表示されません、
(いろいろ試したのでエラーが出たときもあります)

よく考えてみると存在していないものは、nz関数ではダメなのかなと思っています。
(nz関数は存在しているnull値を違う値に変えるものと認識しています)

クロス集計クエリも試しましたが、存在していないところは「#name」とエラーになり、
nz関数を同様に使ってみたのですがダメでした。

どうすれば存在していないものに対して”0件”という表示がだせるのでしょうか?
そもそもの構造がおかしいのでしょうか?
クエリは普通の集計クエリでもクロス~でもカウントを使うので”0”が”1つ”として
数えられてしまうと本末転倒です。

なるべく基盤の構造はシンプルに作りたいので集計クエリを望んでいます。

改善点があれば、ご教示お願いします。

余談ですが、こういうaccessの個別レッスンとかやっている教室があったら
教えて頂けば幸いです。(東京・ちなみにアビバは資格向けのようです)

「access 存在しない項目を”0件”と」の質問画像

A 回答 (2件)

集計クエリの結果とステータステーブルを外部結合させて、NULLなところをNz()で0と表示させればよいです。



SQLでいうとこんな感じ:
クエリQ1: select State, count( State ) as NumState from TMatter group by State;

クエリQSummary: select TState.State, Nz(Q1.NumState,0) as NumState from TState Left join Q1 on TState.State=Q1.State;
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
SQLの構文ですか・・
そろそろその辺も勉強していかないといけないようですね。
(今までaccessの機能そのままでクエリとマクロのみでやってました)
準備が整い次第、やってみようと思います!

お礼日時:2009/05/04 15:28

SELECT A.ステータスID,MAX(A.ステータス) AS ステータス,


COUNT(B.キー) AS 件数
FROM ステータステーブル AS A LEFT JOIN 案件テーブル AS B
ON A.ステータスID = B.ステータスID GROUP BY A.ステータス

集計対象は絶対にNullにならない項目を指定します。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
SQLの構文ですか・・
そろそろその辺も勉強していかないといけないようですね。
(今までaccessの機能そのままでクエリとマクロのみでやってました)
準備が整い次第、やってみようと思います!

お礼日時:2009/05/04 15:28

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A