Option Explicit
Option Compare Text
Public Declare Function timeGetTime Lib "Winmm.dll" () As Long
[color=green]' For DAO recordsets...
'
' The ! appears to be 5% faster than the .
' Both seem to be swamped out by the Edit and Update.
'
' Tested on 64280 records
'[/color]
Sub Test1()
Dim lngStart As Long
Dim rstLocalities As DAO.Recordset
lngStart = timeGetTime()
Set rstLocalities = CurrentDb.OpenRecordset("tblLocalities", dbOpenDynaset)
Do Until rstLocalities.EOF
rstLocalities.MoveNext
Loop
Set rstLocalities = Nothing
MsgBox timeGetTime() - lngStart [color=green]' 141 milliseconds[/color]
End Sub
Sub Test2()
Dim lngStart As Long
Dim rstLocalities As DAO.Recordset
lngStart = timeGetTime()
Set rstLocalities = CurrentDb.OpenRecordset("tblLocalities", dbOpenDynaset)
Do Until rstLocalities.EOF
rstLocalities.Edit
rstLocalities.Update
rstLocalities.MoveNext
Loop
Set rstLocalities = Nothing
MsgBox timeGetTime() - lngStart [color=green]' 2995 milliseconds[/color]
End Sub
Sub Test3()
Dim lngStart As Long
Dim rstLocalities As DAO.Recordset
lngStart = timeGetTime()
Set rstLocalities = CurrentDb.OpenRecordset("tblLocalities", dbOpenDynaset)
Do Until rstLocalities.EOF
rstLocalities.Edit
rstLocalities!TestText = "ABC_"
rstLocalities.Update
rstLocalities.MoveNext
Loop
Set rstLocalities = Nothing
MsgBox timeGetTime() - lngStart [color=green]' 3195 milliseconds[/color]
End Sub
Sub Test4()
Dim lngStart As Long
Dim rstLocalities As DAO.Recordset
lngStart = timeGetTime()
Set rstLocalities = CurrentDb.OpenRecordset("tblLocalities", dbOpenDynaset)
Do Until rstLocalities.EOF
rstLocalities.Edit
rstLocalities.Fields("TestText") = "ABC_"
rstLocalities.Update
rstLocalities.MoveNext
Loop
Set rstLocalities = Nothing
MsgBox timeGetTime() - lngStart [color=green]' 3205 milliseconds[/color]
End Sub
[color=green]'
' For what it is worth, those are the times I got.
'
' Regards,
' Chris.[/color]