2012-02-07 104 views
2

我正在使用Excel 2010.我需要创建一个宏,在特定单元格中输入文本后,将连接的SQL命令文本相应地更改为输入的文本。执行刷新后,必须显示来自数据库的最新信息。在Excel连接中更改SQL命令

我遇到了更改SQL命令文本的问题。下面的代码 - “Set qTable ..”行确切地给了我“运行时错误9下标超出范围”错误。

Dim qTable As QueryTable 
Set qTable = Workbooks("Dynamic_Reports").Sheets("Report").ListObjects(1).QueryTables(1) 
qTable.commandText = commandText 
qTable.Refresh 

“Dynamic_Reports”是Excel文件的名称。 “报告”是工作表的名称,信息必须更新。

我发现上面的错误类似的帖子,但他们都没有谈到QueryTable属性。我期待着你的回答!

回答

2

在对象浏览器中查找一个ListObject有一个QueryTable而不是QueryTables集合所以;

Set qTable = Workbooks("Dynamic_Reports").Sheets("Report").ListObjects(1).QueryTable 
+0

它仍然不起作用。 “运行时错误'9':下标超出范围” – ositra 2012-02-08 08:02:35