Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 导入文件夹中的所有文件_Ms Access_Vba_Ms Access 2010 - Fatal编程技术网

Ms access 导入文件夹中的所有文件

Ms access 导入文件夹中的所有文件,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我需要导入超过100个CSV文件到一个新的访问表 我正在与代码斗争,老实说,任何帮助都是感激的。这就是我到目前为止所做的: Option Compare Database Dim sql Dim rs Const strPath As String = "C:\Folder\" 'Directory Path sql = "Select * from FileNames" Set rs = CurrentDb.OpenRecordset(sql) rs.MoveFirst Do Un

我需要导入超过100个CSV文件到一个新的访问表

我正在与代码斗争,老实说,任何帮助都是感激的。这就是我到目前为止所做的:

Option Compare Database

Dim sql
Dim rs

Const strPath As String = "C:\Folder\" 'Directory Path

sql = "Select * from FileNames"

Set rs = CurrentDb.OpenRecordset(sql)

rs.MoveFirst

Do Until rs.EOF

'docmd.TransferText rs("fileName")
DoCmd.TransferText acImportDelimi, , "FileNames", strPath, True

rs.MoveNext

Loop
我已经有一个表,其中包含文件路径和文件名。格式如下:

C:\Folder\File17-08-01.csv


循环遍历文件名记录集,并使用方法导入每个文件

将TableName更改为应导入文件的表的名称

Public Sub ImportFiles()
    On Error GoTo ErrorTrap

    Const strPath As String = "C:\Folder\"

    Dim rs As DAO.Recordset
    Set rs = CurrentDb().OpenRecordset("SELECT * FROM FileNames", dbOpenSnapshot)
    With rs
        If .EOF Then GoTo Leave
        .MoveLast
        .MoveFirst
    End With

    Dim idx As Long
    For idx = 1 To rs.RecordCount
        DoCmd.TransferText TransferType:=acImportDelim, _
                           TableName:="YourTableName", _
                           FileName:=strPath & rs![FileName], _
                           HasFieldNames:=True
        rs.MoveNext
    Next idx

Leave:
    On Error Resume Next
        rs.Close
    Set rs = Nothing
    On Error GoTo 0
    Exit Sub

ErrorTrap:
    MsgBox Err.Description, vbCritical
    Resume Leave
End Sub

您没有从记录集将文件名构造到strPath中,因此不会导入任何内容。你也没有声明你的变量是什么,Minty所说的,加上acImportDelimi最后不应该有i。另外,您的代码似乎没有包装在子文件中,并且缺少显式选项,您应该使用该选项。您的代码做什么?它断了吗?哪里您会收到什么错误消息?