K,
Sorry about the earlier double-post.. The newsgroup told me that the first
one did not post properly, so I re-typed.
Looking back, I realize that I didn't answer your "ascending/descending"
question. Try this:
Private Sub lblNumber1_Click()
If InStr(Me.OrderBy, "fldNumber1 DESC") > 0 Then
Me.OrderBy = "fldNumber1"
Else
If InStr(Me.OrderBy, "fldNumber1") > 0 Then
Me.OrderBy = "fldNumber1 DESC"
Else
Me.OrderBy = "fldNumber1"
End If
End If
End Sub
If you have more than 2 or 3 column headings, put all of that in a
Sub/Function and call it from each OnClick:
Private Sub lblNumber1_Click()
'Changes sort order and shows/hides down arrow.
'lblNumber1Down would be a label that has only a "down arrow".
'I use Wingdings3 character 071 - Chr(113).
Me.lblNumber1Down.Visible = SetSort ("fldNumber1")
End Sub
....
Private Function SetSort (myFld as String) As Boolean
'Returns True if Descending sort, False if Ascending
'Bolds heading for called field. Turns off all Down arrows.
SetSort = False
If InStr(Me.OrderBy, myFld & " DESC") > 0 Then
Me.OrderBy = myFld
Else
If InStr(Me.OrderBy, myFld) > 0 Then
Me.OrderBy = myFld & " DESC"
SetSort = False
Else
Me.OrderBy = myFld
End If
End If
Me.lblNumber1.FontBold = myFld = "fldNumber1"
Me.lblNumber1Down.Visible = False 'This will be changed by calling
'event, if
necessary.
Me.lblNumber2.FontBold = myFld = "fldNumber2"
Me.lblNumber2Down.Visible = False
....
'Continue for each different heading.
End Function
Bruce