• ベストアンサー

Accessでタブ区切りのテキストをインポートすると、71項目目以降のデータがインポートされない

WindowsXP Access2000 いつもお世話になります。 どう対処してよいかわからなくなってしまったので質問 させてください。 社内システムから、ダウンロードしてきた、 テキストデータ(1登録あたり106項目、タブ区切りで保存、 登録データの切れ目は改行)があります。 エクセルに貼り付けてみると、↓のような見た目になります。 ■=データ有りの意味  A┃B┃C┃D・・┃・┃・┃BS┃BT┃BU┃BV┃・┃・┃DB 1■┃■┃■┃■・・┃■┃■┃■┃・┃・┃・┃・┃・┃・ 2■┃■┃■┃■・・┃■┃■┃■┃・┃・┃・┃・┃・┃・ 3■┃■┃■┃■・・┃■┃■┃■┃・┃・┃・┃・┃・┃・ ・■┃■┃■┃■・・┃・┃・┃■┃・┃■┃■┃■┃・┃■ ・■┃■┃■┃■・・┃・┃・┃■┃・┃■┃■┃■┃・┃■ ・■┃■┃■┃■・・┃・┃・┃■┃・┃■┃■┃■┃・┃■ ※BTの列は全て空白です。 それを、アクセスに取り込み、管理しようとしています。 登録数は特に決まっていません。 また、106項目は全て埋まっているわけではなく 空白の項目も多々あります。 インポート用のテーブルを用意し、インポートすると 何のエラーもなくインポートが完了するのですが、 なぜかBSの列までのデータは取り込むものの、 BT以降のデータは空白になります。 今回、200件弱のテスト用データで試したところ、 全てのデータにおいて、BT以降のデータが 空白になりました。 インポートできるデータには「○項目めまで」という 決まりがあるのでしょうか?

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

  • ベストアンサー
noname#96418
noname#96418
回答No.1

回答がつかないようですので、たぶん見当違いでしょうが、コメントさせてもらいます。 Excel上で「※BTの列は全て空白です。」というのが気になりますね。 1行目のデータが70項目目の後ろで改行されている、ということはないのでしょうか。 そんなことはないのなら、データの先頭行はフィールド名ではないように見えますので、先頭に仮のフィールド名(例えば、a、b、c、・・・)のデータを1件分106項目、空白なしで加えて、インポートされてみてはいかがでしょうか。それでもだめでしたら、ごめんなさい。

misa0928
質問者

お礼

回答ありがとうございます。 おっしゃる通り、1行目の70項目目の後ろに改行がありました! 1行目の項目数が足りないと、このような現象が起こるのですね。 システムからダウンロードしたデータなので、てっきり全ての データの項目数は同じで、空白になっているだけかと思っていました。 106項目めまで入力されているデータを先頭にもってきたところ、 うまくインポートしてくれました。 ただ、ダウンロードしてきたデータに手を加えたりというのは したくない(業務上、誤ってデータを上書きしてしまったり等の リスクがあります)ので、データのダウンロードの仕方を 考えてみようと思います。 ありがとうございました。

その他の回答 (2)

  • tossy005
  • ベストアンサー率38% (7/18)
回答No.3

インポートしているタブ区切りのCSVファイルをメモ帳か何かで開いてみましょう。 開いたら、分かりやすいようにタブを他の文字(例えばカンマなど)に置換して、1行目をよーく見てみましょう。 1行目の項目数が足りないのではないでしょうか。 おそらくEXCELでタブ区切りのテキスト形式で保存をかけたのだと思いますが、EXCELはデータがないとそこで行が終わりだと判断し、 次の行の作成に入り、作りたい項目数に必要な数の区切り文字を入れてくれません。 ACCESSのCSVファイルのインポート機能は最初の列で項目数が決まります。 よって最初の1行目の項目数が違うため、以降のデータも同じ項目数で区切られているのだと思います。 これを防ぐためには、EXCELの段階でデータがない箇所にスペースを入れてから保存し、保存したデータをメモ帳で開きスペースを""に置換すると良いと思います。

misa0928
質問者

お礼

回答ありがとうございます。 おっしゃる通り、1データ目の項目数が足りませんでした。 しかし、社内システムから、もともとテキスト形式で吐き出される データのため、教えていただいた方法が実行できません。 エクセルに貼り付けると・・・の部分は、視覚的に伝えたほうが わかりやすかと思い記載しましたが、実際にはエクセルは使用 しません。 誤解を与えてしまい、すみませんでした。 原因がわかりましたので、これから対策を考えたいと思います。 ありがとうございました。

noname#96418
noname#96418
回答No.2

#1の最後に書きましたインポートは、既存のテーブルへだけでなく、新規テーブルへも行ってみられたらどうでしょう。(無駄でしたら、すみません。)

misa0928
質問者

補足

下にお礼を書き込みました。 新規テーブルの場合も、うまくインポートしてくれませんでした。 1データ目の項目数に依存しているみたいです。

関連するQ&A