• ベストアンサー

Access クロス集計結果の空欄にゼロを入れたい

Accessのクロス集計クエリの実行結果がNullの欄に 0(ゼロ)が入るようにしたいのですが、どうすればよいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • oka123
  • ベストアンサー率31% (69/219)
回答No.3

こんにちわ 再回答です [1]: IIf(IsNull([1]),0,[1]) ですが もしも項目[1]  (クロス集計クエリーで値が1の時での集計値項目) がヌルなら 0 を ヌルでなければそのまま項目[1]を移す という意味です(ご存知かもしれませんが念のため) 最質問の件ですが 別途「更新クエリー」を作成して is null なら 0 にするという更新クエリーを つくることによっても 0にすることができます しかし更新クエリーはテーブルに対してしか 効果がありません クロス集計の結果はクエリーですから それ自体に対しては直接に更新クエリーが 作れないはずです したがって、集計クエリーをインプットにして アウトプツト側へテーブルを指定することで (2ツ目のクエリー、すなわちテーブル作成クエリー) 集計の結果をクエリーでなくてテーブルとして 保存できるので、そのテーブルに対して 更新クエリーを働かせることになります 必要なクエリーとしては3ツです ・クロス集計クエリー(貴君の作成したもの) ・テーブル作成クエリー ・更新クエリー それぞれのクエリー(種類)の指定は フエリー作成のところの 「クエリー」のところで種別指定ができます (デフォルトは選択クエリー)

その他の回答 (2)

  • nishishi
  • ベストアンサー率39% (17/43)
回答No.2

TRANSFORM IIf(IsNull([ID]),0,Count([ID])) AS IDのカウント SELECT テーブル1.フィールド1 FROM テーブル1 GROUP BY テーブル1.ID, テーブル1.フィールド1 PIVOT テーブル1.フィールド2; 私が適当に作ったテーブルのクロス集計クエリです。この方法でいいのでは ないでしょうか、実際のテーブルにあったフィールド名にする必要がありま すが...

  • oka123
  • ベストアンサー率31% (69/219)
回答No.1

こんにちわ いろんな意味で完全ではないのですが 一例としてクロス集計クエリをつくり その結果 列方向に [1] [2] [3] ........ という項目名ができたとします のクエリーの次に新作の選択クエリーをつくり フイールドのところを [1]: IIf(IsNull([1]),0,[1]) というようにすれば 0が入ります 別の方法としてはクロス集計クエリの結果を テーブルとすれば 次の段階で「更新クエリー」を作成して nullを0にできます

noname#2528
質問者

お礼

oka123さん、回答ありがとうございました。 お礼が大変遅くなりまして、誠に申し訳ありません。 初心者のため、なかなか理解できなくて苦労しております。 ひとつお聞きしたいのですが、 「クロス集計クエリの結果をテーブルにする」とは、どのようにするのでしょうか。 よろしくお願いします。

関連するQ&A