- ベストアンサー
ACCESS2000でNULLの使い方が不正です
Access 2000 のテーブルをテキスト ファイルにエクスポートする際、フィールドに十進型のデータ型が含まれていると『引数が無効です』という既知のバグが発生します。 これを回避する為に、クエリーで、CDbl、CSng、CIntなどの関数を使用してエクスポートを行ったところ、上記現象は回避できたのですが、今度は『NULLの使い方が不正です』のエラーが発生してしまいました。 対象となる数値型フィールドに格納されているデータがNULLであることが原因のようです。 現在開発環境にて試していますが、本番環境においても、必須項目でなければ、数値型フィールドにNULLが格納されている可能性は十分考えらます。 また本番環境では現象回避のためにデータリペアすることもできません。 何か回避策があれば是非教えてください。 また、不明点などがありましたら、ご指摘ください。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クエリーのデザインで フィールド名: IIf(IsNull([元フィールド名]),0,CDbl([元フィールド名])) などとするとNullが0になります。 同様に フィールド名: IIf(IsNull([元フィールド名]),"",CStr([元フィールド名])) などとして文字列形式でエクスポートが出来ます。 これで問題がある場合は他の方法を考えますが!
その他の回答 (1)
- palmmy
- ベストアンサー率38% (841/2169)
NZ()で、nullを0にした上で、型変換してみては。
補足
ご回答ありがとうございます。 すいません。少し補足させていただきます。 今回、本番環境のデータバックアップのため、CSV形式でエクスポートしようとしています。 ですので、nullのデータを0に変換するなど、本番と異なるデータをバックアップするわけにはいきません。 ちなみに2年程前にACCESS97を使って、同様の処理を行っていたようですが、その時は特に問題なかったようなのです。(もしかしたら何か回避策があったのかもしれませんが。)
お礼
ありがとうございます。 ACCESSのクエリーデザインで上記の、 フィールド名: IIf(IsNull([元フィールド名]),0,CDbl([元フィールド名])) を試してみました。 早速実行したところ、「パラメータの入力」ダイアログボックスが出てくるなどの問題があった為、その件で再度質問させて頂こうと思ったのですが、何度か試しているうちに、なぜか(!?)うまくいきました。 関数の設定方法などを間違えていたのかな?と思っていますが、とりあえずlaputartさんから教えて頂いた方法で作業を進めていこうと思います。 また何かあったら質問させていただくかも知れませんが、その時は宜しくお願い致します。 ありがとうございました!