• ベストアンサー

ACCESSでCSVファイルをインポートすると最初の列が1桁になってしまう

ACCESS2002でCSVファイルをインポートしたところ、 7桁あるはずの最初の列が1桁になってしまいます。 具体的には下記のとおりです。 不足する情報があればおっしゃってください。 <<CSVファイル>> "社員番号","○○○","○○○",・・・・・ "6002343","nnnnn","nnnnn",・・・・・ <<インポート後>> 社員番号|○○○|○○○|・・・・・ 6    |nnnnn |nnnnn|・・・・・ なお、"は文字列の区切り文字としています。 試しに"を文字列の区切り文字としないでインポートしたところ、 |"社員番号"|"○○○"|"○○○"|・・・・・ |"6002343" |"nnnnn"|"nnnnn"|・・・・・ となりました。 excelで出来るように置換で"を消せればそれでもokです。 ご回答をお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

この点、良く質問に出ます。他に良い方法が無ければ、また下記のようなことに興味があればご参考に。 (例 CSVデータ)メモ帳で "111","sdf","223","gfh","2345" "223","dfg","4566","hjkk","534" "0023","dwwfg","456","hjkk","134" "0003","dddfg","566","hkk","3234" (アクセスのモジュール) Sub test01() Dim d(100) Dim dbs As Database Dim rst As Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("data2") rst.MoveFirst '-------- Dim a Open "a14.csv" For Input As #1 While Not EOF(1) Line Input #1, a st = 1 i = 1 p01: p = InStr(st, a, ",") If p = 0 Then w = Mid(a, st, Len(a) - st) d(i) = Mid(w, 2, Len(w) - 2) ' MsgBox d(i) GoTo p02 Else w = Mid(a, st, p - st) d(i) = Mid(w, 2, Len(w) - 2) ' MsgBox d(i) st = p + 1 i = i + 1 End If GoTo p01 p02: '------------mdb更新 rst.AddNew rst![あ] = d(1) rst![い] = d(2) rst![う] = d(3) rst![え] = d(4) '------ rst.Update rst.MoveNext '------------ Wend Close #1 rst.Close End Sub (結果)テーブル ID あ う い え 14 111 223 sdf gfh 15 223 4566 dfg hjkk 16 0023 456 dwwfg hjkk 17 0003 566 dddfg hkk

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

#2のmshr1962です。 >エクセルだとファイルが大きすぎて開けません。 ワードパッドでは開けますか?これなら置換できると思いますが... あと、インポートの時に左下の設定でフィールドの形式を選択できます。 そのときに長整数に設定しても駄目でしょうか?

nabe1216
質問者

補足

ワードパットで開けましたが置換をかけるとハングしちゃいます。 15分待っても止まったままだったので多分ダメなのかな? pen4/2.4GH、メモリ1GBです。 MIFES(エディタ)で開いて"を置換で消して読ませたところ読めました! けど、全ての列をテキストで読みたいのに、長整数系などに変わってしまいます。 これをチクチクとテキストに直すのは骨が折れます。 一括で列定義をテキストにする方法をご存じないでしょうか??

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

上記のCSVファイルをエクセルで開いて保存すれば、""は自動で消去されます。 逆に数字だけで且つ先頭に0が必要なものは、0が消えてしまうので注意が必要です。

nabe1216
質問者

補足

ご返答ありがとうございます。 質問に入れていませんでしたが、エクセルだとファイルが大きすぎて開けません。 せっかく回答頂いたのに申し訳ありません。

noname#8027
noname#8027
回答No.1

試してみましたが、再現できません。私の環境では問題なく取り込みました。 1行中のコンマの数は同一になっていますか? 6番以降の行も全て同じ現象ですか?

nabe1216
質問者

補足

そうですか。こちらでは再現性100%で参ってます。 ちなみにレコード数は5000行。一レコードは2000byteくらいあると思います。 なお、コンマの数は同一で、6番以降のレコードも全て同一の状態となっています。