Freigeben über


Clone-Methode (ADO)

Erstellt ein doppeltes Recordset-Objekt aus einem vorhandenen Recordset-Objekt. Gibt optional an, dass der Klon schreibgeschützt sein soll.

Syntax

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Rückgabewert

Gibt eine Recordset-Objektreferenz zurück.

Parameter

rstDuplicate
Eine Objektvariable, die das doppelte Recordset-Objekt identifiziert, das erstellt werden soll.

rstOriginal
Eine Objektvariable, die das zu duplizierende Recordset-Objekt identifiziert.

LockType
Optional. Ein LockTypeEnum-Wert, welcher entweder den Sperrtyp des ursprünglichen Recordset angibt, oder ein schreibgeschütztes Recordset. Gültige Werte sind adLockUnspecified oder adLockReadOnly.

Bemerkungen

Verwenden Sie die Methode Clone, um mehrere, doppelte Recordset-Objekte zu erstellen, insbesondere, wenn Sie mehr als einen aktuellen Datensatz in einer bestimmten Gruppe von Datensätzen verwalten möchten. Die Verwendung der Methode Clone ist effizienter als das Erstellen und Öffnen eines neuen Recordset-Objekts, das die gleiche Definition wie das Original verwendet.

Die Eigenschaft Filter des ursprünglichen Recordsets, sofern vorhanden, wird nicht auf den Klon angewendet. Stellen Sie die Eigenschaft Filter des neuen Recordsets ein, um die Ergebnisse zu filtern. Der einfachste Weg, einen vorhandenen Filter-Wert zu kopieren, ist, ihn direkt zuzuweisen, wie folgt.

rsNew.Filter = rsOriginal.Filter  

Der aktuelle Datensatz eines neu erstellten Klons wird auf den ersten Datensatz gesetzt.

Änderungen, die Sie an einem Recordset-Objekt vornehmen, sind unabhängig vom Cursortyp in allen Klonen sichtbar. Nachdem Sie jedoch Requery am Original-Recordset ausgeführt haben, werden die Klone nicht mehr mit dem Original synchronisiert.

Wenn das Original-Recordset geschlossen wird, werden seine Kopien nicht gleichzeitig geschlossen, und wenn eine Kopie geschlossen wird, führt das nicht zum Schließen des Originals oder anderer Kopien.

Sie können nur ein Recordset-Objekt klonen, das Lesezeichen unterstützt. Textmarkenwerte sind austauschbar, d. h. ein Textmarkenverweis von einem Recordset-Objekt bezieht sich in jedem seiner Klone auf denselben Datensatz.

Einige Recordset-Ereignisse, die ausgelöst werden, treten auch in allen Recordset-Klonen auf. Da der aktuelle Datensatz bei geklonten Recordsets jedoch unterschiedlich sein kann, sind die Ereignisse möglicherweise nicht für den Klon gültig. Wenn Sie z. B. den Wert eines Feldes ändern, wird ein WillChangeField-Ereignis im geänderten Recordset und in allen Klonen auftreten. Der Parameter Fields des Ereignisses WillChangeField eines geklonten Recordsets (in dem die Änderung nicht vorgenommen wurde) verweist auf die Felder des aktuellen Datensatzes des Klons, der ein anderer Datensatz sein kann als der aktuelle Datensatz des ursprünglichen Recordsets, in dem die Änderung erfolgte.

Die folgende Tabelle enthält eine vollständige Auflistung aller Recordset-Ereignisse. Sie zeigt an, ob sie gültig sind und für alle mit der Methode Clone erzeugten Datensatzklone ausgelöst werden.

Ereignis In Klonen ausgelöst?
EndOfRecordset No
FetchComplete No
FetchProgress No
FieldChangeComplete Yes
MoveComplete No
RecordChangeComplete Yes
RecordsetChangeComplete No
WillChangeField Yes
WillChangeRecord Yes
WillChangeRecordset No
WillMove No

Gilt für

Recordset-Objekt (ADO)

Weitere Informationen

Clone-Methode – Beispiel (VB)
Clone-Methode – Beispiel (VBScript)
Clone-Methode – Beispiel (VC++)