我需要从 Access 获取数据到 excel vba,我使用 ADODB。我的问题是,虽然数据库相对较小,查询结果只有 30-40 条记录,但该过程卡住了“.open”或“copyfromrecordset”行,需要 40-50 秒才能显示记录。这是我的代码。我用不同的游标类型和锁类型做了一些测试,但没有结果。查询直接从访问执行,当连接本地指向我的 PC 时我没有问题。我在 office 365 上。我引用了 activex 数据对象 2.8 库。
Sub loadTestDisplay2()
Dim myConnectiom As ADODB.Connection
Dim myRS As ADODB.Recordset
Const conStringNet As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\ourserver-f04\COE-Shared\Data Tool\Access\adsLoadTest.accdb; Persist Security Info=False;"
Dim sql As String
sql = "SELECT * FROM tblLoad where user is Null"
Set myConnection = New ADODB.Connection
Set myRS = New ADODB.Recordset
myConnection.ConnectionString = conStringNet
myConnection.Open
With myRS
.ActiveConnection = conStringNet
.Source = sql
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open
End With
Sheets.Add
Range("A2").CopyFromRecordset myRS
myRS.Close
myConnection.Close
End Sub