Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Sortieren mit Me.OrderBy

Begonnen von Don, November 10, 2022, 19:33:13

⏪ vorheriges - nächstes ⏩

Don

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

DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

#2
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
Gruß Klaus

Köbi

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

Köbi

Nun hast du die Qual der Wahl. :)

MzKlMu

@Köbi
Von Deinen 3 OrderByOn sind 2 zuviel.  ;D
Gruß Klaus

Beaker s.a.

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 Sub
gruss ekkehard

edit: Da waren andere schneller, und Klaus' Code ist wohl der kürzeste.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Köbi

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

Don

Super, vielen Dank Euch allen und schönes Wochenende
Don