- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在跟踪在另一个网站上找到的代码。这是我的代码的基础知识:
Dim SQL As String
Dim connString As String
connString = "ODBC;DSN=DB01;UID=;PWD=;Database=MyDatabase"
SQL = "Select * from SomeTable"
With Worksheets("Received").QueryTables.Add(Connection:=connString, Destination:=Worksheets("Received").Range("A5"), SQL:=SQL)
.Refresh
End With
End Sub
这样做的问题是,每次他们点击分配给它的按钮时,它都会创建一个新连接,并且似乎永远不会丢失它。我在测试后打开电子表格,在“连接”下列出了许多版本的连接。联系连接1连接2
我似乎也找不到关闭或删除连接的方法。如果我在“.Refresh”之后添加“.delete”,则会收到 1004 错误。由于后台正在刷新数据,无法执行此操作。
有什么想法如何关闭或删除连接吗?
最佳答案
您可能会问自己为什么每次都在代码中创建 QueryTable。这样做是有原因的,但通常没有必要。
查询表是更典型的设计时对象。也就是说,您创建一次 QueryTable(通过代码或 UI),然后刷新 QueryTable 以获取更新的数据。
如果您需要更改底层 SQL 语句,您有一些选择。您可以设置提示输入值或从单元格获取值的参数。更改 SQL 的另一个选项是在现有 QueryTable 的代码中更改它。
Sheet1.QueryTables(1).CommandText = "Select * FROM ...."
Sheet1.QueryTables(1).Refresh
您可以通过更改 CommandText 选择不同的列甚至不同的表。如果是不同的数据库,您将需要一个新的连接,但这种情况很少见。
我知道这并不能直接回答您的问题,但我认为确定您是否真的需要每次都添加 QueryTable 是第一步。
有关参数的更多信息,请参阅 http://dailydoseofexcel.com/archives/2004/12/13/parameters-in-excel-external-data-queries/这是 2003 年的版本,因此与后续版本很少有不一致之处。基础知识是相同的,只是如果您使用的是 2007 或更高版本,您可能需要了解 ListObject 对象。
关于vba - 使用 VBA 在 Excel 2010 中查询表 (QueryTables) 使用 VBA 创建许多连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926441/
我当前的代码: ConnectionName = "testCon" With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://t
我只打开了这一个工作簿(当时没有打开其他工作簿),并注意到列出了一堆数据连接。经过进一步调查,它表明这些连接没有“在此工作簿中使用”(再次,奇怪的是我只打开了这个工作簿,所以如果这里没有使用连接,它们
下午好, 我正在寻找一种处理 QueryTable 错误的方法。我查看了有关 google 和 stackoverflow 的其他问题,但它们似乎没有回答我要问的具体问题。 基本上,有没有办法确定处理
我正在从 Google 财经导入多个 csv 文件并将数据保存到一个工作表中。每当 URL 无效时,我希望它转到一个错误处理程序,它基本上说“找不到此信息”,然后继续返回以从网络上获取下一个 csv
我正在使用 VBA 开发 MS Excel 2013 工具,其中涉及 QueryTables 的使用。 访问 Excel 工作表中的现有查询表是一个不便之处。目前,我能找到的访问查询表的唯一方法是通过
我一直在放QueryTables结果 ActiveSheet ,但现在我想把它们放在另一张纸上。在下面的代码中,注释掉的行是我最初的,下面的“with”行是我的新尝试。 Dim QuerySheet
尝试导入 csv 文件时,我在 VBA (1004) 中遇到非常奇怪的错误。 这是我的代码: With ActiveSheet.QueryTables.Add(Connection:= _ "
Sub Macro1() Dim URL As String Dim Path As String Dim i As Integer For i = 2 To 50 If Range("Prices!
历史上,Excel 中的外部数据查询用 QueryTables 表示。 ListObjects 出现在某个时候,但它们还不兼容 QueryTable 并且不能包含它们。 在 Office 2007 中
有什么方法可以调整 QueryTables 行号的起始编号吗?我已设置 QueryTable.RowNumbers = True,但这从 0 开始计数。我想从 1 开始。 最佳答案 将 RowNumb
如标题所述:我发现单击功能区上的“全部刷新”按钮不会触发 QueryTable 的 BeforeRefresh 事件。为什么会这样?有没有办法改变这种行为? 奇怪的是,同一个QueryTable的Af
我编写了一个 visual basic 宏来将 csv 文件加载到我经常使用的 Excel 中。 不幸的是,如果 csv 文件包含带引号的换行符,则结果与直接用 excel 打开 csv 文件得到的结
我正在尝试自动执行此报告,并编写了 VBA 来执行各种任务,然后我在“RunAll”子程序中按顺序调用每个任务。我的工作簿中的数据透视表的选项卡中有来自 Access 查询的数据。 我发现当我运行这个
我正在使用 VBA 开发 Excel (2010+) 应用程序,但遇到了查询完成执行后不会调用 AfterRefresh 事件函数的问题。 我还没有找到很多像样的资源或文档来了解如何在类模块中触发此事
我正在 Excel for Mac 2016 中运行 QueryTable,目标范围为“data_value”,电子表格中单元格 A1 的名称为“hs”,QueryTable 在提取数据后将名称“Ex
使用 VBA,我正在尝试创建一个 Excel 查询表以提供来自文本文件的数据子集。我想使用 Jet OLEDB 连接字符串作为查询表 Connection .为什么会失败? 这是程序。 Sub Ole
我无法导入 csv 文件。第一行工作正常,但其余的都是靠不住的。这是 csv 中第一行和第二行的示例: "Order # ","Purchased From (Store)","Purchased O
我正在尝试编写一个自定义标记,它将以特殊方式遍历 cfquery 对象。我找到了这个页面:http://www.zrinity.com/developers/mx/undocumentation/qu
我正在跟踪在另一个网站上找到的代码。这是我的代码的基础知识: Dim SQL As String Dim connString As String connString = "ODBC;DSN=DB0
编辑:发现新错误? 我可能刚刚发现为什么我的脚本不再工作了。最近有一个 Office 更新,似乎他们已经实现了 microsoft 查询,它摆脱了我根据需要安装和配置的 ODBC 管理器。现在实际的问
我是一名优秀的程序员,十分优秀!