Hallo zusammen,
ich habe mal wieder eine Frage. Ich habe in einem Endlosformular einen Button der das Feld Region aufsteigend sortiert:
Private Sub Sortieren_Region_Click()
Me.OrderBy = "Region"
Me.OrderByOn = True
End Sub
Das klaptt soweit.
Jetzt würde ich gerne den Button so programmieren, daß bei einem weiteren Klick absteigend sortiert wird. Beim dritten Klick aufsteigend also immer abwechselnd. Geht das? Wenn ja wie? Vielen Dank schon mal an die Gurus
VG
Don
Hallo,
etwa so:
Private Sub Sortieren_Region_Click()
If Instr(Me.OrderBy,"desc") then
Me.OrderBy = "Region asc"
Else
Me.OrderBy = "Region desc"
End IF
Me.OrderByOn = True
End Sub
Hallo,
oder so:
Private Sub Sortieren_Region_Click()
If Me.OrderBy = "Region desc" Then
Me.OrderBy = "Region"
Else
Me.OrderBy = "Region desc"
End If
OrderByOn = True
End Sub
Hatte es fertig und da wird auch gepostet. ;D
DF6GL hat die Antwort eigentlich schon gegeben. Meine Version:
Private Sub Sortieren_Region_Click()
If Screen.ActiveControl.Value = -1 Then
Me.OrderBy = "Region"
Me.OrderByOn = True
Else
Me.OrderBy = "Region" & " DESC"
Me.OrderByOn = True
End If
Me.OrderByOn = True
End Sub
Nun hast du die Qual der Wahl. :)
@Köbi Von Deinen 3 OrderByOn sind 2 zuviel. ;D
Hallo Don,
Steuerelemente besitzen ein Eigenschaft "Marke" (Eigenschaftenfenster - Andere).
In VBA heisst diese Eigenschaft "Tag".
Da hinein schreibst du "ASC" (ohne die "").
Private Sub Sortieren_Region_Click()
With Me
Select Case .Sortieren_Region.Tag
Case "ASC"
.OrderBy = "Region" & " " & .Sortieren_Region.Tag
.Sortieren_Region.Tag = "DESC
Case "DESC"
.OrderBy = "Region" & " " & .Sortieren_Region.Tag
.Sortieren_Region.Tag = "ASC
End Select
.OrderByOn = True
End With
End Subgruss ekkehard
edit: Da waren andere schneller, und Klaus' Code ist wohl der kürzeste.
Hallo Klaus
ZitatVon Deinen 3 OrderByOn sind 2 zuviel.
Ja, das sehe ich jetzt auch so. Weiss der Hühnervogel, was ich dabei studiert habe. ;D
Gruss, Köbi
Super, vielen Dank Euch allen und schönes Wochenende
Don