gpt4 book ai didi

sql-server - ActiveWorkbook.Connections ("x").Refresh 完成时执行的代码

转载 作者:行者123 更新时间:2023-12-04 06:26:37 25 4
gpt4 key购买 nike

从外部源中选择数据
我有一个使用 select 检索数据的数据连接使用 vba 代码从 SQL 服务器查询到 Excel 工作表,如下所示:

With ActiveWorkbook.Connections("x"). _
OLEDBConnection
.BackgroundQuery = True
.CommandText = Array( _
"SELECT ... FROM ...
...
ActiveWorkbook.Connections("x").Refresh

与导入数据的链接数据透视表也需要刷新
但是据我所知 ActiveWorkbook.Connections("x").Refresh运行异步,我想执行刷新完成后运行的代码,以便我可以运行此代码:
Private Sub UpdatePivot()
Dim PV As PivotItem

For Each PV In ActiveSheet.PivotTables("PT1").PivotFields("PN").PivotItems
If PV.Name <> "(blank)" Then
PV.Visible = True
Else
PV.Visible = False
End If
Next
End Sub

但仅当在 中读取数据时
我如何知道刷新完成获取所有数据的时间?
我需要做什么才能只运行 UpdatePivot刷新完成后 sub 不诉诸 sleep黑客。

附言有时查询很快(<1 秒),有时很慢(> 30 秒),具体取决于我选择的确切数据,这是动态的。

最佳答案

这不是一个绝妙的解决方案,但您可以制作 ActiveWorkbook.Connections("x").Refresh通过设置同步运行

.BackgroundQuery = False

另一个更复杂的解决方案是通过检查 .Refreshing 来轮询连接的状态。循环构造内的属性。

关于sql-server - ActiveWorkbook.Connections ("x").Refresh 完成时执行的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com