如何使用 VBA 将记录从 rs1 移动到 rs2 (ADODB.Recordsets)?

How to move a record from rs1 to rs2 (ADODB.Recordsets) with VBA?

在 Access 中,我有 rs1rs2,两者都 As ADODB.Recordset,它们具有相同的字段。我想将 record/row 从 rs1 移动到 rs2

我知道如何使用 SQLrs2.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)

SourceDestinationStrings,而不是 RecordSet

这可以做到吗?如果可以,怎么做?

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

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,并且可以将记录和记录集作为源对象。请注意,您可能希望实施额外的逻辑来跳过自动编号字段。