如何使用 VBA 将记录从 rs1 移动到 rs2 (ADODB.Recordsets)?
How to move a record from rs1 to rs2 (ADODB.Recordsets) with VBA?
在 Access 中,我有 rs1
和 rs2
,两者都 As ADODB.Recordset
,它们具有相同的字段。我想将 record/row 从 rs1
移动到 rs2
。
我知道如何使用 SQL
或 rs2.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
和 Destination
是 Strings
,而不是 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,并且可以将记录和记录集作为源对象。请注意,您可能希望实施额外的逻辑来跳过自动编号字段。
在 Access 中,我有 rs1
和 rs2
,两者都 As ADODB.Recordset
,它们具有相同的字段。我想将 record/row 从 rs1
移动到 rs2
。
我知道如何使用 SQL
或 rs2.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
和 Destination
是 Strings
,而不是 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,并且可以将记录和记录集作为源对象。请注意,您可能希望实施额外的逻辑来跳过自动编号字段。