4

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

我打开了两个记录集。

 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

4 回答 4

1

您可以使用代码:

设置 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
于 2012-11-24T06:15:54.533 回答
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 记录集

于 2012-11-20T15:49:12.217 回答
0

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

于 2013-01-04T23:04:21.553 回答
0

我认为这将通过一次完成所有操作来完成您想要的。

Dim objPB As New PropertyBag

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

Set objPB = Nothing
于 2012-11-20T17:48:00.673 回答