将一个Recordset复制到另一个

时间:2012-11-20 14:09:56

标签: vb6

由于我收到了如此好的快速解决方案,我会再次尝试从您那里得到一些帮助:

我打开了两个Recordset。

 Set cmd1.ActiveConnection = cn1
 cmd1.CommandText = "SELECT * FROM mov Where [Date] >= #" & DateA & "#;"
 Set RSold = cmd1.Execute

 Set cmd2.ActiveConnection = cn2
 cmd2.CommandText = "SELECT * FROM mov"
 Set RSnew = cmd2.Execute

(我只想保存文件的选定记录。)

我知道如何按记录复制记录,但有没有“捷径”来更快地完成记录?

由于

4 个答案:

答案 0 :(得分:1)

试试这个:

Dim i As Long
Do While Not RSold.EOF
    ' You can place if condition here
    RSNew.AddNew
    For i = 0 To RSold.Fields.Count - 1
        RSNew.Fields(RSold.Fields(i).Name) = RSold.Fields(i).Value
    Next i
    RSNew.Update
    RSold.MoveNext
Loop

这会将记录从RSold复制到RSnew记录集

答案 1 :(得分:0)

我认为这样做可以做到你想要的一切。

Dim objPB As New PropertyBag

objPB.WriteProperty "rs", RSOld
Set RSNew = objPB.ReadProperty("rs")

Set objPB = Nothing

答案 2 :(得分:0)

您可以使用代码:

设置RSNew = RSOld.Clone

@user1838163 :Saving the second Recordset as a file

Dim RFileNm  As String 
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")

RFileNm  = "c:\temp\" & Trim(RFileNm) & ".adt"
fs.DeleteFile (RFileNm)
RSNew .Save RFileNm, adPersistADTG
RSNew .Close
RSNew .Open RFileNm, , , , adCmdFile

答案 3 :(得分:0)

我认为CLONE不会做你想做的事。它只是为您提供了已有的同一记录集的另一个视图。这允许您使用多个书签等,但记录集仍然附加到原始的同一数据库。我还需要一种方法来复制记录集并以新格式将其保存到新数据库中。