如何提高excel中sql查询的运行时间
我正在尝试从excel查询access表。它能工作,但速度很慢。excel中的查询(~60000个数据集)运行时间超过4分钟,access中的同一查询需要不到2秒。不幸的是,我不能使用access查询,因为在以后的版本中,我将使用参数,这些参数将存储在excel中。也许你们中有人能给我一些如何改进运行时的建议如何提高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
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工具栏中的“数据”菜单选项卡。