如果我要打开表或查询的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)
或者没有区别,只是偏好。
答案 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万条记录,所以希望这有帮助吗?对不起我昨天没有这么做,一些报告功能破了,我不得不解决它们。