プロが教えるわが家の防犯対策術!

Access 2000 のテーブルをテキスト ファイルにエクスポートする際、フィールドに十進型のデータ型が含まれていると『引数が無効です』という既知のバグが発生します。
これを回避する為に、クエリーで、CDbl、CSng、CIntなどの関数を使用してエクスポートを行ったところ、上記現象は回避できたのですが、今度は『NULLの使い方が不正です』のエラーが発生してしまいました。
対象となる数値型フィールドに格納されているデータがNULLであることが原因のようです。
現在開発環境にて試していますが、本番環境においても、必須項目でなければ、数値型フィールドにNULLが格納されている可能性は十分考えらます。
また本番環境では現象回避のためにデータリペアすることもできません。
何か回避策があれば是非教えてください。
また、不明点などがありましたら、ご指摘ください。
宜しくお願いします。

A 回答 (2件)

クエリーのデザインで



フィールド名: IIf(IsNull([元フィールド名]),0,CDbl([元フィールド名]))
などとするとNullが0になります。

同様に

フィールド名: IIf(IsNull([元フィールド名]),"",CStr([元フィールド名]))

などとして文字列形式でエクスポートが出来ます。

これで問題がある場合は他の方法を考えますが!
    • good
    • 0
この回答へのお礼

ありがとうございます。
ACCESSのクエリーデザインで上記の、
フィールド名: IIf(IsNull([元フィールド名]),0,CDbl([元フィールド名]))
を試してみました。
早速実行したところ、「パラメータの入力」ダイアログボックスが出てくるなどの問題があった為、その件で再度質問させて頂こうと思ったのですが、何度か試しているうちに、なぜか(!?)うまくいきました。
関数の設定方法などを間違えていたのかな?と思っていますが、とりあえずlaputartさんから教えて頂いた方法で作業を進めていこうと思います。
また何かあったら質問させていただくかも知れませんが、その時は宜しくお願い致します。
ありがとうございました!

お礼日時:2004/08/25 16:10

NZ()で、nullを0にした上で、型変換してみては。

この回答への補足

ご回答ありがとうございます。
すいません。少し補足させていただきます。
今回、本番環境のデータバックアップのため、CSV形式でエクスポートしようとしています。
ですので、nullのデータを0に変換するなど、本番と異なるデータをバックアップするわけにはいきません。
ちなみに2年程前にACCESS97を使って、同様の処理を行っていたようですが、その時は特に問題なかったようなのです。(もしかしたら何か回避策があったのかもしれませんが。)

補足日時:2004/08/25 14:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!