【问题标题】:Copy one Recordset to another将一个记录集复制到另一个
【发布时间】:2021-09-05 13:06:30
【问题描述】:

既然我的问题得到了如此好的和快速的解决方案,我会再次尝试向您寻求帮助:

我打开了两个记录集。

 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

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

我知道如何逐条复制,但是是否有“捷径”可以更快地复制?

谢谢

【问题讨论】:

标签: vb6


【解决方案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 记录集

【讨论】:

  • 请注意:您可能必须对您拥有的任何自动编号字段进行特殊处理,以便跳过它们。在 For 循环中,添加检查字段名称并跳过设置字段的代码。
  • 谢谢哈桑。我正在尝试尽快完成副本。
  • @hassan : 以上复制过程使我的新记录集状态关闭。
【解决方案2】:

你可以使用代码:

设置 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

【讨论】:

  • 谢谢 Preeti。如果我使用“克隆”,如何将第二个 Recordset 保存为文件?
  • 谢谢。当我运行 CLONE 行时,我收到以下错误消息:“当前记录集不支持书签。这可能是提供程序或所选游标类型的限制”我做错了什么?
  • 记录集可能是 ForwardOnly、ReadOnly 记录集。确保表有一个主键。
  • 好的,很好。了解。现在它正在运行,但创建的文件无法在 ACCESS 中打开。错误消息是“无法识别的文件格式”。抱歉...感谢您的帮助。
  • 创建访问文件代替“.adt”文件
【解决方案3】:

我认为这会一次完成所有你想做的事情。

Dim objPB As New PropertyBag

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

Set objPB = Nothing

【讨论】:

  • 谢谢乔。这正是我正在寻找的。当我运行代码时,出现错误“不支持此类接口。-2147467262。
  • 请协助。我仍然被这个问题困扰。翻了个网,没找到解决办法。
  • @Joe Majsterski : 我想更新新的记录集,即 RSNew。但是上面的复制过程不允许我更新记录集。
【解决方案4】:

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

【讨论】:

  • 嗨,欢迎来到 SO。仅供参考,如果您没有问题的答案,最好将您的内容放在评论中而不是答案中。
猜你喜欢
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 2020-01-16
  • 1970-01-01
相关资源
最近更新 更多