質問: accessで値がnullの場合は計算せずにnullをかえす方法 accessについて、教えてください。 クエリで抽出しているときに、フィールド1とフィールド2の数値を掛け算した値をフィールド3に表示したいと思っています。(小数点1位まで表示) フィールド1とフィールド2は値がnullの場合もありますが、この場合は「0」として扱うのではなく、そのまま計算結果もnullにしたいと思っています。 最初は単純に フィールド3: roundms2(roundms([フィールド1],1)*roundms([フィールド2],1),1) とクエリに表記したのですが、この場合「フィールド1」や「フィールド2」がnullの場合は#errorが表示されました。 次に、ifでフィールド1やフィールド2がnullの場合は計算せずにnullをかえしてもらおうと下記のような文をつくりました。 フィールド3: iif([フィールド1]=null,null,iif([フィールド2]=null,null,roundms2(roundms([フィールド1],1)*roundms([フィールド2],1),1))) これでもやっぱり#errorが表示されます。 いろいろと検索したのですが、nullを0として扱う例は多数見つけられましたがnullのまま扱う例が見つけられませんでした。 勘違いしているところがあるかもしれませんが、アドバイスよろしくお願いいたします。
回答: >値がnullの場合もありますが、この場合は「0」として扱うのではなく、そのまま計算結果もnullにしたい 演算子を使用して式の中の1つのフィールドの値がnullである場合は式全体の結果がnull値になりますのでnullしか返りません。 フィールド3:round(round([フィールド1],1)*round([フィールド2],1),1) で普通に演算できます。nullのフィールドがあるレコードはnullのまま返ります。 >フィールド3: roundms2(roundms・・・この場合「フィールド1」や「フィールド2」がnullの場合は#errorが表示 accessの関数やスカラー関数にもroundms2やroundmsという関数はありません。roundms2などをユーザー定義関数として作成して使用しているのであればpublic functionに記述した定義に誤りがありエラー表示しているのではないでしょうか。nullがあった場合の処理の記述がないとか。