فکر کنم مشکل ذاتی فرم های پیوسته با ADODB باشه.
اگر نمیخواین از حلقه استفاده کنین یک راه دیگه هم هست : میتونین کانکشن با رکوردست اصلی رو نبندین و یک CLONE بدون کانکشن از رکوردست اصلی بگیرین و فرم رو به اون باند کنین. موقع UPDATE هم مقادیر این رکوردست کلون شده رو در رکوردست اصلی میریزین.
Option Compare Database
Public RS1 As ADODB.Recordset
Public RS2 As ADODB.Recordset
Private Sub Form_Open(Cancel As Integer)
Set RS1 = New ADODB.Recordset
Set RS2 = New ADODB.Recordset
RS1.CursorLocation = adUseClient
RS1.ActiveConnection = CurrentProject.Connection
RS1.LockType = adLockBatchOptimistic
RS1.CursorType = adOpenKeyset
RS1.Open "SELECT ..."
Set RS2.ActiveConnection = Nothing
Set RS2 = RS1.Clone
Set Me.Recordset = RS2
End Sub
Private Sub BTN_SAVE_Click()
Set RS1 = RS2
RS1.UpdateBatch adAffectAll
End Sub