VBA を使用して Excel 2007 ワークブックに ListObject を追加しています。ListObject の背後には、Access データベースにリンクする 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 のみ) を使用せずに同様のコードを試しましたが、同じ問題が発生しました。基になる接続オブジェクトを更新しようとしましたが、同じ問題が発生しました。
私は午前中ずっとグーグルを無駄に過ごしました。
これはバグですか、設計された動作ですか、それとも (ほとんどの場合) 愚かなことをしていますか?
よろしくお願いします。
スティーブ