• ベストアンサー

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

いつもお世話になっております WindowsXP Access2002  MSDEを使用しております。 ある固定長テキストファイルのインポートを行おうと 以下のコードを実行したところ、正しくデータが 抽出できませんでした。 DoCmd.TransferText acImportDelim, "", "インポート", "R:\test.txt" テキストファイルを確認したところ、文字列の中に ダッシュ(―)、及び シングルクオテーション(’) が全角で入っている場合にそれを半角として 判断しているようで、その文字列フィールド末尾に 次のフィールドの値が抽出されてしまうようです。 上記記号文字が混入されていないレコードは正しく 取り込まれます。 ちなみにschema.iniの型定義は Col4=テスト Char Width 80 としておりますが、Textに変更しても 同現象が発生します。 定義に誤りがあるのでしょうか、 もしくは当該処理を代用するような機能が ございましたらご教授いただければ幸いです。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.1

>もしくは当該処理を代用するような機能が ございましたらご教授いただければ幸いです。 解析はしませんでしたが、固定長textの桁ずれはよく 経験します。 私は、excelで固定長インポートをして、そのexcelを accessにインポートで逃げています。 ユーザーに提供するアプリには使えないかも知れませんが。

o_w_nakazaki
質問者

お礼

早々のご回答ありがとうございます。 とりあえずADOを使用した取り込むロジックは完成しており 速度の向上のためTransferTextで取り込めないか 試した次第です。 ご提示いただいた方法は別の機会で有用かもしれませんので活用させていただきます。 ありがとうございました。

その他の回答 (1)

  • NorthMole
  • ベストアンサー率24% (20/82)
回答No.2

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

o_w_nakazaki
質問者

お礼

ご回答ありがとうございます。 acImportFixedで試したのですが、現象は同じでした。 少々あきらめ気味です。 現在、ADOでInsertSQL文をExecuteして 速度が向上しないか試しているところです。 TransferTextが一番早いような気はするのですが、、 もう少し調査してみたいと思います。 ありがとうございました