Listenfelder in Access per Mausklick sortieren

In der Ausgabe 9/97 behandelte WIN das Problem von Herrn Ollig. Er wollte Listenfelder in Access-Formularen per Mausklick auf die Spaltenüberschrift sortieren. Der Rat war, Abfragen mit unterschiedlicher Sortierung anzulegen und Schaltflächen als Spaltenüberschriften zu verwenden. Das Anklicken einer Schaltfläche ordnet dem Listenfeld dann die entsprechend sortierte Abfrage als Datenherkunft zu, um die Liste so zu sortieren.
WIN-Leserin Gisela Zachmeier schlägt dafür nun eine andere Lösung vor. Die setzt zwar einige SQL-Kenntnisse voraus, fällt dafür aber auch eleganter aus. Der Auslöser für diesen neuen Weg ist die unübersichtliche Vielzahl an Abfragen bei vielen Access-Anwendungen. Wer in größeren Datenbanken jede Abfrage mehrfach mit unterschiedlichen Sortierungen speichert, verliert im Register Abfragen des Datenbankfensters schnell den Durchblick.
Frau Zachmeier schlägt daher vor, nicht den Namen einer Abfrage als Datenquelle anzugeben, sondern gleich die entsprechenden SQL-Befehle als RowSource-Eigenschaft zu übergeben. Das Click-Ereignis der Schaltfläche und Spaltenüberschrift Name sieht dann so aus:

Me!lstArtikel.RowSource =  äSELECT  [Artikel-Nr], Artikelname, Einzelpreis FROM Artikel ORDER BY Artikelnameô¶
Im Click-Ereignis der Schaltfläche Preis ändert sich dagegen lediglich die Order By-Klausel des SQL-Befehls:
Me!lstArtikel.RowSource =  äSELECT  [Artikel-Nr], Artikelname, Einzelpreis FROM Artikel ORDER BY Einzelpreisô¶
Wer sich noch nicht so gut mit SQL auskennt, kann die Abfragen zuerst mit dem Designer anlegen. Hinter jeder Abfrage steckt nämlich auch nur ein SQL-Befehl, den Sie mit dem Befehl Ansicht – SQL bearbeiten können. Aus dieser SQL-Ansicht können Sie das SQL-Kommando über die Zwischenablage in Ihr VBA-Programm kopieren. Achten Sie dabei jedoch darauf, alle Semikola und Zeilenumbrüche zu entfernen.