Code:
Option Compare Database
Option Explicit
Dim intSortSelected As Integer
Private Function basOrderby() As Integer
Dim strSQL As String
'Clear captions of asc and desc symbols
Me!cmdRevision.Caption = "Order by Revision"
Me!cmdCageCode.Caption = "Order by Cage Code"
Me!cmdA2CPCI.Caption = "Order by A2 CPCI Chassis"
Select Case intSortSelected
Case 1
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "ORDER BY Revision ASC, CageCode ASC, A2DrawingNumber ASC "
Me!cmdRevision.Caption = "^ Order by Revision ^"
Case 2
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "ORDER BY Revision DESC, CageCode ASC, A2DrawingNumber ASC "
Me!cmdRevision.Caption = "v Order by Revision v"
Case 3
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY CageCode, Revision, A2DrawingNumber "
strSQL = strSQL & "ORDER BY CageCode ASC, Revision ASC, A2DrawingNumber ASC "
Me!cmdCageCode.Caption = "^ Order by Cage Code ^"
Case 4
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY CageCode, Revision, A2DrawingNumber "
strSQL = strSQL & "ORDER BY CageCode DESC, Revision ASC, A2DrawingNumber ASC "
Me!cmdCageCode.Caption = "v Order by Cage Code v"
Case 5
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY A2DrawingNumber, Revision, CageCode "
strSQL = strSQL & "ORDER BY A2DrawingNumber ASC, Revision ASC, CageCode ASC "
Me!cmdA2CPCI.Caption = "^ Order by A2 CPCI Chassis ^"
Case 6
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY A2DrawingNumber, Revision, CageCode "
strSQL = strSQL & "ORDER BY A2DrawingNumber DESC, Revision ASC, CageCode ASC "
Me!cmdA2CPCI.Caption = "v Order by A2 CPCI Chassis v"
Case Else
strSQL = "SELECT Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "FROM A2CPCIChassisPL7447550 "
strSQL = strSQL & "GROUP BY Revision, CageCode, A2DrawingNumber "
strSQL = strSQL & "ORDER BY Revision ASC, CageCode ASC, A2DrawingNumber ASC "
Me!cmdRevision.Caption = "^ Order by Revision ^"
End Select
'Set row source for list box
Me!lstSearch.RowSource = strSQL
Me!lstSearch.Requery
Me!lstSearch.SetFocus
End Function
Private Sub cmdRevision_Click()
Dim response As Integer
If intSortSelected = 1 Then
intSortSelected = 2
Else
intSortSelected = 1
End If
response = basOrderby()
End Sub
Private Sub cmdCageCode_Click()
Dim response As Integer
If intSortSelected = 3 Then
intSortSelected = 4
Else
intSortSelected = 3
End If
response = basOrderby()
End Sub
Private Sub cmdA2CPCI_Click()
Dim response As Integer
If intSortSelected = 5 Then
intSortSelected = 6
Else
intSortSelected = 5
End If
response = basOrderby()
End Sub
By the way, I killed the ID field from the SQL, because as a unique primary key it makes every row distinct.