首页 > 解决方案 > 通过后台查询刷新多个 ODBC 连接

问题描述

我正在使用一组脚本,这些脚本通过 ODBC 从 iSeries 中提取大量不同的数据。

ActiveWorksheets.RefreshAll不起作用,因为它没有足够的时间来运行后台查询

我尝试了以下方法,但无济于事

Dim qry As Connections
'Set qry =

For Each qry In ActiveWorksheets.Connections
    qry.BackgroundQuery = False
    qry.RefreshAll
    DoEvents
Next qry

这给了我预期的Error 424对象。我不希望在Set qry =这里使用,因为我需要运行 30 个不同的连接

让我们暂时称它们为 connection1、connection2 等,因为它们的名字到处都是

是在数据导入之前停止后台查询、刷新、激活后台查询的最简单选项,还是有更好的方法?

我已经查看了所有内容-但找不到有关多个 ODBC 连接的信息

编辑:

Dim qry As WorkbookConnection

For Each qry In ActiveWorkbook.Connections
    qry.Refresh
    DoEvents
Next qry

标签: excelvbaibm-midrange

解决方案


我相信你的

Dim qry As Connections

应该读

Dim qry As WorkbookConnection

ActiveWorksheets.Connections .Item 属性返回WorkbookConnection类型的对象。如果您尝试一次刷新一个连接,如您的For Each语句所示,则该对象表示具有类似方法的单个连接,Refresh而不是所有连接的集合。


推荐阅读