首页 > 解决方案 > 如何使用 VBA 将记录从 rs1 移动到 rs2 (ADODB.Recordsets)?

问题描述

在 Access 中,我有rs1rs2As ADODB.Recordset它们都有相同的字段。我想将记录/行rs1rs2.

我知道如何使用SQLorrs2.AddNew和迭代Fields,但我想通过使用ADODB.Record- 对象来做到这一点,就像这样。

Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
...

Private Sub MoveRecord (id As Long)

  Dim r As ADODB.Record

  rs1.filter = "id=" & id

  Set r = rs1(0)

  ' And now??? rs2.Addnew r is rubbish...


End Sub 

我尝试了Record.MoveRecord- 方法,但似乎这是用于移动文件?

Record.MoveRecord (Source, Destination, UserName, Password, Options, Async)

Source并且DestinationStrings,不是RecordSets。

可以做到这一点,如果可以,怎么做?

标签: vbams-accessadodb

解决方案


如果你觉得有必要这样的功能,你可以自己写...

Public Sub MoveCurrentRecord(rsSource, rsTarget)
   rsTarget.AddNew
   Dim fld
   For Each fld In rsSource.Fields
      rsTarget.Fields(fld.Name).Value = fld.Value
   Next
   rsTarget.Update
End If

与 ADO 和 DAO 一起使用,并且将记录和记录集都用作源对象。请注意,您可能希望实现其他逻辑来跳过自动编号字段。


推荐阅读