访问Excel VBA的性能问题

时间:2018-08-07 05:18:07

标签: excel-vba ms-access adodb

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

0 个答案:

没有答案