我获取一个记录集
Do while not recset.eof
Recset.movenext
Loop
,并希望使用vba将记录集的当前记录设置为另一个记录集
Set rec2 = rec1.????
我尝试过
Set.Rec2 = recset.bookmark
但是没有成功! 我希望有一种方法可以轻松地将当前记录设置为其他记录集
感谢您的帮助
答案 0 :(得分:0)
有很多选择,但是如果不知道自己的确切目标,很难知道哪一个最适合您。
一种选择是打开recordsetclone:
Set rec2 = rec1.RecordsetClone 'Open a clone
rec2.Bookmark = rec1.Bookmark 'Move the clone to the same record
在这种情况下,rec2包含rec1拥有的所有所有数据,但设置为同一记录。
另一个选择是使用过滤器:
rec1.Filter = "ID = " & rec1!ID 'Set a filter to the current record, assumes ID = primary key
Set rec2 = rec1.OpenRecordset 'Set rec2 to the filtered result, rec1 is still unfiltered
答案 1 :(得分:0)
我的目标是将记录集的当前记录导出到Excel文件。正如Eric所写,不可能将当前记录设置为另一个记录集。
但是copyFromRecordset具有非常有趣的属性,可以解决我的问题,如下所示 CopyFromRecordset RecordSet,MaxRows,MaxColumns Full description here
所以我测试了这段代码,效果很好
Dim oRecSet As Recordset, oRecSetClone As Recordset
Dim varBookmark As Variant
Set objExcelApp = New Excel.Application
objExcelApp.Visible = True
Set wb = objExcelApp.Workbooks.Open("G:\Access\test.xlsx")
Set ws = wb.Sheets(1)
sSQL = "SELECT * FROM tbl"
Set oRecSet = CurrentDb.OpenRecordset(sSQL)
Set oRecSetClone = oRecSet.Clone
Do While Not oRecSet.EOF
Debug.Print i
oRecSetClone.Bookmark = oRecSet.Bookmark
ws.Range("A" & i).CopyFromRecordset oRecSetClone, 1
oRecSet.MoveNext
Loop
End Sub
只有一条评论
我使用书签是因为我在应用copyFromRecordSet rec,1时发现了一个奇怪的行为。 执行此命令后,rec.movenext会生成错误消息:Nbr 3021-无当前记录