ODBC火鸟VBA Excel慢速

我在VBA Excel中编写了一个接口和后端,它通过Firebird ODBC驱动程序与Firebird数据库交互。 我有数据库在本地运行,速度不是问题。 我最近将它移植到一台服务器上,我可以通过VPN访问它。 问题是非常缓慢。

当然,我的代码效率不高,所以我简化了它。 这个查询返回1600行,在6列。 总运行时间是5秒。 是否应该花费这么长的时间来查询并随后粘贴到电子表格中?

mytimer = Timer Dim conn2 As ADODB.Connection Dim box As Variant Set rst2 = New ADODB.Recordset Set conn2 = New ADODB.Connection conn2.Open "SOSA" sql_string = "SELECT * FROM MACHINES" rst2.Open sql_string, conn2, adOpenDynamic, adLockOptimistic box = rst2.GetRows box = Application.Transpose(box) Dim NumRows As Long Dim NumCols As Long NumRows = UBound(box, 1) - LBound(box, 1) + 1 NumCols = UBound(box, 2) - LBound(box, 2) + 1 Range("A2").Resize(NumRows, NumCols).value = box conn2.Close MsgBox ((Timer - mytimer)) 

一个侧面的问题,我也有一些代码,将工作表中的所有单元格和插入到表中,我循环遍历每一行,并生成一个SQL插入,并执行它,然后下一行。 不用说,这是痛苦的缓慢。 有没有更好的办法 ?