我試圖用這個報告進行交流,並寫了VBA執行各種任務,然後我在「RunAll」子目錄中依次調用它們。我的數據從Access查詢到我的工作簿中的數據透視表中的選項卡。QueryTable.Refresh導致不完整的OLE操作;如何完成?
我發現,當我運行此:
Sub QueryTableRefresh()
ActiveWorkbook.Sheets("data").Activate
Range("A2").Activate
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub
它創建與Access的incompelte OLE操作,這會導致訪問的只讀實例,當我運行下面的打開(「TableRefresh」是與刪除功能,並追加查詢):
Public Sub RefreshAccessTables()
Dim acApp As Object
Dim db As Object
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase ("P:\Reports\Daily Origination Volume\Daily Origination Volume.accdb")
Set db = acApp
acApp.Run "TableRefresh"
acApp.Quit
Set acApp = Nothing
End Sub
只讀實例防止刪除和追加查詢的書寫動作。這並不是這兩者在我的RunAll中運行的順序,但是工作流將需要RunAll在進行更新時再次運行,這會導致衝突。
我已經運行從Excel多次訪問功能背靠背並沒有問題,直到我運行的QueryTable刷新。 Refreshall導致相同的問題。
如何在Excel中只更新我的查詢表,沒有離開這個OLE動作不完整?