Search Tools Links Login

DataGrid Sort


Visual Basic 6, or VB Classic

Sorts the records in a datagrid form when clicking on the column header. Toggles between ascending/descending sort order.

Original Author: Daniel Gaudin

Assumptions

I assume that the connection is established and that the recordset has been opened.
Besides that I would really appreciate your feedback. Let me know if you have other ideas on how to accomplish this. I'd specially like to know if there is a "nicer" alternative to the nested if-statement.

Side Effects

Not that I could see ;)

API Declarations

Dim WithEvents adoPrimaryRS As Recordset

Code

Private Sub grdDataGrid_HeadClick(ByVal ColIndex As Integer)
Dim strColName As String
Static bSortAsc As Boolean
Static strPrevCol As String

strColName = grdDataGrid.Columns(ColIndex).DataField

' Did the user click again on the same column ? If so, check
' the previous state, in order to toggle between sorting ascending
' or descending. If this is the first time the user clicks on a column
' or if he/she clicks on another column, then sort ascending.
If strColName = strPrevCol Then
  If bSortAsc Then
   adoPrimaryRS.Sort = strColName & " DESC"
   bSortAsc = False
  Else
   adoPrimaryRS.Sort = strColName
   bSortAsc = True
  End If
Else
  adoPrimaryRS.Sort = strColName
  bSortAsc = True
End If
  
strPrevCol = strColName
End Sub

About this post

Posted: 2002-06-01
By: ArchiveBot
Viewed: 205 times

Categories

Visual Basic 6

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.