Reihenfolge individuell einstellen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

In der Regel sorgen Sortierungen nach dem Inhalt bestimmter Felder für die richtige Reihenfolge bei der Anzeige von Daten. Es gibt jedoch Ausnahmen, bei denen Sie ein individuelles Kriterium für die richtige Sortierung benötigen. Dazu fügen Sie einer Tabelle ein eigenes Feld hinzu und füllen dieses mit entsprechenden Zahlenwerten. Wie aber ändert man die Reihenfolge komfortabel Die Antwort liefert der vorliegende Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1301_ReihenfolgeIndividuellEinstellen.mdb.

Individuelle Reihenfolge

Wenn Sie beispielsweise Kunden in einer Kundenliste nach der Beliebtheit sortieren möchten, können Sie diese Sortierung über entsprechende Werte in einem Feld namens ReihenfolgeID vorgeben. Um die Datensätze eindeutig zu sortieren, darf dieses Feld nur eindeutige Werte aufnehmen – also beispielsweise die Zahlen von 1 bis n. Dazu stellen Sie die Eigenschaft Indiziert des Feldes ReihenfolgeID auf den Wert Ja (Ohne Duplikate) ein (siehe Bild 1).

Hinzufügen eines Feldes für die Definition einer individuellen Reihenfolge

Bild 1: Hinzufügen eines Feldes für die Definition einer individuellen Reihenfolge

Nun weisen Sie allen Datensätzen einen der Beliebtheit entsprechenden Zahlenwert zu und sortieren diese nach dem Feld ReihenfolgeID. Das Feld ReihenfolgeID erhält einen numerischen Datentyp und sollte den gleichen Wertebereich wie das Primärschlüsselfeld der Tabelle enthalten. Das ist grundsätzlich die Lösung für eine individuelle Sortierung. Allerdings ist diese nicht besonders komfortabel: Wer will schon manuell die Zahlenwerte für die Reihenfolge von Datensätzen eintragen

Wenn Sie beispielsweise den zehnten Eintrag einer Liste an die erste Stelle verschieben möchten, legen Sie für das Feld Reihenfolge des zu verschiebenden Datensatzes den Wert 1 ein. Der Datensatz, der bislang den Wert 1 im Feld Reihenfolge enthielt, bekommt die 2, der mit der 2 die 3 und so weiter.

Wenn Sie einen eindeutigen Index für das Feld ReihenfolgeID festgelegt haben, wird es noch komplizierter – Sie müssen dann für das zu verschiebende Element temporär einen neuen Wert festlegen (zum Beispiel 999 oder einfach einen Wert, der um eins größer als der bislang größte Wert ist), dann dem neunten Datensatz den Wert 10, dem achten den Wert 9 und so weiter zuweisen, bevor der zehnte Datensatz den Wert 1 im Feld ReihenfolgeID erhält (siehe Bild 2).

änderungen im Feld ReihenfolgeID beim Verschieben des zehnten Eintrags an die erste Position

Bild 2: änderungen im Feld ReihenfolgeID beim Verschieben des zehnten Eintrags an die erste Position

Was aber ist nun der Unterschied zwischen dem Reihenfolge-Feld und anderen Feldern, nach denen Sie Datensätze sortieren – beispielsweise Preis, Gewicht et cetera Ganz klar: Das Reihenfolge-Feld hat, genau wie in vielen Fällen das Primärschlüsselfeld einer Tabelle, nur eine einzige Aufgabe – und die dient nicht dem Speichern von Geschäftsdaten. Sondern – in diesem Fall – dem Festhalten einer allein vom Benutzer definierten Reihenfolge. Im Gegensatz dazu hat das Primärschlüsselfeld meist einzig und allein die Aufgabe, einen Datensatz eindeutig zu kennzeichnen. Manchmal hat der Primärschlüsselwert auch noch andere Aufgaben und dient beispielsweise als Kundennummer oder Artikelnummer.

Sortieren der Datensätze nach der Reihenfolge

Zum Sortieren der Datensätze nach den Werten des Feldes ReihenfolgeID benötigen Sie eine Abfrage. Diese heißt qryKundenNachReihenfolgeID und enthält zu Beispielzwecken nur einige wenige Felder der als Datenherkunft dienenden Tabelle – darunter natürlich das Feld ReihenfolgeID und, zur fixen eindeutigen Identifizierung, das Feld KundeID. Für das Feld ReihenfolgeID legen Sie die aufsteigende Sortierung fest (siehe Bild 3). Auf diese Weise sortiert die Tabelle das Ergebnis der Abfrage allein nach dem Wert des Feldes ReihenfolgeID.

Abfrage zur Sortierung der Kunden nach dem Wert des Feldes ReihenfolgeID

Bild 3: Abfrage zur Sortierung der Kunden nach dem Wert des Feldes ReihenfolgeID

Reihenfolge komfortabel einstellen

Wie bereits erwähnt, werden Sie die Reihenfolge nicht durch manuelles Anpassen der Werte des Feldes ReihenfolgeID einstellen wollen. Deshalb erstellen Sie nun ein Formular, das die Datensätze der Tabelle tblKunden in einem Listenfeld anzeigt und einige Steuerelemente enthält, um die Position des aktuell markierten Datensatzes anzupassen. Später zeigen wir noch die Anpassung der Reihenfolge für die in einem Unterformular in der Datenblattansicht angezeigten Daten an.

Das Listenfeld im Formular frmReihenfolgeImListenfeld enthält die Abfrage qryKundenNachReihenfolgeID als Datenherkunft. Listenfelder sollen normalerweise nicht die Werte des Primärschlüsselwertes anzeigen, aber in diesem Fall schon – dies erleichtert die Prüfung, ob die nachfolgend hinzugefügten Schaltflächen zum Anpassen der Reihenfolge funktionieren. Geben Sie dazu den Wert 2 für die Eigenschaft Spaltenanzahl und 1cm für die Eigenschaft Spaltenbreiten ein (siehe Bild 4). Dadurch wird die erste Spalte mit einer Breite von einem Zentimeter angezeigt, die zweite Spalte nimmt die restliche Breite ein. Wie ändern wir nun die Reihenfolge Es gibt mehrere Möglichkeiten. Wenn Sie für andere Benutzer programmieren, sollten Sie eine offensichtliche Variante verwenden – also beispielsweise entsprechende Schaltflächen. Das Betätigen dieser Schaltflächen wirkt sich immer auf den jeweils markierten Datensatz aus. Die Schaltflächen sollen die folgenden Funktionen ermöglichen:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar