DAO.Recordset性能

时间:2017-03-14 20:54:14

标签: vba ms-access access-vba

如果我要打开表或查询的DAO.recordset

会做类似

的事情
Set rs = CurrentDb.OpenRecordset("dbo_Some_Table", dbOpenDynaset, dbSeeChanges)

要快一点

Set rs = CurrentDb.TableDefs("dbo_Some_Table").OpenRecordset(dbOpenDynaset, dbSeeChanges)

Set rs = CurrentDb.QueryDefs("qrySomeQuery").OpenRecordset(dbOpenDynaset, dbSeeChanges)

或者没有区别,只是偏好。

1 个答案:

答案 0 :(得分:4)

尝试使用它来测试时序差异

 Dim StartTime As Double
 Dim SecondsElapsed As Double

 StartTime = Timer

并在模块结束时

 SecondsElapsed = Round(Timer - StartTime, 2)
 MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation

我实际上只是跑了每一个,这里是结果。查询是我在上面使用的同一个表中的SELECT *。我选了一张桌子,我知道它也有大约100万条记录,所以希望这有帮助吗?对不起我昨天没有这么做,一些报告功能破了,我不得不解决它们。

enter image description here