Доступ к добавлению имени файла при импорте нескольких TXT в последний столбец с помощью VBA - PullRequest
2 голосов
/ 13 июля 2020

В настоящее время у меня есть макрос, который импортирует все файлы в папке, используя спецификацию доступа. Я хочу добавить столбец в конце таблицы Access с именем каждого импортированного файла .txt. Пока это мой код. Как мне это сделать?

Sub cmdImport_Click()
    Dim strPath As String
    Dim strFile As String
    Dim strTable As String
    Dim strSpecification As String
    Dim intImportType As AcTextTransferType
    Dim blnHasFieldNames As Boolean

    strTable = "Reconstrucción"
    strSpecification = "Reconstruir"
    blnHasFieldNames = False
    intImportType = acImportDelim

    ' Permite al usuario elegir una carpeta
    With Application.FileDialog(4)
        If .Show Then
            strPath = .SelectedItems(1)
        Else
            MsgBox "No seleccionó una carpeta", vbExclamation
            Exit Sub
        End If
    End With
    If Right(strPath, 1) <> "\" Then
        strPath = strPath & "\"
    End If

    DoCmd.OpenForm "frmMessage"
    Forms!frmMessage.Repaint

    ' Loop a través de los archivos de texto
    strFile = Dir(strPath & "*.txt")
    Do While strFile <> ""
        ' Importa los archivos de texto de la carpeta
        DoCmd.TransferText _
            TransferType:=acImportFixed, _
            SpecificationName:=strSpecification, _
            TableName:=strTable, _
            FileName:=strPath & strFile, _
            HasFieldNames:=blnHasFieldNames
        strFile = Dir
    Loop

    DoCmd.Close acForm, "frmMessage"
End Sub

1 Ответ

0 голосов
/ 13 июля 2020

Просто создайте поле с именем FileName в таблице «Reconstrucción» и добавьте код belw в последнюю строку l oop:

docmd.runsql "UPDATE " & strTable & " SET FileName = '" & strFile & "' WHERE strFile ISNULL;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...