如何提高excel中sql查询的运行时间

如何提高excel中sql查询的运行时间,sql,excel,ms-access,Sql,Excel,Ms Access,我正在尝试从excel查询access表。它能工作,但速度很慢。excel中的查询(~60000个数据集)运行时间超过4分钟,access中的同一查询需要不到2秒。不幸的是,我不能使用access查询,因为在以后的版本中,我将使用参数,这些参数将存储在excel中。也许你们中有人能给我一些如何改进运行时的建议 Sub SQL() Dim Cn As Object Dim rs As Object Dim strSQL As String Dim strConnection As String

我正在尝试从excel查询access表。它能工作,但速度很慢。excel中的查询(~60000个数据集)运行时间超过4分钟,access中的同一查询需要不到2秒。不幸的是,我不能使用access查询,因为在以后的版本中,我将使用参数,这些参数将存储在excel中。也许你们中有人能给我一些如何改进运行时的建议

Sub SQL()
Dim Cn As Object
Dim rs As Object
Dim strSQL As String
Dim strConnection As String

Application.Cursor = xlWait

    Set Cn = CreateObject("ADODB.Connection")
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=path.accdb"


    strSQL = "SELECT Name,adress,city,street,month,company, sum(amount), sum(price) FROM Table Group by Name, adress,city,street, month, company order by sum(amount) DESC"

    Cn.Open strConnection

    Set rs = Cn.Execute(strSQL)

    Worksheets("Table1").Range("a:x").ClearContents


    Worksheets("Table1").Range("a2").CopyFromRecordset rs
    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing

    Application.Cursor = xlDefault


    End Sub

尝试使用数组而不是sql,谢谢。是的,我指的是排。我是vba的初学者,如何使用数组?另一方面,我认为数组不会完全提高速度,因为sql查询中没有计算,只是一个基本的选择。Access中的运行时只显示部分结果。此外,您甚至不需要VBA。查看Excel工具栏中的“数据”菜单选项卡。