我正在尝试从数据库中获取记录并将其填充到 excel 中。这是我获取数据并填充数据的方法(注意:查询已简化,我不能只这样做ORDER BY DESC
):
Sub FillPersons(ByRef connection As ADODB.connection)
Dim recordSet As ADODB.recordSet
Set recordSet = New ADODB.recordSet
Dim sql As String
sql = "SELECT TOP 2 Id FROM Persons"
recordSet.activeconnection = connection
recordSet.Open sql
Dim a As Variant
If Not recordSet.EOF Then
a = recordSet.GetRows
a.Reverse (a)
Sheet1.Cells(10, 2).Resize(UBound(a, 1) + 1, UBound(a, 2) + 1).Value = a
End If
'Sheet1.Range("B10").CopyFromRecordset recordSet
recordSet.Close
connection .Close
Set connection = Nothing
End Sub
不幸的是,结果是这样的:
B10B11
2 1
代替
B10B11
1 2
我曾尝试逆转a
,但不幸的是我无法让它发挥作用。
有什么技巧可以得到正确的结果吗?
提前致谢
答案1
为什么要排序/反转a
而不是recordSet
?
使用
recordset.Sort = recordSet.Fields(1).Name & " ASC"
更多细节:https://msdn.microsoft.com/en-us/library/ms675783(v=vs.85).aspx