Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Sowohl im Sport als auch in anderen Bereichen des Lebens gibt es die Anzeige von Daten nach bestimmten Werten – Tabellenstände, Rennergebnisse, Wahlergebnisse und so weiter. Dabei kann es vorkommen, dass zwei oder mehr Einträge in dem Feld, nach dem sortiert werden soll, genau den gleichen Wert enthalten. Gibt es eine Angabe der Platzierung, soll diese dann möglichst für all diese Einträge gleich lauten. In manchen Situationen ist es sogar sinnvoll, die Platzierung dann nur für den ersten Eintrag anzuzeigen und diese für die übrigen Einträge leer zu lassen. Wie das gelingt, zeigen wir im vorliegenden Beitrag.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 2201_GleicheWerteInReihenfolge.accdb.
Beispieltabelle
Wir wählen ein einfaches Beispiel wie in der Tabelle aus Bild 1. Hier sehen wir ein Primärschlüsselfeld namens ErgebnisID, ein Feld mit dem Namen des Teilnehmers und eines mit dem Ergebnis, nach dem wir sortieren wollen.
Bild 1: Beispieltabelle für die Platzierungen
Sortieren der Datensätze
Das Sortieren der Datensätze nach dem Wert im Feld Ergebnis in absteigender Reihenfolge könnten wir direkt in der Tabelle erledigen, aber wir wollen dies in einer neuen Abfrage durchführen. So können wir später ein Feld zur Ausgabe der Platzierung hinzufügen, was in einer Tabelle nicht möglich ist.
Dieser Abfrage namens qryErgebnisse fügen wir in der Entwurfsansicht die Tabelle tblErgebnisse hinzu. Wir ziehen die beiden Felder Teilnehmer und Ergebnis in das Entwurfsraster des Abfrageentwurfs.
Dabei stellen wir für das Feld Ergebnis die Sortierung auf Absteigend ein (siehe Bild 3).
Bild 2: Abfrage mit den Platzierungen
Das Ergebnis nach dem Wechsel in die Datenblattansicht liefert schon einmal die richtige Reihenfolge (siehe Bild 2). Nun müssen wir nur noch ein Feld mit der Angabe der Platzierung hinzufügen.
Bild 3: Abfrage mit korrekter Reihenfolge, aber ohne Angabe der Platzierung
Platzierung zur Abfrage hinzufügen
Nun stellen wir der Abfrage ein weiteres Feld voran, dass einfach nur die Platzierung anzeigen soll. Wie aber gestalten wir dieses Wir nutzen die Funktion DCount, um für das aktuelle Element die Anzahl der Datensätze zu ermitteln, deren Wert im Feld Ergebnis größer ist als das für den aktuellen Datensatz. Zu diesem Wert addieren wir noch den Wert 1 hinzu. Daraus resultiert der folgende Ausdruck:
Platz: DomAnzahl("Ergebnis";"tblErgebnisse";"Ergebnis>" & [Ergebnis])+1
Diesen arbeiten wir wie in Bild 4 in den Abfrageentwurf ein.
Bild 4: Feld zum Ermitteln der Platzierung
Wenn wir unsere Daten ansehen, finden wie beispielsweise für den ersten Datensatz keinen, dessen Wert im Feld Ergebnis größer ist als der aktuelle Wert, also 10. Beim zweiten Datensatz mit dem Ergebnis 9 gibt es einen Datensatz, nämlich den mit dem Ergebnis 10, der größer ist. Also wird dort die Anzahl 1 plus 1 in das Feld Platz eingetragen. Das Gleiche gilt für den dritten Datensatz, der zwar den gleichen Wert wie der zweite Datensatz hat, aber auch für diesen gibt es nur einen Datensatz, dessen Wert im Feld Ergebnis größer ist – also folgt auch hier der Wert 2 für das Feld Platz.
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