将多个CSV文件导入一张表格-第一行不匹配

时间:2019-05-31 21:03:47

标签: access-vba

在将多个csv文件从一个文件夹导入到Access数据库的1个表中之前,我已经使用以下代码。但是,这次,每个文件的第一行都包含一个帐号,并且列标题位于第2行中。因此,每个文件的第一行都不同,并且此代码在“ DoCmd.TransferText acImportDelim,,strTable,strPathFile, blnHasFieldNames“

如何排除每个文件中的第一行?

我尝试将“ blnHasFieldNames”更改为False,希望代码可以接受第1行中的任何差异,但这行不通。

将strPathFile作为字符串,strFile作为字符串,strPath作为字符串         昏暗的strTable作为字符串,strBrowseMsg作为字符串         将blnHasFieldNames设置为布尔值

    ' Change this next line to True if the first row in EXCEL worksheet
    ' has field names
    blnHasFieldNames = True

    strBrowseMsg = "Table Name"

    strPath = "FilePath"

    If strPath = "" Then
          MsgBox "No folder was selected.", vbOK, "No Selection"
          Exit Sub
    End If

    ' Replace tablename with the real name of the table into which
    ' the data are to be imported
    strTable = "Table Name"

    strFile = Dir(strPath & "\*.csv")
    Do While Len(strFile) > 0
          strPathFile = strPath & "\" & strFile

    DoCmd.TransferText acImportDelim, , strTable, strPathFile, blnHasFieldNames

    ' Uncomment out the next code step if you want to delete the
    ' EXCEL file after it's been imported
    '       Kill strPathFile

          strFile = Dir()
    Loop

我得到的错误是(xxxxxx =我用这个而不是帐户名)

运行时错误“ 2391”: 目的地表“表名称”中不存在字段“ xxxxxxxxx”

1 个答案:

答案 0 :(得分:0)

您将不得不打开文件,删除第一行,保存文件,然后运行导入;或逐行读取文件,跳过第一行,然后逐行追加数据。

在两种情况下,都可以使用FileSystemObject object