Es kann vorkommen, dass Sie Daten nicht nach alphabetischer oder numerischer Reihenfolge, sondern nach benutzerdefinierter Reihenfolge (auch als benutzerdefinierte oder logische Reihenfolge bezeichnet) sortieren möchten. Beispielsweise ist das Sortieren von Wochentagen so, dass der Montag zuerst angezeigt wird, sinnvoller als das Sortieren in alphabetischer Reihenfolge, wobei Freitag zuerst angezeigt wird. Sie können Daten in der Datenblattansicht einer Tabelle oder Abfrage oder in der Formularansicht eines Formulars sortieren.
Inhalt dieses Artikels
Sortieren einer kleinen, begrenzten Anzahl eindeutiger Feldwerte
In diesem Verfahren schreiben Sie einen Ausdruck, der die IIf-Funktion verwendet, um die Titel von Mitarbeitern zu bewerten.
Erstellen Sie zunächst eine Tabelle, die drei Felder enthält: Title, FirstName und LastName. Geben Sie im Feld Titel die folgenden Werte für vier neue Datensätze ein:
-
Inside Sales Coordinator
-
Vertriebsleiter
-
Sales Representative
-
Vice President, Vertrieb
Geben Sie in den Feldern FirstName und LastName der vier Datensätze alle gewünschten Namen ein.
-
Öffnen Sie nun die Tabelle in der Datenblattansicht.
-
Klicken Sie auf der Registerkarte Start in der Gruppe Sortieren und Filtern auf Erweitert und dann im Kontextmenü auf Spezialfilter/-sortierung.
-
Fügen Sie dem Raster die gewünschten Felder wie FirstName, LastName und Title hinzu.
-
Klicken Sie mit der rechten Maustaste auf die Zeile Feld in der ersten leeren Spalte, klicken Sie auf Zoom, und geben Sie dann den folgenden Ausdruck ein:
IIf ([Title] = "Vice President, Sales", 1, IIf ([Title] = "Sales Manager", 2, IIf ([Title] = "Sales Representative", 3, IIf ([Title] = "Inside Sales Coordinator", 4, 5))))
Title ist der Name des Felds, das die Werte enthält, die bewertet werden. Die in Anführungszeichen eingeschlossenen Werte sind die einzelnen Werte, die im Feld gespeichert sind. Der folgende numerische Wert ist der ihm zugewiesene Rang. Der vorherige Ausdruck weist vier verschiedenen Titeln die Ränge 1 bis 4 und allen anderen Rang 5 zu. Wenn Sie die Sortierung durchführen, wird den Titeln, die in diesem Ausdruck nicht erwähnt werden, der gleiche Rang zugewiesen (5).
-
Klicken Sie in der Zeile Sortieren für die Spalte, die den Ausdruck enthält, auf Aufsteigend.
-
Klicken Sie auf der Registerkarte Start in der Gruppe Sortieren und Filtern auf Filter ein/aus.
Die Funktion IIf gibt den numerischen Wert zurück, der dem Wert im Feld Titel entspricht. Wenn der Wert im Feld Titel z. B. Sales Manager ist, ist die zugewiesene Zahl 2. Wenn im Feld Titel ein Wert vorhanden ist, der nicht als Argument in der Funktion aufgeführt ist – z. B. District Coordinator –, wird ihm die Zahl 5 zugewiesen. Die Abfrage sortiert diese Zahlen dann in aufsteigender Reihenfolge.
Sortieren einer großen Anzahl eindeutiger Feldwerte
Wenn Sie über eine große Anzahl von Werten verfügen, besteht eine bessere Möglichkeit zum Sortieren von Daten darin, eine Nachschlagetabelle zu erstellen.
Angenommen, die Tabelle Employees bezieht sich auf mehr als 50 verschiedene Titel. Sie müssen zunächst eine Nachschlagetabelle erstellen und die vorhandene Tabelle vorbereiten, um die neue Tabelle nachzuschlagen. Anschließend verknüpfen Sie die beiden Tabellen und erstellen eine Abfrage.
Erstellen einer Nachschlagetabelle und Ändern der vorhandenen Tabelle
-
Erstellen Sie eine neue Nachschlagetabelle, in der die Titel gespeichert werden. Nennen Sie die Tabelle tblTitles, und legen Sie die Felder auf die Datentypen fest, die in Klammern angegeben sind, wie in der folgenden Tabelle gezeigt:
TitleID
(AutoWert)Titel
(Text)1
Vice President, Vertrieb
2
Vertriebsleiter
3
Sales Representative
4
Inside Sales Coordinator
-
Legen Sie das Feld TitleID als Primärschlüssel fest.
-
Ändern Sie die Tabelle Employee so, dass sie die Tabelle tblTitles nachschlagen kann.
-
Ändern Sie in der Entwurfsansicht den Namen des Felds Titel in TitleID.
-
Ändern Sie in der Spalte Datentyp den Datentyp in Zahl.
-
-
Ändern Sie auf der Registerkarte Allgemein unter Feldeigenschaftenfeldgröße in Long Integer.
-
Speichern Sie die Tabelle, und ignorieren Sie die Warnung zum Verlust von Daten.
-
Zur Datenblattansicht wechseln.
-
Füllen Sie die Spalte Titles mit dem TitleID-Wert, der dem Titelwert entspricht.
Geben Sie z. B. für Datensätze, bei denen der Titelwert Sales Manager ist, 2 ein. Geben Sie für Vertriebsmitarbeiter den Wert 3 ein.
-
Speichern und schließen Sie die Tabelle.
Verknüpfen der beiden Tabellen
-
Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Beziehungen auf Beziehungen.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Beziehungen auf Tabellen hinzufügen (oder Tabellen in Access anzeigen).
-
Wählen Sie tblTitles und Employees aus, und klicken Sie auf Hinzufügen , um sie dem Fenster Beziehungen hinzuzufügen. Schließen Sie das Dialogfeld Tabelle anzeigen.
-
Ziehen Sie das Feld TitleID aus der Tabelle tblTitles in das Feld TitleID in der Tabelle Employees.
Das Dialogfeld Beziehungen bearbeiten wird geöffnet.
-
Stellen Sie sicher, dass die in den beiden Spalten angezeigten Feldnamen sowohl TitleID sind als auch, dass im Feld Beziehungstyp1:n angezeigt wird. Sie können die Feldnamen bei Bedarf ändern.
-
Aktivieren Sie das Kontrollkästchen Mit referenzieller Integrität.
-
Klicken Sie auf Erstellen, um die Beziehung zu erstellen.
Das Dialogfeld Beziehungen bearbeiten wird geschlossen und speichert die Änderungen.
-
Schließen Sie die Registerkarte Beziehungen .
Erstellen einer Abfrage
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.
-
Klicken Sie im Dialogfeld Tabellen hinzufügen (Tabelle in Access anzeigen ) auf die Registerkarte Tabellen , doppelklicken Sie auf Mitarbeiter, und doppelklicken Sie dann auf tblTitles.
-
Fügen Sie die Felder EmployeeID, LastName und FirstName aus der Tabelle Employees und das Feld Title aus der Tabelle tblTitles dem Abfrageentwurfsraster hinzu.
-
Zur Datenblattansicht wechseln.