我正在使用VBA向Excel 2007工作簿添加ListObject。 ListObject的後面有一個QueryTable,鏈接到Access數據庫。代碼如下所示:Excel Querytable刷新僅適用於一次
Dim l As ListObject
Dim c As ADODB.Connection
Dim r As ADODB.Recordset
Set c = New ADODB.Connection
c.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myAccessDatabasePath;Persist Security Info=False;"
Set r = New ADODB.Recordset
r.Open "Select * From myTable", c
Set l = ActiveSheet.ListObjects.Add(xlSrcQuery, r, True, xlYes, Range("A1"))
l.QueryTable.Refresh False
'this line causes an error
l.QueryTable.Refresh False
本質上問題是我無法多次刷新表格。數據和表格設計功能區上的刷新按鈕呈灰色。我嘗試過使用類似的代碼而不使用Listobjects(即僅僅是QueryTables)並得到相同的問題。我已經嘗試刷新底層連接對象,並再次獲得相同的問題。
我花了整個早上谷歌搜索無濟於事。
這是一個錯誤,設計的行爲或(我很可能)在做一些愚蠢的事情嗎?
提前許多感謝,
史蒂夫
由於第一次刷新尚未完成。 – user2140261 2013-05-09 13:24:22
謝謝,但我試過。即使我通過Excel刪除了刷新和刷新,我也可以看到數據到達工作表(僅十幾行)。但是,再次刷新的選項灰顯。即使我關閉並重新打開它,該選項仍然顯示爲灰色。我認爲連接對象發生了一些事情 - 但我無法弄清楚什麼。 – steveo40 2013-05-09 13:31:31
除此之外,刷新方法後的'false'參數應該阻止事物在後臺刷新(我認爲)。所以如果我的理解是正確的,代碼應該等到它完成之後再開始下一行。不過謝謝。 – steveo40 2013-05-09 13:32:59