Excel VBA 按正确的顺序从数据库插入记录

Excel VBA 按正确的顺序从数据库插入记录

我正在尝试从数据库中获取记录并将其填充到 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

相关内容