- ベストアンサー
access2003 「#エラー」を文字列にしたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 もとのテーブルのフィールドが文字型 ですから、厳密に言えば数値型に 変換したのではなく、フィールドの文字列が 数値として認識できるかでIsNUmeric関数を 使い、TrueならばCLng関数で変換して フィールドに表示、そうでなければ 文字列の「未設定」をフィールドに 表示しますから、フィールドは文字型の フィールドになります。同じフィールドに 違う型が混在することはできないので、 Accessが自動的に文字型と判断します。 もし、数値型のようにするならば、未設定 ではなく、数値のたとえば、「9999999」 のような数値をひょうじするようにすれば 数値型のようになります。 SELECT IIf(IsNumeric([テーブル1]![フィールド1]),CLng([テーブル1]![フィールド1]),99999) AS 数値型に変換 FROM テーブル1; のように。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
回答No.3
SELECT IIf(IsNumeric([フィールド1]),CLng([フィールド1]),Null) AS 数値型に変換 FROM テーブル1 これで、「#エラー」は表示されなくなります。 「未設定」 と表示したければ フィールドプロパティ の 「書式」 を 「0;0;0;"未設定"」 とすれば良いでしょう。 ただし、1番下の新しいレコードの行も "未設定" になる副作用があります。
質問者
お礼
ありがとうございます。できました。
- piroin654
- ベストアンサー率75% (692/917)
回答No.1
SELECT IIf(IsNumeric([テーブル1]![フィールド1]),CLng([テーブル1]![フィールド1]),"未設定") AS 数値型に変換 FROM テーブル1;
質問者
お礼
ありがとうございます。できました。
お礼
ありがとうございます。できました。