アプリ版:「スタンプのみでお礼する」機能のリリースについて

ACCESS2003でCSVファイルのインポートを行うVBAをご教授下さい。

ただし、CSVファイルは各項目がダブルコーテーションではさまれており、カンマはありません。
1行目にヘッダーがあります。


DoCmd.TransferText acImportDelim, , FileName, ImportPath, True

これだと、うまくインポートされませんでした。

大変困っております。
どうぞよろしくお願い致します。

A 回答 (5件)

エクセルでファイルを開くを利用して開くとテキストファイルウィザードが実行されると思います。

そのときに「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し次に進みます。

次に区切り文字の選択ができますので、スペースにチェックし、その他にダブルクォーテーションを指定しチェック、文字列の引用符をなしにするとデータのみが取り出せますので、それでcsvとかエクセルファイルとして保存してアクセスでインポートしてください。

この回答への補足

kmetuさん

返信が遅くなり大変申し訳ございません。
ご回答ありがとうございます。


ご教授頂きました方法で、うまく項目毎に区切られインポートすることが出来ました!

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

補足日時:2013/09/30 08:36
    • good
    • 1

#4さんの回答への反応が無いのが不思議ですが・・。



その謎のファイルをメモ帳で開き
Ctrl + A で全選択
Ctrl + C でコピー
新規Excelファイルを開き
適当な(何処でも可)ところで
Ctrl + V で貼り付け

で項目ごとに分割された状態になるのなら
カンマ区切りではなく、Tab区切りのデータです。(多分)
Access2003なら、メニューの
ファイル → 外部データの取り込み → インポート
からウィザードに従って進んで行ってみてください。

私の憶測が合っていなかったら読み捨ててください。
(結果だけは伝えて欲しいです)
今回限りの処理なら上記ウィザードで進めてゆけば良いでしょうし
頻繁にあるのなら
インポートファイル名は常に同じ?
インポートファイルのフォーマットは常に同じ?
インポート先のテーブル名は常に同じ?
その場合上書き?追加?
・・・
などがわかればVBAで処理できるかも?です。

この回答への補足

nicotinismさん

回答が遅くなり、大変申し訳ございませんでした。
ご回答して頂き、ありがとうございます。

Ctrl + A で全選択後Ctrl + C でコピー
新規Excelファイルを開き、適当な(何処でも可)ところでCtrl + V で貼り付け

でやってみましたが、項目毎に区切られずデータ自体何も変わりませんでした。
本当にやっかいなファイルです。

補足日時:2013/09/30 08:42
    • good
    • 0

そういう変態チックなテキストファイルはどこから出てきたものなんでしょうか・・・


CSV 形式に直してからインポートするほうがよいかと思います。

質問者の言うとおり、各項目がダブルクォーテーションで囲まれていて、区切り文字が全くないのであれば、
"○○○""○○○""○○○""○○○""○○○""○○○"
となっているのでしょうから、「""」 を 「","」 に置換してみてはどうでしょうか。
置換機能はメモ帳にもあります。

この回答への補足

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

Excelでは、どういう理由なのか全ての「""」に対して「,」へ置換をすることが出来ませんでした。

Excelでそのファイルを開きますと、
"○○○""○○○""○○○""○○○""○○○""○○○"
という形で表示されますが、これをテキストで開きますと、
"○○○"  "○○○" "○○○""○○○"    "○○○" "○○○"
というようにダブルコーテーションの間に不規則にスペースが入っております。

これが原因で置換が出来なかったのかもしれません…。

他に何か良い方法がございましたら、ご教授頂けますと大変助かります。
よろしくお願い致します。

補足日時:2013/09/20 15:55
    • good
    • 0

カンマが入っていないファイルをCSV(Comma-Separated Values)とは呼ばない。


根本的に考え直しが必要です。

なお、「うまくいきません」は情報量0であることを認識してください。
最低でも「どうなるつもりだったか」「どうなったか」の2点は無いと、回答者は何から何まで推測してあげないといけなくなり、的外れな結果になる危険性が大きくなります。

この回答への補足

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

ご指摘の通り、カンマがないファイルはCSVファイルではないですね。
もっと現状を詳しく記載すべきでした。
大変失礼致しました。

【実現させたいこと】
ダブルコーテーションで囲まれたデータが、Accessのテーブルの一つのセル(と呼ぶのでしょうか)へ格納させたいです。
但し、ダブルコーテーションは削除したいです。

【実行結果】
DoCmd.TransferText acImportDelim, , FileName, ImportPath, True
を実行した結果、100項目ある中1項目しか正常にインポートされませんでした。
「インポートエラー」テーブルが作成され、「エラー」項目に「解析不能なレコード」と書かれております。

実現方法をご教授頂けると大変助かります。
よろしくお願い致します。

補足日時:2013/09/20 16:11
    • good
    • 0

馬鹿でも最初に



カンマを入れてからインポート

をする事を思いつくと思うのだが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!