Sorteren rowsource formulier

Status
Niet open voor verdere reacties.

marjann

Gebruiker
Lid geworden
16 mei 2008
Berichten
10
Hallo,

Ik ben nu al een tijdje aan het zoeken maar kan het niet vinden. Ik hoop dat jullie het weten.

Ik heb een formulier met 2 keuzevelden. Het 2e keuzeveld vult zich nav de keuze van het 1e keuzeveld dmv onderstaande vba.
Dat werkt prima behalve dat ik geen logica in de volgorde zie. Hoe kan ik L oftewel de rowsource sorteren?

B = Dir(Pad & Leverancier & "\")
Do Until B = ""
If Right(B, 3) = "csv" Then
L = L & B & ";"
End If

B = Dir
Loop


Me.lijst_facturen.RowSource = L
 
Je zou een recordset kunnen maken van de lijst en die sorteren en weer terugzetten.
 
bedankt voor je antwoord. Kan je een kleine hint (voorbeeld) geven hoe ik een recordset maak?
 
Deze functie is vrij compleet. Misschien kun je er wat mee.

Code:
Private Function MapLezen()
Dim B As String, L As String
Dim rst As ADODB.Recordset
Dim arData As Variant
Dim TheArray As Variant

    '--------------------------------------------------------
    'bestanden inlezen in een tekststring
    '--------------------------------------------------------
    B = Dir(Pad & Leverancier & "\*.csv")
    Do Until B = ""
        L = L & B & ";"
        B = Dir
    Loop
    '--------------------------------------------------------
    'Tekststring omzetten naar een matrix variabele
    '--------------------------------------------------------
    TheArray = Split(L, ";")
    '--------------------------------------------------------
    'recordset aanmaken
    '--------------------------------------------------------
    Set rst = New ADODB.Recordset
    rst.Fields.Append ("Bestand"), adChar, 100
    rst.Open
    '--------------------------------------------------------
    'recordset vullen met alle variabelen uit de matrix
    '--------------------------------------------------------
    For i = 0 To UBound(TheArray)
        If TheArray(i) <> "" Then
            rst.AddNew
            rst("Bestand") = TheArray(i)
            rst.Update
        End If
    Next
    '--------------------------------------------------------
    'Sorteren van de Recordset
    '--------------------------------------------------------
    rst.Sort = "Bestand"
    '--------------------------------------------------------
    'Recordset terugzetten in een matrix
    '--------------------------------------------------------
    If Not rst.EOF Then arData = rst.GetRows(rst.RecordCount)
    rst.Close
End Function
 
Laatst bewerkt:
Bedankt voor je uitgebreide antwoord!

Ik snap ongeveer wat er staat maar hoe krijg ik de matrix weer als rowsource?
 
De lus die gebruikt wordt om de lijst op te bouwen met DIR kun je op dezelfde manier gebruiken om matrix weer in een string te zetten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan