2014-01-28 129 views
0

這是我想用Excel/Access 2007做的事情。我在Access中有一個表。我正在嘗試創建一個臨時表來存儲存儲在字符串strSQL_Insert中的查詢結果。但是,當我嘗試執行DoCmd.RunSQL時,運行時錯誤爲'424'。 「所需對象」。我試圖執行查詢本身,並獲得結果到Excel中,似乎工作正常。這是我有什麼在Excel/VBA中執行Currentdb.execute的問題

Sub GetDataADO() 

Dim dbConnection As Object 
Dim dbRecordSet As Object 
Dim strSQL As String 
Dim dbFileName As String 
Dim DestinationSheet As Worksheet 
Dim strTable As String 
Dim strSQL_Insert As String 

strTable = "tblTempTest" 

Set dbConnection = CreateObject("ADODB.Connection") 
Set dbRecordSet = CreateObject("ADODB.Recordset") 

dbFileName = "H:\Unscan.accdb" 

dbConnection.Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=" _ 
& dbFileName & ";Persist Security Info=False;" 

Set DestinationSheet = Worksheets("Sheet2") 

With dbConnection 
    .Open 
End With 

strSQL_Insert = "INSERT INTO tblTempTest " _ 
& "SELECT TOP 10 BranchNumber , COUNT(*) as Total FROM BUDetails " _ 
& "GROUP BY BranchNumber ORDER BY 2 DESC ;" 

CurrentDb.Execute strSQL_Insert 

dbRecordSet.Close 
dbConnection.Close 

Set dbRecordSet = Nothing 
Set dbConnection = Nothing 
Set DestinationSheet = Nothing 


Exit Sub 

End Sub 

任何幫助將不勝感激。

+0

歡迎來到Stack Overflow!請務必閱讀選擇標籤時彈出的有用說明。 – Charles

回答

0

如果您在Excel中運行此,CurrentDb可能不會被實例化。嘗試用dbConnection替換CurrentDB,看看這是否會產生任何結果。