我正在开发一个Access数据库,并在表单按钮上有一些代码,它们获取记录集的内容并将其导出到excel文档。以下代码有效但我被要求在工作表上反转导出数据。
Set qdef = db.QueryDefs("Inspection_Detail_Crosstab")
qdef![Tag_No_Param] = Tag_Number.Value
Set rs = qdef.OpenRecordset()
EquipmentCellSt = (Col & EquipmentCell)
With wsheet
.Range(EquipmentCellSt).CopyFromRecordset rs
End With
所以而不是(就像现在一样):
- item 1
- item 2
- item 3
它出口:
- item 3
- item 2
- item 1
我认为这样做的方法是:
With wsheet
rs.MoveLast
.Range(EquipmentCellSt).CopyFromRecordset rs
rs.MovePrevious
End With
但添加MoveLast
和MovePrevious
似乎只是锁定程序。
答案 0 :(得分:1)
您可以通过反向迭代记录来手动导出记录集:
Dim rowNum as Long
Dim columnNum As Long
Dim fld As Field
columnNum = 0
rowNum = 0
'stupid client-side sorting, because management
rs.MoveLast
Do While Not rs.BOF
For Each fld In rs.Fields
wsheet.Range(EquipmentCellSt).Offset(rowNum, columnNum).Value = fld.Value
columnNum = columnNum + 1
Next
rowNum = rowNum + 1
columnNum = 0
rs.MovePrevious
Loop