- ベストアンサー
アクセスデータ取り込み時の注意点とは?
- アクセスデータをUTF-8のテキスト形式で取り込む際に、NULLを含むレコードの処理に注意が必要です。
- データのフィールド数がレコードごとに異なる場合、取り込む際にデータの一部が欠落する可能性があります。
- 文字コードやフィールドのデータ型を指定する際に、フィールド数の不足に注意が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
UTF-8 で間違いはないのでしょうかね。 以下思いついたことです。 1・BOMの有無で読み込みが変わらないか。 2・Shift-JIS に変換してしまったら・・。 3・ADODB.Stream で読み込んだら。 http://d.hatena.ne.jp/replication/20091117/1258418243 4・Excelに一旦読み込ませたらどうなるか。 5・テキストファイルをそのままデータベースとして開いたら。 http://home.att.ne.jp/zeta/gen/excel/c04p47.htm そちらのAccessのバージョンが不明なので "Provider=Microsoft.Jet.OLEDB.4.0;" & は "Provider = "Microsoft.ACE.OLEDB.12.0;" かも知れない。 X・もしかしてファイルが壊れてる? そのファイルの製作元にShift-jis で出力できないか頼んでみる。 以上、ご参考まで。
その他の回答 (1)
データ取り込み手順が不明なので回答できません。 とくに取り込みデータの形式がわかると回答ができると思います。 通常どこかの行の最終列に値があれば問題がないと思います。
補足
取り込み手順についてご説明いたします。 テキストデータ47フィールド(NULL含む) 1_アクセスのソフトを空のデータベースから立ち上げます。 2_外部データ→テキストファイル→ファイル名指定→OK 3_テキストインポートウィザード→設定→コードページをUTF8に指定→データ型をすべてテキスト型に指定 この時47フィールドあるのにインポート定義のフィールド名は42しかありません。 4_主キーを設定せずにその他はいじらず次へ→完了 この手順方法でなぜが47フィールドにデータが存在するのに 46フィールドまで取り込めています。 なにか分かりましたらアドバイスください。 よろしくお願いします。
お礼
アドバイスありがとうございます。 今回のテストした文字コードUTF8のテキストデータは ADODB.Streamを使用して入出力したデータのみ でした。 他の言語で入出力したデータに関しては 問題なく取り込めました。 とりあえず原因が分かっただけでも参考になりました。 BOMの有無で色々と検証してみます。 因みに文字コードに関しては ハングル文字を含んだUTF8形式のテキストになりますので Shift-jis戻すと、ハングル文字もしくは外字が 文字化けしてしまいます。 ですのでUTF8形式で、色々と原因を洗い出していきます。 どうもありがとうございました。