Я пытаюсь получить записи из базы данных и заполнить их в 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

К сожалению, результат выглядит так:

B10 B11
2 1

вместо

B10 B11
1 2

Я попытался повернуть вспять , но , к сожалению , я не могу заставить его работать.

Есть ли хитрость, чтобы получить правильный результат?

заранее спасибо

1 ответ1

0

Почему вы хотите отсортировать / Реверс вместо a

использование
recordset.Sort = recordSet.Fields(1).Name & " ASC"

Более подробная информация: https://msdn.microsoft.com/en-us/library/ms675783(v=vs.85).aspx

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .