August 15, 2020, 06:38:35

Neuigkeiten:

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


Listenfeld per vba sortieren

Begonnen von pmmuc, August 01, 2020, 16:01:41

⏪ vorheriges - nächstes ⏩

pmmuc

Hallo,
ich habe ein Listenfeld und möchte dieses durch drücken eines Button z.B. nach Namen aufsteigend sortieren.
Dazu habe ich folgenden vba Code:

Private Sub cmdNachNameSortieren_Click()
    Me.OrderBy = "EveBezeichnung"
    Me.OrderByOn = True 
    Me.lstEventAuswahl.Requery
End Sub

EveBezeichnung ist die betreffende Spalte im Listenfeld lstEventAuswahl

Ergebnis: es tut sich absolut nichts.
Seit Stunden probiere ich nun rum und komme nicht weiter.
Kann mir jemand einen Tip geben.
Gruß
pmmuc

MzKlMu

Hallo,
das ist Code um ein Formular (Me ist das Formular) zu sortieren, damit kann man kein Listenfeld (um)sortieren.
Du musst dem Listfeld eine anderst sortierte Datenquelle zuweisen.
Wie lautet die Datenherkunft des Listenfeldes?
Wenn das eine Tabelle ist, erstelle eine Abfrage und dann zeigst Du den SQL Code der Abfrage.

Warum sortierst Du das Listenfeld nicht gleich richtig sondern erst durch einen Button ?
Gruß
Klaus

ebs17

Zitates tut sich absolut nichts
Nun, das Listenfeld kümmert es nicht, wenn Du eine Sortieren-Anweisung an ein Formular schickst. Warum auch.
Mit freundlichem Glück Auf!

Eberhard

pmmuc

Vielen Dank für Eure schnellen Antworten.
Button brauche ich, da es davon mehrere gibt und bei jedem Button anders sortiert wird.
Wenn ich das richtig verstehe, muss ich für jede Sortierung (sprich für jeden Button) eine eigene Abfrage erstellen und den jeweiligen SQL-Code aus der Abfrage in die Programmierung einbinden.
Da ich mit SQL bisher nichts gemacht habe, könnt Ihr mir evtl. noch einen Hinweis geben, wie ich den SQL-Code in mein VBA einbinden muss.
Gruß
pmmuc

MzKlMu

Hallo,
Zitatmuss ich für jede Sortierung (sprich für jeden Button) eine eigene Abfrage erstellen
Nein, Du kannst dem Listenfeld direkt eine anderes SQL Anweisung mitgeben ind der die gewünschte Sortierung eingestellt wird.
Daher fragte ich ja nach der Datenherkunft des Listenfeldes, hast Du aber nicht beantwortet.
Gruß
Klaus

pmmuc

Das hört sich sehr gut an.
Der Herkunftstyp ist eine Tabelle und die Datensatzherkunft ist aktuell
SELECT tblEvent.EventID, tblEvent.EveDatum, tblEvent.EveBezeichnung FROM tblEvent

Gruß
pmmuc

MzKlMu

Hallo,
so:
Private Sub cmdNachNameSortieren_Click()
    Me.lstEventAuswahl.RowSource = "SELECT EventID, EveDatum, EveBezeichnung FROM tblEvent ORDER BY EveBezeichnung"
End Sub
Gruß
Klaus

pmmuc

Super, Danke,
genau das hat mir gefehlt, funktioniert einwandfrei

Gruß
pmmuc