August 11, 2022, 05:09:06

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Rangliste mit gleichen Siegerplätzen

Begonnen von joschi50, Juli 01, 2022, 13:56:41

⏪ vorheriges - nächstes ⏩

joschi50

Hallo,

ich habe eine Tabelle mit 12 Turnierteilnehmern.
Die Tabelle erhält eine Gesamtpunktzahl für jeden Teilnehmer.
Gesamtpunktzahlen können jedoch gleich sein, daher würden sich diese einen Ranglistenplatz teilen.
Mit welcher Funktion kann ich den Rang in die Tabelle schreiben so dass z.B. der erste Platz ggf. 2x vergeben wird, gefolgt von Platz 2,3,4....2x Platz 5 und dann 6,7,8....
Als Rang also
1. Müller
1. Maier
2. Bauer
3. Hausner
4. Kramer
5. Schmidt
5. Gruber
6....
7...
Hoffe ihr könnt helfen.

PhilS

Ich glaube FAQ 3.1 - 3.11 Laufende Nummer/Summe in Abfragen - könnte dir weiterhelfen, wenn du dich auf deine Punktzahl anstelle der ID in dem Beispiel beziehst.
Wenn du das unbedingt in eine Tabelle schreiben willst, was üblicherweise nicht nötig ist, verwendest du eine Anfügeabfrage anstelle einer Auswahlabfrage.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

joschi50

Eine vorläufige Gewinnerliste (Tabelle), in der die Teilnehmer sortiert nach Gesamtpunktzahl stehen, habe ich mit einer Anfügeabfrage ja schon erzeugt.
Ich möchte aber in dem Gewinnerbericht eine Plazierung ausweisen, die z.B. 2x den ersten Platz ermöglicht, gefolgt vom 2. Platz.


PhilS

Zitat von: joschi50 am Juli 01, 2022, 14:31:42Ich möchte aber in dem Gewinnerbericht eine Plazierung ausweisen, die z.B. 2x den ersten Platz ermöglicht, gefolgt vom 2. Platz.
Worin unterscheidet sich eine Platzierung denn von einer Nummerierung?

Die Mehrfachvergabe von einem Platz ergibt sich automatisch, wenn du keine eindeutige ID, sondern deine Punkte verwendest.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

joschi50

Also der Tip von DF6GL hat mir schon mal ein Stück weitergeholfen.
Den Code habe ich abgeändert.
Teilweise schon richtig. Allerdings ermittelt er jetzt folgende Rangliste siehe Tabelle.
4 x Platz 1 wäre richtig da gleiche Punktzahl
Die Funktion müsste dann aber als nächstes den Platz 2 und nicht den Platz 5 ermitteln.


Hier mein Code:
Dim Aktzahl, MerkRang, AktRang, DB As Database, RS2 As Recordset
  Set DB = CurrentDb()
  Set RS2 = DB.OpenRecordset("SELECT * FROM Gewinnerliste12 ", dbOpenDynaset)
  AktZeit = 0
  Do While Not RS2.EOF
    'If Aktzahl = RS2!Gesamtzahl Then AktRang = 0
    AktRang = AktRang + 1
    If Aktzahl <> RS2!Gesamtzahl Then MerkRang = AktRang
   
    Aktzahl = RS2!Gesamtzahl
    RS2.Edit
    RS2!Rang = MerkRang
    RS2.Update
   
    RS2.MoveNext
  Loop
  RS2.Close
  Me.Requery

joschi50

Sie dürfen in diesem Board keine Dateianhänge sehen.