Excel VBA insere registros do banco de dados na ordem correta

0

Estou tentando obter registros de um banco de dados e preenchê-los no Excel. É assim que recebo os dados e os preencho (nota: a consulta é simplificada, não posso apenas 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

Infelizmente, o resultado é assim:

B10 B11
2 1

em vez de

B10 B11
1 2

Eu tentei reverter a , mas infelizmente não consigo fazer isso funcionar.

Existe algum truque para obter o resultado correto?

Obrigado antecipadamente

    
por xeraphim 24.02.2016 / 13:34

1 resposta

0

Por que você deseja classificar / reverter a em vez de recordSet ?

Use o% recordset.Sort = recordSet.Fields(1).Name & " ASC"

Mais detalhes: link

    
por 24.02.2016 / 13:42