In Access Listenfelder sortieren

In vielen Windows-Anwendungen lassen sich Listen und Tabellen durch das Anklicken der Spaltenüberschrift sortieren. Diese Möglichkeit bieten die Listenfelder von Access leider nicht. Ich verwende in meinen Formularen oft mehrspaltige Listenfelder und suche bislang vergeblich nach einer Eigenschaft oder Methode, um die Liste nach einer bestimmten Spalte zu sortieren. Wissen Sie, wie ich zum Beispiel eine Artikelliste zur Laufzeit wahlweise nach Artikelnummern, Namen oder Preisen sortieren kann?

Eine Eigenschaft oder Methode gibt es dafür leider nicht. Wie die Liste sortiert ist, hängt von der Datenquelle ab. Die Sortierung der Tabelle oder Abfrage, auf der das Steuerelement basiert, bestimmt auch die Sortierung der Liste. Hier deutet sich die Lösung an: Verwenden Sie drei verschiedene Abfragen als Datenquelle für das Steuerelement, die sich lediglich durch die Sortierung unterscheiden. Durch die Zuordnung der entsprechend sortierten Abfrage wird dann auch das Listenfeld neu sortiert.
Angenommen, daß Ihre Artikelliste die Felder Nummer, Name und Preis enthält. Legen Sie dafür drei Abfragen mit derselben Feldauswahl an. Sortieren Sie eine Abfrage nach Nummern, eine nach Namen und eine nach Preisen und speichern die Abfragen mit entsprechend deutlichen Namen wie Artikel nach Nummer, Artikel nach Name und Artikel nach Preis.
Definieren Sie dann im Formular drei Schaltflächen als Spaltenüberschrift oberhalb des Listenfeldes, das hier den Namen lstArtikel trägt. Jede Schaltfläche ordnet dem Listenfeld die entsprechend sortierte Abfrage als Datenquelle zu. Der Code für die Schaltfläche Nummer sieht beispielsweise so aus:

Me!lstArtikel.RowSource =  äArtikel nach Nummerô
Nach der Zuordnung der neuen Abfrage zeigt das Listenfeld dieselben Daten mit der neuen Sortierung an. Eine Umsetzung des Tips finden Sie in der Datei LISTSORT.MDB auf der WIN-Monats-CD und in den WIN-Online-Foren.