Home  Fees/Services  Access Templates  Tutorials  Access Download  Articles  Search  Contact  Privacy  Links

Visual Basic Tutorial
   
Access Programming Examples
How To Sort Access Recordset Data

Sort Recordset Quickly Visual Basic for Microsoft Access
Microsoft Access Tutorial>Visual Basic Tutorial>Sort Recordset Download VBA Example  



VB Age Calculation
VB6 Change Case
Calculate Running Sum
VB Concatenate Records
VB CreateQueryDef
VB6 Database Path
Detail-Master Update
VB Field Validation VBA
VB Field Value New-Old
VB FindFirst Recordset
Get Version Number
VB Global Parameters
Global Variables
Labels as Links
VB Launch Outlook
VB List Box Files List
VB Mail Merge
OutputTo Crosstab
VB Read Email Access
VB Sort Recordset
VB Recordset Filters
VB Reference Form Field
RTF Report Email
VB Select Case
Email From Access
VB Transaction Processing

Visual Basic Function Examples


Recursive Quick Sort Recordset Routine

Access Visual Basic Recursive Quick Sort Routine:  At times you may need to sort a list of values programmatically.

One of the most efficient and easiest sorts is the recursive quick sort. Recursive means that the routine calls itself.

The concept used in the quick sort is as follows:

  1. Choose the middle value of the list.

  2. Starting at the bottom of the list move up the list, toward the middle, until you find the first value that is not in sort order in relation to the middle value.

  3. Starting at the top of the list move down the list, toward the middle, until you find the first value that is not in sort order in relation to the middle value.

  4. Now switch the two values that were found out of sort order.

  5. Repeat steps 2 through five until you get to the middle of the list.

  6. Call the sort routine on the top half of the list.

  7. Call the sort routine on the bottom half of the list.


What happens is that each pass through the routine does a small amount of sorting then cuts the size of the list in half and sends the 2 new halves to be sorted. This continues until each part of the list is perfectly sorted. The result is that the overall whole is sorted.

Private Sub QuickSort(strArray() As String, intBottom As Integer, intTop As Integer)
Dim strPivot As String, strTemp As String
Dim intBottomTemp As Integer, intTopTemp As Integer

intBottomTemp = intBottom
intTopTemp = intTop

strPivot = strArray((intBottom + intTop) \ 2)

While (intBottomTemp <= intTopTemp)

‘ < comparison of the values is a descending sort
While (strArray(intBottomTemp) < strPivot And intBottomTemp < intTop)
    intBottomTemp = intBottomTemp + 1
Wend

While (strPivot < strArray(intTopTemp) And intTopTemp > intBottom)
    intTopTemp = intTopTemp - 1
Wend
If intBottomTemp < intTopTemp Then
    strTemp = strArray(intBottomTemp)
    strArray(intBottomTemp) = strArray(intTopTemp)
    strArray(intTopTemp) = strTemp
End If

If intBottomTemp <= intTopTemp Then
    intBottomTemp = intBottomTemp + 1
    intTopTemp = intTopTemp - 1
End If

Wend

'the function calls itself until everything is in good order
If (intBottom < intTopTemp) Then QuickSort strArray, intBottom, intTopTemp
If (intBottomTemp < intTop) Then QuickSort strArray, intBottomTemp, intTop

End Sub

Contributed by Janet Loch


Contact Information

Programming Visual Basic Tutorial

Access Visual Basic/VB/VBA/VBScript/VB6 2007 2003 2000 All Windows Versions