Keep in mind that record sets have a clone method. This is different than cloning a recordset.
In your example and question, we are talking about the underlying data on which the form is based.
If you are going to play and navigate records using the code on which the form is based, but you do not want the form display or GUI to follow you or jump, then your example is the correct and preferred way to accomplish this.
So, a record set clone is a copy of these forms. It allows you to move or move records in this record set, but the form (user interface) does not follow the movement of records.
Remember that in some cases, if you really want the form to move to the next record, you will not use the cloned record set, but use the actual record set.
For example:
Set rstClone = me.recordset rstClone.movenext
In the form above, the form will then move to the next record.
A typical situation is that you use subforms. If you want to summarize or cross 10 records in this subform, you can do this without affecting or creating the currently displayed record in which the sub-form is currently indicating a change. This allows you to do things backstage, so to speak.
However, if you just want to go to the forms of the next record, you do not need either reocrdset or recordet clone, you can simply execute a command that moves the form to the next record.
You can use the following typical command:
DoCmd.GoToRecord acActiveDataObject, , acNext
And you donβt need a recordset or recordsetClone, if you want to look at the values ββin the code posted on the form, you can just go:
me!nameOfCollumFromTable