This example uses the Clone method to create copies of a Recordset and then lets the user position the record pointer of each copy independently.
'BeginCloneVB 'To integrate this code 'replace the data source and initial catalog values 'in the connection string Public Sub CloneX() 'recordset array and connection variables Dim arstStores(1 To 3) As ADODB.Recordset Dim Cnxn As ADODB.Connection Dim strSQLStore As String Dim strCnxn As String 'record variables Dim intLoop As Integer Dim strMessage As String Dim strFind As String ' Open a connection Set Cnxn = New ADODB.Connection strCnxn = "Provider=sqloledb;Data Source=MyServer;Initial Catalog=Pubs;User Id=sa;Password=; " Cnxn.Open strCnxn ' Open recordset as a static cursor type recordset Set arstStores(1) = New ADODB.Recordset strSQLStore = "SELECT stor_name FROM Stores ORDER BY stor_name" arstStores(1).Open strSQLStore, strCnxn, adOpenStatic, adLockBatchOptimistic, adCmdText ' Create two clones of the original Recordset Set arstStores(2) = arstStores(1).Clone Set arstStores(3) = arstStores(1).Clone ' Loop through the array so that on each pass the user ' is searching a different copy of the same Recordset Do For intLoop = 1 To 3 ' Ask for search string while showing where ' the current record pointer is for each Recordset strMessage = _ "Recordsets from stores table:" & vbCr & _ " 1 - Original - Record pointer at " & arstStores(1)!stor_name & vbCr & _ " 2 - Clone - Record pointer at " & arstStores(2)!stor_name & vbCr & _ " 3 - Clone - Record pointer at " & arstStores(3)!stor_name & vbCr & _ "Enter search string for #" & intLoop & ":" strFind = Trim(InputBox(strMessage)) ' make sure something was entered, if not then EXIT loop If strFind = "" Then Exit Do ' otherwise locate the record from the entered string arstStores(intLoop).Filter = "stor_name = '" & strFind & "'" 'if there's no match, jump to the last record If arstStores(intLoop).EOF Then arstStores(intLoop).Filter = adFilterNone arstStores(intLoop).MoveLast Else MsgBox "Found " & strFind End If Next intLoop Loop ' clean up arstStores(1).Close arstStores(2).Close arstStores(3).Close Cnxn.Close Set arstStores(1) = Nothing Set arstStores(2) = Nothing Set arstStores(3) = Nothing Set Cnxn = Nothing End Sub 'EndCloneVB
Clone Method | Recordset Object
© 1998-2001 Microsoft Corporation. All rights reserved.