Per la question del DELETE, ti ha già risposto PHIL,c direi inutile proprio ciclare per cancellarne 1 alla volta.
Per il ciclo di cui parli, sempre serva… perchè il Recordset ha la collection Fields che consente di accedere ai campi… es:
Dim rs AS DAO.Recordset
Dim fld As DAO.Field
Ser rs=CurrentDB.OpenRecordset(....)
rs.MoveFirst
Do Until rs.Eof
rs.Edit
For each fld in rs.Fields
Debug.Print fld.name, fld.value
' ovviamente se fai l'EDIT sul RS lo fai a monte
Next
rs.Update
rs.MoveNext
Loop
Meglio ancora se inglobi in una Transazione…
Se invece vuoi proprio ciclare i numeri perchè ti piace di più… cicla i numeri il riferimento al Campo è una Stringa… es:
Dim Pippo As Integer
pippo=1
rs.Fields(cstr(Pippo))="TuoDato1"
pippo=2
rs.Fields(cstr(Pippo))="TuoDato2"
Dim X As Integer
For X=1 to 100
rs.Fields(cstr(X))="TuoDato" & X
Next
Attenzione che il Fields supporta l'indicizzazione dei Campi quindi passare 1 e passare “1” sono riferimenti potenzialmente differenti…
Se nell'ordine dei campi creati hai prima il campo “2” passando Indice 1 punti al Campo “2” e non “1”
Questa confusione accade se non comprendi bene la differenza nell'indicizzazione per Nome o per Indice, ed avendo nominato i campi come Numero può uteriormente peggiorare lo sbaglio.