クロス集計クエリで集計値がNullとなるのを0にする

f:id:accs2014:20180527235214p:plain:right:w500

 簡単なクロス集計クエリの例です。
 このような設定で「金額」列(数値型)の合計を表示しようとしますが…


f:id:accs2014:20180527235211p:plain:right:w400

 該当する値が存在しないところでは値が0ではなくNullとなります。
 このようなときにNullではなく0とする方法についてです。


f:id:accs2014:20180528012056p:plain:right:w500

 デザインビューに戻って、単純に「金額」を「Nz([金額],0)」などとしたくなりますがそれではエラーとなります。
 そこでフィールド欄の式を次のようにし、さらに集計欄で「演算」を選択します(ここが重要)。

金額の合計: CLng(Nz(Sum([金額]),0))

 CLng関数で囲んでいるのはNz関数までだと戻り値が文字列になるためですが、ここをどの関数にするかは適宜選択してください。


f:id:accs2014:20180527235204p:plain:right:w400

 Nullだった箇所が無事に0となりました。