我在驱动器C:上的一个主文件夹中的多个文件夹中有多个csv文件。有些文件每天都会更新。如果文件有更新,我需要将新的每日数据加载到包含文件名的访问表中。到目前为止,该脚本导入了所有csv文件中的所有数据。然后,它将文件名添加到新记录中。我需要将文件名添加到所有记录中。
非常感谢任何帮助。
脚本:
Sub Import_multiple_csv_files()
Const strPath As String = "C:\text1\" 'Directory Path
Dim strFile As String 'Filename
Dim strFileList() As String 'File Array
Dim intFile As Integer 'File Number
Dim rs As DAO.Recordset
'Loop through the folder & build file list
strFile = Dir(strPath & "*.csv")
While strFile <> ""
'add files to the list
intFile = intFile + 1
ReDim Preserve strFileList(1 To intFile)
strFileList(intFile) = strFile
strFile = Dir()
Wend
'see if any files were found
If intFile = 0 Then
MsgBox "No files found"
Exit Sub
End If
'cycle through the list of files & import to Access
'creating a new table called MyTable
For intFile = 1 To UBound(strFileList)
DoCmd.TransferText acImportDelimi, , _
"Test", strPath & strFileList(intFile)
‘add file name to record
Set rs = CurrentDb.OpenRecordset("Test")
rs.AddNew
rs.Fields("Com").Value = Dir(strPath & "*")
rs.Update
rs.Close
Set rs = Nothing
Next
MsgBox UBound(strFileList) & " Files were Imported"
End Sub
答案 0 :(得分:2)
我不是100%确定问题是什么,但是如果您尝试更新刚刚导入的记录中的文件名,则可以使用简单的更新语句:
UPDATE Test SET Com='MyFileName' WHERE Com IS NULL OR Com=''
这里我假设该字段将为null或空字符串,但如果这不正确,您可以用自己的标准替换它。您可以使用DoCmd.RunSQL执行此操作。
如果我误解了这个问题,那么请更新你的问题以使其更清楚。