我有将 csv 文件导入 Access 表的代码。有几个问题或想法超出了我的技能水平。第一个问题是文件不附加现有字段,而是插入整个文件,创建包含新标题的副本。
第二个问题是我只想从 Access 中导出 csv 文件中的新记录或更新记录,而不是整个表,我还没有到那里。
我需要一只小手牵着这里。
谢谢大家,这个论坛,你们是最棒的。总是乐于助人并渴望分享您的知识。
Option Compare Database
Option Explicit
Private Sub ImportFile()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim xlApp As Object, xlWb As Object, xlWs As Object
Dim lngRow As Long, lngLastRow As Long
Dim rst As DAO.Recordset
strPath = "C:\Transit\"
strTable = "Transit"
strFile = Dir(strPath & "*.csv")
Set rst = CurrentDb.OpenRecordset(strTable)
Do While Len(strFile) > 0
strPathFile = strPath & strFile
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(strPathFile)
Set xlWs = xlWb.Worksheets(1)
lngLastRow = xlWs.UsedRange.Rows.Count
For lngRow = 1 To lngLastRow
rst.AddNew
rst("Field1") = xlWs.Range("A" & lngRow).Value
rst("Field2") = xlWs.Range("B" & lngRow).Value
rst("Field3") = xlWs.Range("C" & lngRow).Value
rst("Field4") = xlWs.Range("D" & lngRow).Value
rst("Field5") = xlWs.Range("E" & lngRow).Value
rst("Field6") = xlWs.Range("F" & lngRow).Value
rst("Field7") = xlWs.Range("G" & lngRow).Value
rst.Update
Next
xlApp.Quit
Set xlApp = Nothing
Set xlWb = Nothing
Set xlWs = Nothing
strFile = Dir()
Loop
rst.Close
Set rst = Nothing
End Sub