Hop til teksten

IT FJERNUNDERVISNING
- IT kurser når Du har tid!

Sortering af data

Afhængigt af hvilken recordset type man arbejder med kan man få sorteres sine data:

Table

Her skal man bruge index metoden - et lille eksempel hentet fra hjælpefilen:

Sub IndexPropertyX()

    Dim dbsNorthwind As Database
    Dim tdfEmployees As TableDef
    Dim rstEmployees As Recordset
    Dim idxLoop As Index

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")
    Set rstEmployees = dbsNorthwind.OpenRecordset("Employees")
    Set tdfEmployees = dbsNorthwind.TableDefs!Employees

    With rstEmployees

        ' Enumerate Indexes collection of Employees table.
        For Each idxLoop In tdfEmployees.Indexes
            .Index = idxLoop.Name
            Debug.Print "Index = " & .Index
            Debug.Print "  EmployeeID - PostalCode - Name"
            .MoveFirst

            ' Enumerate Recordset to show the order of records.
            Do While Not .EOF
                Debug.Print "    " & !EmployeeID & " - " & _
                    !PostalCode & " - " & !FirstName & " " & _
                    !LastName
                .MoveNext
            Loop

        Next idxLoop

        .Close
    End With

    dbsNorthwind.Close

End Sub

Dynaset

Her kan man bruge Sort metoden på recordsettet. Et lille eksempel jeg har bikset sammen:

Public Sub Gennemloeb()
    Dim db As Database
    Dim rs, rs2 As Recordset
    Dim intAntal As Integer
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Kunder", dbOpenDynaset)
    rs.Sort = "KøbIalt"
    rs.MoveFirst
    Set rs2 = rs.OpenRecordset
   
    Do While Not rs2.EOF
        Debug.Print rs2("Kundenr") & " " & rs2("Firma") & " " & rs2("KøbIalt")
        rs2.MoveNext
    Loop
    rs.Close
    rs2.Close
End Sub

Og her er forklaringen på at der skal bruges 2 recordsets:

"When you set this property for an object, sorting occurs when a subsequent Recordset object is created from that object."

SQL

Endelig kan man når man henter informationerne ind via et SQL kald med det samme sørge for at de er sorterede:

strSQL = "SELECT * FROM Kunder WHERE KøbIalt >= 100000 ORDER BY KøbIalt"

Hvis du vil lære mere om SQL kan jeg anbefale et kursus :-)

 - eller at du kigger på www.w3schools.com

 

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.