こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access:固定長文字列ファイルのインポートが正しく行われない

いつもお世話になっております

WindowsXP
Access2002 
MSDEを使用しております。

ある固定長テキストファイルのインポートを行おうと
以下のコードを実行したところ、正しくデータが
抽出できませんでした。

DoCmd.TransferText acImportDelim, "", "インポート", "R:\test.txt"


テキストファイルを確認したところ、文字列の中に
ダッシュ(―)、及び
シングルクオテーション(’)
が全角で入っている場合にそれを半角として
判断しているようで、その文字列フィールド末尾に
次のフィールドの値が抽出されてしまうようです。
上記記号文字が混入されていないレコードは正しく
取り込まれます。

ちなみにschema.iniの型定義は
Col4=テスト Char Width 80
としておりますが、Textに変更しても
同現象が発生します。


定義に誤りがあるのでしょうか、
もしくは当該処理を代用するような機能が
ございましたらご教授いただければ幸いです。

何卒よろしくお願いいたします。

投稿日時 - 2005-02-17 11:43:38

QNo.1222884

すぐに回答ほしいです

質問者が選んだベストアンサー

>もしくは当該処理を代用するような機能が
ございましたらご教授いただければ幸いです。

解析はしませんでしたが、固定長textの桁ずれはよく
経験します。
私は、excelで固定長インポートをして、そのexcelを
accessにインポートで逃げています。

ユーザーに提供するアプリには使えないかも知れませんが。

投稿日時 - 2005-02-17 12:11:06

お礼

早々のご回答ありがとうございます。

とりあえずADOを使用した取り込むロジックは完成しており
速度の向上のためTransferTextで取り込めないか
試した次第です。

ご提示いただいた方法は別の機会で有用かもしれませんので活用させていただきます。

ありがとうございました。

投稿日時 - 2005-02-17 14:31:28

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

質問に対する回答がずれているかもしれませんが、
1.acImportFixedではいけませんか?
2.第2変数(specificationname)に関して、定義をして、TransferTextコールしてみたらどうでしょうか?

投稿日時 - 2005-02-17 12:35:01

お礼

ご回答ありがとうございます。

acImportFixedで試したのですが、現象は同じでした。
少々あきらめ気味です。

現在、ADOでInsertSQL文をExecuteして
速度が向上しないか試しているところです。

TransferTextが一番早いような気はするのですが、、

もう少し調査してみたいと思います。
ありがとうございました

投稿日時 - 2005-02-17 14:34:24

あなたにオススメの質問