- ベストアンサー
アクセス エラーを数値「0」に変換するには
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> IIFなどを使うのでしょうか? そうですね。 IsNumeric関数で数値かどうかを判定し、数値ならCLng関数で変換、 それ以外は0、とすることになるかと思います。 SELECT IIf(IsNumeric([テーブル1].[フィールド1]),CLng([テーブル1].[フィールド1]),0) AS 数値に変換 FROM テーブル1; なお、IIF関数では、第1引数の結果がTrue/Falseのいずれであっても 第2引数・第3引数は一旦演算されます。 そのため、以下のような式にした場合は、結局エラーとなります。 (フィールド1が「あ」の場合、第3引数の式CLng(~)がエラーとなるため、 式全体の結果もエラーを返す、と) SELECT IIf(IsError(CLng([テーブル1].[フィールド1])),0,CLng([テーブル1].[フィールド1])) AS 数値に変換 FROM テーブル1;
お礼
後のほうはよくわかりませんが上のSQL文でうまくいきました!ご回答ありがとうございます。