Vba 调用OLEDBConnection。在循环上刷新会阻止连接刷新完成
我正在尝试确定连接刷新何时完成。我正在循环并检查连接是否每5秒刷新一次 只要它继续循环和检查,连接就永远不会脱离刷新状态。即使它会说“xxx Rows Loaded”,但如果脚本停止,它也会立即完成Vba 调用OLEDBConnection。在循环上刷新会阻止连接刷新完成,vba,excel,excel-2016,Vba,Excel,Excel 2016,我正在尝试确定连接刷新何时完成。我正在循环并检查连接是否每5秒刷新一次 只要它继续循环和检查,连接就永远不会脱离刷新状态。即使它会说“xxx Rows Loaded”,但如果脚本停止,它也会立即完成 Private Sub RefreshButton_Click() For Each objConnection In ThisWorkbook.Connections 'Refresh this connection objConnection.Refre
Private Sub RefreshButton_Click()
For Each objConnection In ThisWorkbook.Connections
'Refresh this connection
objConnection.Refresh
Dim endTime As Date
Dim i As Integer
i = 1
Do While objConnection.OLEDBConnection.Refreshing
endTime = DateAdd("s", 5, Now())
Do While Now() < endTime
DoEvents
Loop
i = i + 1
Me.RefreshButton.Caption = "Refreshing..." & i
Loop
Next
MsgBox "Finished refreshing all data connections"
Private子刷新按钮\u Click()
对于此工作簿中的每个对象连接。连接
'刷新此连接
对象连接。刷新
Dim endTime作为日期
作为整数的Dim i
i=1
在objConnection.OLEDBConnection.Refreshing时执行此操作
endTime=DateAdd(“s”,5,Now())
立即执行()
如何像这样循环检查连接是否仍在刷新,而不阻止其完成
编辑:循环运行一段时间后结束,连接在我关闭MsgBox后立即完成刷新,但之前从未完成过,即使我使用'DoEvents'永久循环
在VBA脚本完成执行之前,它似乎不会完成刷新?您是否尝试检查“objConnection.State”以查看它是否正在刷新?@n我是否会检查与“刷新”匹配的字符串?关于这些东西的文档有点零碎,我很难找到它。@n但我在尝试使用objConnection.state时只得到了“Object不支持此属性或方法”。您是否尝试过
objConnection.OLEDBConnection.Refresh
或objConnection.Refresh
?看起来(虽然我不确定)您正在调用不同对象上的刷新方法和刷新属性。可能需要进行一些测试,但每次查询后都会更新刷新日期。无法将其与上一个刷新日期进行比较。您是否尝试检查“objConnection.State”以查看它是否正在刷新?@n我是否会检查与“刷新”匹配的字符串?关于这些东西的文档有点零碎,我很难找到它。@n但我在尝试使用objConnection.state时只得到了“Object不支持此属性或方法”。您是否尝试过objConnection.OLEDBConnection.Refresh
或objConnection.Refresh
?看起来(虽然我不确定)您正在调用不同对象上的刷新方法和刷新属性。可能需要进行一些测试,但每次查询后都会更新刷新日期。可以将其与之前的刷新日期进行比较。