ACCESS VBA でのCSV取込エラー
ACCESSにてフォルダ内にあるCSVファイルをすべてインポートしようとしています。
インポート定義を作成して、下記のコードを書いてみましたが、
データはすべてインポートされるのですが、
カンマが無視され、フィールドとフィールドの中間で途切れてデータが格納されてしまいます。
またフィールド4は日付形式なのですがこれがインポートエラーになります。
フィールド1 フィールド2 フィールド3 フィールド4
aaa aa,bbb bbb,ccc エラー
2日間ほどネットサーフィンをして調べたのですが、
回避方法が見つからなかったので、お知恵を拝借できますでしょうか?
よろしくお願いいたします。
Private Sub cmd06_Click()
Dim MyFile As String
Dim MyName As String
Dim strFolderName As String
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q09_全CSVデータ削除"
DoCmd.SetWarnings True
strFolderName = GetFolderName() 'フォルダ選択ダイアログを表示
If Len(strFolderName) > 0 Then '選択結果を評価
MyFile = strFolderName & "\*.csv" '【拡張子csvのファイルのみ取得】
MyName = Dir(MyFile, vbNormal)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If GetAttr(strFolderName & "\" & MyName) <> vbDirectory Then
DoCmd.TransferText acImportFixed, "インポート定義", "T03_全CSVデータ", strFolderName & "\" & MyName, False, "" '【取得したファイルをインポート】
End If
End If
MyName = Dir
Loop
Else
MsgBox "フォルダは選択されませんでした"
End If
MsgBox "データのインポートが終了しました"
End Sub
No.2ベストアンサー
- 回答日時:
> DoCmd.TransferText acImportFixed, "インポート定義", "T03_全CSVデータ", strFolderName & "\" & MyName, False, "" '【取得したファイルをインポート】
CSVファイルなら、acImportFixed ではなく、
acImportDelim でしょうね。
場合によっては インポート定義も見直したほうが良いかもしれません。
No.1
- 回答日時:
途中でエラーがおきたとすると考える問題は少なくとも2つ。
エラーになるレコードの扱い
残っているインポートしてないファイルの扱い
エラーになるのは期待した形でないので今のインポートの仕掛けはたぶん使えない。別の方法にします。TRANSFARTEXTを使用せずにインポート、を探す。。
エラーが起きたかわかれば次のファイルへ処理進めたら残りはなんとかなります。
ファイルは特定できているし
後は
OPEN
DOWHILE
LINE INPUT
LOOP
CLOSE
等使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sql*loader 数値のロード
-
作成したレコードセットのCSV出...
-
SQLサーバーにcsv.ファイル...
-
MySQL Date型にNULLが設定でき...
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
PL/SQLをWindowsのBATファイル...
-
あるDBから別のDBのテーブルをs...
-
DBファイルの中身を直接見れな...
-
同じSQL文で極端に検索が遅くな...
-
イラストレーターでヒラギノの...
-
mySQLのデータベースにhtmlのコ...
-
mysqlにおけるホストのパーセン...
-
create databaseがうまくいきま...
-
sqlplus で テキストファイルに...
-
ODBC登録の権限について
-
phpmyAdminでmySQLのdumpデータ...
-
XOOPSのインストールがうまく行...
-
MySQLではカーソルを使うことが...
-
サーバーに接続できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sql*loader 数値のロード
-
作成したレコードセットのCSV出...
-
MySQLで連続csvファイルを読み...
-
MySQL Date型にNULLが設定でき...
-
CSVを1行しかインポートしない...
-
sqlite3でcsvのインポートがで...
-
SQLサーバーにcsv.ファイル...
-
MySQLのLOAD文を使ってCSV...
-
BAT処理でCSVデータのインポート
-
MySQLにEXCELやCSVなどでの一括...
-
insertを用いてテーブルにレコ...
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
あるDBから別のDBのテーブルをs...
-
PL/SQLをWindowsのBATファイル...
-
同じSQL文で極端に検索が遅くな...
-
DBファイルの中身を直接見れな...
-
mySQLのデータベースにhtmlのコ...
-
SQLServerのselect文でデータ数...
-
mysqlにおけるホストのパーセン...
おすすめ情報