我有一个目前正在工作的odbc查询表,但我需要通过单元格D18中的值定义从数据库选择的字段。Excel VBA查询表属性
下面的代码应该替换查询表属性中的命令文本,但它不起作用。 debug表示“下标超出范围”。如果我在即时窗口中调试并运行文本,然后在SQL中运行此结果文本行,它将返回正确的值,因此sql语句是正确的。我有什么错在VBA语法
Sub Accrual()
Text = "SELECT "
Text = Text & "BALANCE.CDTLED_" & Range("D11").Value - 1 & " "
Text = Text & "FROM x3sov.SOVEX.BALANCE BALANCE "
Text = Text & "WHERE (BALANCE.ACC_0='2109') AND (BALANCE.FCY_0='S01')"
Sheets("Control").QueryTables(1).CommandText = Text
End Sub
大加赞赏
您是否将QueryTable范围转换为ListObject又名Excel表? – 2014-10-31 20:38:35
没有。我用Data->从其他来源 - > MS查询并返回数据作为表。然后我删除标题,以便将值显示在单个单元格中。但它仍然是一张表格,我可以右击并刷新 – jfly62 2014-10-31 20:44:47
因此,您可能需要编辑“连接”对象的“CommandText”。 – 2014-10-31 20:47:00