You're right, sorry!
If you are using a RecordSet to populate your ListView you can take advantage of its Sort Property:
'Set up ListView
Private Sub SetUpListViewLittle()
If gblnDoApFlowDebug = True Then Print #100, "AppointReview.SetUpListViewBig"
With lvwLittle
Dim sngWidth As Single
sngWidth = .Width
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Name", 0.42 * sngWidth
.ColumnHeaders.Add , , "Date", 0.38 * sngWidth 'SubItem(1)
.ColumnHeaders.Add , , "Time", 0.2 * sngWidth 'SubItem(2)
.Width = (.ColumnHeaders(1).Width + .ColumnHeaders(2).Width + .ColumnHeaders(3).Width) * 1.05
.Left = (fraLVs.Width - .Width) / 2 '5/10/03
.View = lvwReport
End With
End Sub
'Fill ListView
Public Sub PopulatelvwLittle(strSort As String) '5/4/03
If gblnDoApFlowDebug = True Then Print #100, "AppointReview.PopulatelvwLittle"
Dim intLine As Integer
lvwBig.Visible = False: lvwLittle.ListItems.Clear
lvwLittle.ColumnHeaders(3).Text = "Time"
With grsAppointments
.Filter = mstrFilter
If .RecordCount > 0 Then
.Sort = strSort
.MoveFirst
Do While Not .EOF
intLine = intLine + 1
Set mAppointmentListItem = lvwLittle.ListItems.Add(, "K" & intLine)
Select Case mintSelect
Case 2
lvwLittle.ColumnHeaders(1).Text = "Patient": lvwLittle.ColumnHeaders(2).Text = "Date"
lvwLittle.ListItems(intLine).Text = gcollPtIDToName(!PatientID)
lvwLittle.ListItems(intLine).SubItems(1) = Format(!ApptDate, gstrDateFormat)
Case 3
lvwLittle.ColumnHeaders(1).Text = "Provider": lvwLittle.ColumnHeaders(2).Text = "Date"
lvwLittle.ListItems(intLine).Text = gcollProviderIDToName(!ProviderID)
lvwLittle.ListItems(intLine).SubItems(1) = Format(!ApptDate, gstrDateFormat)
Case 4
lvwLittle.ColumnHeaders(1).Text = "Provider": lvwLittle.ColumnHeaders(2).Text = "Patient"
lvwLittle.ListItems(intLine).Text = gcollProviderIDToName(!ProviderID)
lvwLittle.ListItems(intLine).SubItems(1) = gcollPtIDToName(!PatientID)
End Select
lvwLittle.ListItems(intLine).SubItems(2) = Format(!ApptTime, "h:mm AM/PM"

.MoveNext
Loop
End If
End With
If lvwLittle.ListItems.Count = 0 Then
fraLVs.Visible = False
Else
fraLVs.Visible = True: lvwLittle.Visible = True
End If
DisplayRightButtons (2)
End Sub
'Clicking on column header sorts ListView
Private Sub lvwLittle_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
If gblnDoApFlowDebug = True Then Print #100, "AppointReview.lvwLitle_ColumnClick"
Dim strSort As String
Select Case ColumnHeader
Case "Provider": strSort = "ProviderID, ApptDate, ApptTime, PatientID" 'Provider
Case "Patient": strSort = "PatientID, ApptDate, ApptTime, ProviderID" 'Pt
Case "Date": strSort = "ApptDate, ApptTime, ProviderID, PatientID" 'Date
Case "Time": strSort = "ApptTime, ApptDate, ProviderID, PatientID" 'Time
End Select
PopulatelvwLittle (strSort)
End Sub