Импорт нескольких CSV-файлов в 1 таблицу - первая строка не совпадает - PullRequest
1 голос
/ 01 июня 2019

Ранее я использовал приведенный ниже код для импорта нескольких CSV-файлов из одной папки в 1 таблицу в базе данных Access.Однако на этот раз первая строка каждого файла содержит номер учетной записи, а заголовки столбцов находятся в строке 2. Таким образом, первая строка каждого файла отличается, и этот код завершается ошибкой в ​​«DoCmd.TransferText acImportDelim,, strTable, strPathFile,blnHasFieldNames "

Как исключить первую строку в каждом из файлов?

Я попытался изменить" blnHasFieldNames "на False в надежде, что код примет любые различия в строке 1, но это не сработало.

Dim strPathFile As String, strFile As String, strPath As String Dim strTable As String, strBrowseMsg As String Dim blnHasFieldNames As Boolean

    ' 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 голосов
/ 01 июня 2019

Вам нужно будет либо открыть файл, удалить первую строку, сохранить файл и запустить импорт; или прочитайте файл построчно, пропустив первую строку, и добавьте данные построчно.

В обоих случаях можно использовать объект FileSystemObject .

...