我需要从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