gpt4 book ai didi

excel - 强制vba等待sql查询执行后再继续

转载 作者:行者123 更新时间:2023-12-02 08:59:39 25 4
gpt4 key购买 nike

这似乎是一个相当常见的问题,但我找到的解决方案似乎都不起作用。

我正在从 SQL Server 获取一些数据并将其复制到工作表中。然后我想从新数据中复制一个范围并用它做其他事情。所有这些都发生在一个 vba 函数中。

我的问题是,当函数从 Excel 运行时,它会移动到函数的第二部分,而不等待查询返回所需的数据。

当然,当我从 vba IDE 运行该函数时,该函数工作正常。

Dim a As New ADODB.Connection
Dim r As New ADODB.Recordset

a.Open (connStr)
Set r = a.Execute(sqlstr)

sht.Range("A2").CopyFromRecordset r

'please wait here until the proc has executed?

checkData = sht.Range("A2").Value

当我从 Excel 运行该函数时,checkData 始终为空,当我使用 F5 运行该函数时,它始终具有所需的数据。

最佳答案

尝试使用:

Application.CalculateUntilAsyncQueriesDone

执行 SQL 之后、复制 RecordSet 之前

Set r = a.Execute(sqlstr)
Application.CalculateUntilAsyncQueriesDone
sht.Range("A2").CopyFromRecordset r

关于excel - 强制vba等待sql查询执行后再继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453592/

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