関連テーブルから特定のフィールドの合計を返すサブクエリがフィールドの 1 つに含まれている Access のクエリがあります。サブクエリの結果は、メイン クエリの以降の計算で使用されます。
これは、ADO.Net を使用する VB.Net (C# で十分です) の自家製レポート アプリケーションで使用されます。クエリは Access のテーブルに保存されるため、アプリケーションを再度公開することなく、小さなバグを修正したり、データに関連する一時的な機能を追加したりできます。
問題は、サブクエリが結果を返さない (null) 可能性があることです。さらに、計算で使用される null 値も null 値を返します。したがって、必要に応じて null 値を 0 に置き換える必要があります。を追加しましNZ(subquery, 0)
たが、ADO.Net は次の例外をスローします。
Undefined function 'NZ' in expression
VBA 関数は Access.Application オブジェクトの一部であるため、ADO.Net では使用できないことを知りました。
の使用も検討しIIF(subquery Is Null, 0, subquery)
ましたが、それではサブクエリを複製する必要があり、Access でサブクエリを 2 回(おそらく)実行する必要があります。サブクエリはかなり複雑なので (そしてメイン クエリもそうです)、パフォーマンスではないにしても、少なくとも読みやすさのために、それを避けたいと思います。
null 値を別の値に置き換える、または一致するレコードがなくてもサブクエリが常に null 以外の合計を返すようにする別の方法はありますか?