我有一些工作代碼循環遍歷一個完整的Excel文件的文件夾,並將每個表導入到Access表中。我所要做的只是在名爲的文件名的表格末尾添加一個名稱爲源Excel文件的字段。訪問VBA:導入多個文件時添加'文件名'字段
我做了一些谷歌搜索,發現此解決方案: How to add file name when importing multiple Excel files to one Access table
我試圖解決方案納入我的代碼,但是當我到達執行語句,我得到:
運行時錯誤'3061'參數太少。預計2.
我認爲問題只是與strSQL
聲明和/或我在最後執行它的方式。
Public Sub Command0_Click()
Dim strFile As String 'Filename
Dim strFileList() As String 'File Array
Dim intFile As Integer 'File Number
Dim filename As String
Dim path As String
Dim qdf As DAO.QueryDef
Set db = CurrentDb()
'make the UPDATE a parameter query ...
strSQL = "UPDATE Test SET FileName=[pFileName] WHERE FileName Is Null OR
FileName='';"
Set qdf = db.CreateQueryDef(vbNullString, strSQL)
path = "C:\Users\u005984\Desktop\Test\"
'Loop through the folder & build file list
strFile = Dir(path & "*.xlsx")
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
For intFile = 1 To UBound(strFileList)
filename = path & strFileList(intFile)
DoCmd.TransferSpreadsheet acImport, 9, "Test", filename, True
'Add filename field
qdf.Parameters("pFileName").Value = strFileList(intFile)
qdf.Execute dbFailOnError
Next intFile
End Sub
我是Access VBA和SQL的新手,無法弄清楚它爲什麼期待2個參數。感謝任何幫助。
關閉我的頭頂,嘗試從結束移除分號strSQL查詢。除此之外,在執行之前,我很想知道'qdf.Parameters.Count'是什麼。 – DHW