• ベストアンサー

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

  • Access2000 テキストデータのインポート

    質問させていただきます。 テキストデータ(カンマ切り、項目A,項目Bともにテキスト型)をインポートしたのですが、項目Aはたとえば、1または2バイト目がスペースのデータ、スペースなしのデータなど混在しています。テキストデータの通りにインポートしたいのですが、Accessに取り込むとスペースのないデータ(すべて左詰)になってしまいます。 どうすればテキストデータ通りにインポートできるでしょうか?

  • アクセス:インポートできないデータ

    色々な型のデータが入ったエクセルデータをアクセスにインポートした時に出るエラーに関してです。 数値と文字列が含まれているためにアクセスのデータ型を”テキスト型”(フィールドサイズ255 書式@)にしております。しかしインポートすると文字列のデータがはじかれます。 アクセス側をテキスト型に設定すればどんなデータが来ても受け入れ可能だと思っていました。 数値、文字列両方のデータがインポートできる設定を教えてください。

  • ACCESS TAB区切りのテキストのインポート

    お世話になります。 ACCESS TAB区切りのテキストファイルのインポートができません。 タブ区切りのテキストファイルを 外部データ⇒テキストファイル‥‥と進めばインポートできるのですが DoCmd.TransferText acImportDelim, , "カテゴリ", "D:\okwave\テキスト\カテゴリ.txt", True では 実行時エラー '2391' 貼り付け先の'カテゴリ'には'カテゴリコードカテゴリー名親カテゴリ成分フラグ階層'フィールドがありません となります。 このテキストファイルを以下のようにカンマ区切りにするとインポートされます。 ------------------------------------------------------ カテゴリコード,カテゴリー名,親カテゴリ,成分フラグ,階層 01,化粧品,01,0,0 ----------------------------------------------------- インポートしたテーブル DoCmd.TransferText acExportDelim, , "カテゴリ", "D:\okwave\テキスト\カテゴリ.txt", True でエキスポートすると次のように変化しています。 -------------------------------------------------- "カテゴリコード","カテゴリー名","親カテゴリ","成分フラグ","階層" "01","化粧品","01",0,0 --------------------------------------------------------------- PCは Windows7,Access2010 です。 よろしくお願いいたします。

  • エクセルデータのインポート(アクセスへ)

    エクセルで作成したデータをアクセスに取り込む際、エクセルではレコード数が540なのに、アクセスでは557となってしまいました。 原因は、エクセル上で空白のデータも、インポートされてしまっているようです。エクセル上で空白の部分は、データがないものとしてインポートさせないようにするにはどうすればよいでしょうか。

  • 【Excel2000】Access2000からのデータインポートについて

    Access2000のデータをExcel2000にインポートしたいのですが、 条件を付けてインポートする方法についてお教えください。 (Access2000のクエリデータ) 依頼No(順不同):内容 3:aaaaa 5:bbbbb 1:ccccc (Excel2000のデータ) 依頼No:内容(空白) 1: 2: 3: 4:  5: ※スペースが使用できませんので区切りは:とさせて頂いております。 ExcelデータとAccessデータをマッチングさせ Excelデータの依頼Noに対応するAccessデータの内容を Accessデータから取ってくるというようなイメージです。 外部データの取り込み-新しいデータベースクエリから行おうとしましたが どのように条件を指定して良いのかわかりません。 VBAでないとできないのでしょうか。 お分かりになられる方、ぜひお教えくださいませ。 よろしくお願い致します。

  • アクセスへのデータインポートが上手くいきません。。。

     アクセスへのデータインポートで知恵をおかし下さい! <現象>エクセルからアクセスへデータインポートをしようとしたところ、エクセルで【01】のものがインポートすると【1】になってしまいます。 エクセル上での【01】の表示形式は、分類:ユーザー定義、種類:00、になっております。 文字列に変えようとすると、してみましたが、【1】になってしまいます。。。。  どのように、したら、【01】としてインポートできるのでしょうか。教えて下さい。

  • アクセスにデータをインポートする時に困っています、

    アクセス2003にデータをインポートするとき、 テキストファイル→エクセル→アクセスで行いたいのですが、 テキストファイルがコンマやタブで区切られていない為、 インポートした時、1つのセルに全ての値が入力されてしまいます。 テキストファイルをタブやコンマ区切りにする以外に、 アクセスにうまく取り込む方法はあるでしょうか。 教えてください!!

  • ACCESSデータベースのインポート 

    ACCESSデータベースでインポートしたいデータ(拡張子がlog)があるのですが、そのままだと文字列が区切られていなくテーブルに入らないので、毎回 しょうがなく事前に置換ツール等を使ってカンマ区切りにしてからインポートしています。 モジュールなどを使って、インポートする前のデータをテーブルに入れやすい 形(カンマ区切りのtxtファイルぐらいしか思いつかないのですが。。。)に置換・変換っていうのはできるんでしょうか??教えて下さい。。

  • Accessにインポートしたら並び順が変わっちゃった

    Access2000 を使っています。 ExcelデータをAccessテーブルにしようとしましたが、全項目をテキスト型で入れたいのに、自動的に各項目の型が変わってしまうので、一旦CSVに落としてAccessにインポートしました。 ところが、インポートされたテーブルではレコード順が違っちゃっているんです。 総数は変わっていませんから、全て入ってはいるんでしょうが。 いったい何がいけないんでしょうか。多量のデータをインポートするのに不安でいけません。誰か教えて下さい。

  • アクセスにテキストデータをインポートする場合

    はじめまして、 アクセス2000で作成した顧客TBへテキストデータを インポートして利用したいと思います。 電話項目をテキスト型で作成していますが このTBにインポートすると 電話番号の先頭の0が消えてしまいます。 テキストデータの時は0が必ずついているのですが 解決方法はありますでしょうか?

専門家に質問してみよう