指定フォルダの全てのファイルを一括でインポートする
Private Sub test_Click()
'指定フォルダ内のファイル名一覧を配列に格納する方法
'ファイル取得変数
Dim strFile() As String '動的配列宣言
Dim strPath As String 'フォルダのフルパス
Dim strType As String 'ファイルタイプ
Dim tmpName As String 'ファイル名
Dim i As Long 'カウンタ
Dim j As Long '行カウンタ
'ADO接続変数
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim TextLine
Dim Seq
'ADO接続セット
Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "T_TEMP_売上", cnn, adOpenKeyset, adLockOptimistic 'TEMPファイル
'---------------------------------------------------------------------------
'①前回取り込んだデータを削除
'T_TEMP_売上
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
'ファイル名取得開始
strPath = "C:\Users\admin\Desktop\20121210\"
'拡張子【csv】を指定
strType = "*.csv"
'1件取得
tmpName = Dir(strPath & strType)
i = 0
'行初期値指定
j = 1
If tmpName = "" Then
MsgBox "ファイルが見つかりませんでした~"
End If
'Loop 開始
Do While tmpName <> ""
'配列の上限再設定
ReDim Preserve strFile(i)
strFile(i) = tmpName
i = i + 1
MsgBox i & "件目, " & strPath + tmpName
''''''''''''''''''''''''''''''''''''''''''''''''''
'csvファイルインポート開始
''''''''''''''''''''''''''''''''''''''''''''''''''
Open strPath + tmpName For Input As #1
'T_TEMP_売上に書き込み
Do While Not EOF(1)
Line Input #1, TextLine
Seq = Split(TextLine, ",")
If j <> 1 Then '見出しは除外
rs.AddNew
rs!番号 = Val(Seq(0))
rs!名称 = Seq(1)
rs!価格 = Val(Seq(2))
rs!数量 = Val(Seq(3))
rs.Update
End If
'jを加算
j = j + 1
Loop
Close #1
''''''''''''''''''''''''''''''''''''''''''''''''''
'csvファイルインポート終了
''''''''''''''''''''''''''''''''''''''''''''''''''
'jをリセット
j = 1
' 次のファイル名取得
tmpName = Dir
Loop
'ADO切断
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing