Denken Sie daran, dass Datensätze, die eine Klon-Methode aufgerufen haben. Dies ist anders als der Datensatzsatz klon.
In Ihrem Beispiel und Ihrer Frage sprechen wir über die zugrunde liegenden Daten, auf denen das Formular basiert.
Wenn Sie mit Datensätzen, die Code verwenden, auf denen ein Formular basiert, spielen und sich durch diese bewegen möchten, aber nicht möchten, dass die Formularanzeige oder grafische Benutzeroberfläche Ihnen folgt oder springt, dann ist Ihr Beispiel der richtige und bevorzugte Weg, dies zu erreichen.
Also Datensatzsatz Klon ist eine Kopie der Formulardaten. Es ermöglicht Ihnen, Datensätze in diesem Datensatz zu verschieben oder zu durchlaufen, aber das Formular (die Benutzeroberfläche) folgt nicht dem Durchlaufen der Datensätze.
Denken Sie daran, in einigen Fällen, wenn Sie tatsächlich möchten, dass das Formular zum nächsten Datensatz wechselt, dann würden Sie keine Datensätze verwenden, die den Klon festlegen, sondern den tatsächlichen Datensatz verwenden.
ZB:
Set rstClone = me.recordset
rstClone.movenext
In der oben würde die Form dann zum nächsten Datensatz wechseln.
Eine typische Situation ist, wenn Sie Unterformulare verwenden.Wenn Sie die 10 Datensätze in diesem Unterformular zusammenfassen oder durchqueren möchten, können Sie dies tun, ohne den aktuellen Anzeigedatensatz zu beeinflussen oder zu verursachen, auf den das Unterformular gerade zeigt. Sie können so Dinge hinter den Kulissen tun.
Wenn Sie jedoch nur zum nächsten Datensatz der Formulare wechseln möchten, dann brauchen Sie weder reocrdset noch recordset clone. Sie könnten einfach einen Befehl ausführen, der das Formular in den nächsten Datensatz verschiebt.
Sie können den folgenden typischen Befehl verwenden:
DoCmd.GoToRecord acActiveDataObject, , acNext
Und Sie nicht-Cord benötigen, oder RecordsetClone, wenn Sie bei Werten in Code in einem Formular suchen wollen, können Sie einfach gehen:
me!nameOfCollumFromTable
Bitte beachten Sie, dass .recordsetClone nur mit DAO-Recordsets verfügbar ist. Der Aufruf dieser Eigenschaft in einem Formular mit einem ADODB-Recordset führt zur Laufzeit zu einem Fehler (obwohl dies bei der Kompilierung nicht erkannt wurde) –