【发布时间】:2011-08-24 00:00:48
【问题描述】:
从外部来源选择数据
我有一个数据连接,它使用 SQL 服务器中的 select 查询将数据检索到使用 vba 代码的 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 子程序而不诉诸sleep hack。
附注有时查询很快( 30 秒),具体取决于我选择的确切数据,这是动态的。
【问题讨论】:
标签: sql-server excel remote-connections vba