我在Excel中遇到问题,我使用SQL导入数据然后编辑其中一些数据然而我遇到的问题是VB代码在SQL数据加载到Excel之前继续运行,导致很多数据中的错误。
这是我导入数据的代码
sqlstring1 = "SELECT [compnumber],[mapcode],[amount],[reportd],[reportm],[reporty] FROM [Mergent].[dbo].[Annual]" & _
"WHERE Compnumber = '" & Sheets("list").Cells(i, 1).Value & "';"
connstring = _
"ODBC;Driver=SQL Server;Server=ANDY-PC\SQLEXPRESS;UID=Andy;Trusted_Connection=Yes;Database=Mergent"
With Sheets("data").QueryTables.Add(Connection:=connstring, Destination:=Sheets("data").Range("a1"), Sql:=sqlstring1)
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery = False
End With
我需要以某种方式让VBA等到它加载。代码循环遍历数千个不同大小的SQL查询,因此可以进行简单的等待10秒'并不是很好,并且会增加大量时间来运行代码。
有没有办法让VBA等到查询完成?
答案 0 :(得分:0)
您正在后台运行查询。尝试编译代码。
.Refresh BackgroundQuery = False
您有一个未定义的变量BackgroundQuery
。
他们使用命名参数的方法是使用:=
而不是=
尝试
.Refresh BackgroundQuery := False