有没有办法通过VBA替换Excel中数据连接中的SQL命令文本?
例如,我有一个名为“Accounts”的数据连接,它在命令文本中有一个简单的查询,表明
Select a.*
from Recon a
where a.recon in
('12345','67890')
我在sheet1(单元格A2到单元格A5)中构建了SQL语句,允许用户输入不同的“recon”数字。而不是他们必须将其复制并粘贴到数据连接中的命令文本中。我希望能够有一个宏,将SQL从单元格A2到单元格A5复制并粘贴到数据连接中的命令文本中,然后刷新连接到Table1的数据连接。
答案 0 :(得分:1)
根据连接类型,您可以使用
更改命令文本wb.Connections(1).OLEDBConnection.CommandText = ...
或
wb.Connections(1).ODBCConnection.CommandText = ...
(wb是您正在处理的工作簿)。
但是:请注意SQL注入!
答案 1 :(得分:0)
我最初使用此代码开始,可以在我的一些评论中看到
<% @results['results'].each do |t| %>
<%= t['title'] %>
然后我通过反复试验得出以下内容。我用另一个宏创建了我的SQL字符串文本,然后为我的命令文本调用了该字符串。
Sub RefreshData() ActiveWorkbook.Connections
("Recon") .OLEDBConnection.CommandText = Worksheets("Sheet1").Range("Recon_SQL")
ActiveWorkbook.Connections("Recon").Refresh End Sub