我使用来自Teradata的连接将查询(Query1)加载到Excel中。通常,当我想要更新查询时,我必须右键单击它并选择编辑。
进入Power Query Editor后,我可以打开Source并在其中编辑SQL脚本以更新查询。
问题是如何使用VBA编辑此SQL脚本?
在尝试使用宏记录器时,我只能使用
ActiveWorkbook.Connections("Query - Query1").OLEDBConnection.Refresh
尝试编辑CommandText也失败。以下是查询的属性。
2条答案
按热度按时间9jyewag01#
首先,我们使用以下公式获得查询的公式:
我们需要这样做的原因是因为公式字符串包含了一些关于我们的数据库连接的额外信息,而不仅仅是一个sql查询本身。它可能看起来像这样:
为了更新查询,我们将
ThisWorkbook.Queries.Item("Query1").Formula
设置为新的公式字符串。在VBA中处理双引号时也要小心。下面是我使用的脚本:xdnvmnnf2#
首先,将
ActiveWorkbook
替换为ThisWorkbook
,因为您的意思是使用 * 那个 * 特定的工作簿(托管VBA代码的工作簿),而不是 * 任何当前处于活动状态的工作簿 *。.Refresh
是要修改的OLEDB连接的 * 方法 *:你已经有了一个连接的引用,你想修改这个连接的命令文本--你所需要的就是调用一个方法而不是.Refresh
,比如 try 输入那个点,看看这个对象能提供什么。您可以通过
CommandText
属性获取OLEDBConnection
对象的 * 命令文本 *-尝试在 * 中间窗格 *(Ctrl+G)中键入以下内容,看看是否会得到相同的输出:只需将该属性 * 赋值 *: