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]