Имейте в виду, что в наборах записей есть метод клонирования. Это отличается от клона набора записей форм.
В вашем примере и вопросе мы говорим о базовых данных, на которых основана форма.
Если вы собираетесь играть и просматривать записи, используя код, на котором основана форма, но вы не хотите, чтобы отображение формы или графический интерфейс следовали за вами или перепрыгивали, тогда ваш пример - правильный и предпочтительный способ сделать это.
Итак, клон набора записей является копией данных форм. Он позволяет вам перемещать или проходить записи в этом наборе записей, но форма (пользовательский интерфейс) не соответствует перемещению по записям.
Помните, что в некоторых случаях, если вы действительно хотите, чтобы форма перемещалась к следующей записи, вы не будете использовать клон набора записей, а будете использовать фактический набор записей.
Например:
Set rstClone = me.recordset
rstClone.movenext
В приведенном выше примере форма переместится на следующую запись.
Типичная ситуация, когда вы используете подформы. Если вы хотите суммировать или проследить 10 записей в этой форме, вы можете сделать это, не затрагивая и не вызывая текущую отображаемую запись, которую в данный момент указывает форма. Это позволяет вам делать вещи за кулисами, так сказать.
Однако, если вы просто хотите перейти к следующей записи формы, вам не потребуется ни reocrdset, ни клон набора записей, вы можете просто выполнить команду, которая перемещает форму к следующей записи.
Вы можете использовать следующую типичную команду:
DoCmd.GoToRecord acActiveDataObject, , acNext
И вам не нужен набор записей или recordsetClone, если вы хотите просмотреть значения в коде, помещенном в форму, вы можете просто пойти:
me!nameOfCollumFromTable