4

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 のみ) を使用せずに同様のコードを試しましたが、同じ問題が発生しました。基になる接続オブジェクトを更新しようとしましたが、同じ問題が発生しました。

私は午前中ずっとグーグルを無駄に過ごしました。

これはバグですか、設計された動作ですか、それとも (ほとんどの場合) 愚かなことをしていますか?

よろしくお願いします。

スティーブ

4

2 に答える 2