我想在基於訪問文件的Excel中運行查詢。我想要通過宏來做這件事的原因是不同文件的次數,我不得不這樣做。我試圖使用Inputbox來識別我想要使用的數據庫的名稱,但我不能得到它的工作,因爲我經常得到關於不匹配的錯誤。請幫忙嗎?這是我到目前爲止做出,如何使用InputBox的查詢結果作爲查詢的目錄?
Sub Macro1()
Dim myValue As Variant
Set myValue = Application.InputBox("Please type in the exact name of the source database")
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array(_
"ODBC;DSN=MS Access Database;DBQ=ThisWorkbook.Path & " \ " & myValue.accdb;DefaultDir=ThisWorkbook.Path;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
)), Destination:=Range("$B$3")).QueryTable
.CommandText = Array(_
"TRANSFORM Sum(Daily.RT_RENTAL_COUNT) AS SumOfRT_RENTAL_COUNT" & Chr(13) & "" & Chr(10) & "SELECT Daily.[Full CN_CR_PARENT_NAME]" & Chr(13) & "" & Chr(10) & "FROM Daily" & Chr(13) & "" & Chr(10) & "GROUP BY Daily.[Full CN_CR_PARENT_NAME]" & Chr(13) & "" & Chr(10) & "PIVOT Daily.RT_CKOT_LOC_ID;" & Chr(13) & "" & Chr(10) & "" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_MS_Access_Database"
.Refresh BackgroundQuery:=False
End With
End Sub
感謝您的回覆!我試過,但我得到一個不匹配的錯誤'13' – nmihel 2015-02-10 12:39:11