1

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

0 回答 0