Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage Maximalwert ermitteln

Begonnen von Fast-Eddi, Dezember 07, 2022, 23:12:52

⏪ vorheriges - nächstes ⏩

Fast-Eddi

Hallo Gemeinde,

ich habe eine Mitgliederverwaltung, die wie folgt aufgebaut ist (exemplarisch nur, nicht exakt)
Mitgl_id (Mitglieds_ID primärer Schlüssel); Mitgl_Name; Mitgl_Eintritt (Datum); Mitgl_Austritt (Datum)

Aus einer anderen Tabelle kommt die Funktion (Vorstand, Getränkewart oder nur einfaches Mitglied).
Zusätzlich haben die Funktionen einen Level, wobei je höher der Level ist, das Mitglied in der Datenbank später mehr machen darf.
Ein Mitglied kann verschiedene Funktionen gleichzeitig haben.

fkt_id (Primärer Schlüssel); fkt_Mitgl_id_ref (Verweist auf die Mitglieds-id der Tabelle Mitglied Mitgl);fkt_Name; fkt_Level(ist eine Zahl);fkt_anfang (Datumswert); fkt_ende (Datumswert)

Nun habe ich schon mit einer Abfrage die Mitglieder innerhalb des aktiven Zeitraums, mit den zu dieser Zeit vorhandenen Funktionslevel gefiltert.

Die Abfrage bringt folgende Werte
Mitgl_id; fkt_Level

Jetzt kann ich in der Tabelle mehrmals die gleiche Mitgl_id, mit unterschiedlichen, oder auch gleichen Fkt_level bekommen. Wenn zum Beispiel das Mitglied 1. Vorsitzender ist und gleichzeitig Kassenwart, beides geschäftsführender Vorstand mit dem fkt_level 10. Oder Zusätzlich der Getränkewart mit der fkt_level 5.
Mich interessiert aber nur der höchste Wert fkt_Level, womit ich dann Berechtigungen innerhalb der Formulare realisieren kann.

Letztendliche Frage dazu:
Wie bekomme ich hier eine Liste als Ergebnis, wo jede Mitgl_id nur einmal vorkommt, mit der jeweiligen höchsten fkt_level Zahl?

MzKlMu

#1
Hallo,
um die Zusammenhänge richtig abzubilden und Dein Problem zu lösen braucht es 3 Tabellen die über Beziehungen (n:m Beziehung) verknüpft sein sollten.
Zeige also bitte mal ein Bild des Beziehungsfensters.
Gruß Klaus

Fast-Eddi

Das gibt es auch
Ich habe keine Ahnung, wie ich hier ein Bild eintragen kann.
Mitglieder sind über tbl_Mitglieder über das Feld Mitgl_id  mit der Tabelle
tbl_funkMtgl, dem Feld funkMtgl_Mitglieder_id_ref verbunden, das Feld funktMtgl_funktion_id_ref ist mit der Tabelle tbl_Funktion und dem Feld funktion_id verbunden. bei der Tabelle tbl_FunkMtgl gibt es noch Anfangs und Enddaten funkMtgl_Anfang und funkt_Mitgl_ende
Die dritte Tabelle tbl_Funktionsgruppennamen legt dann fest welchem Vorstand die Funktion zugehörig ist.
tbl_Funktionsgruppennamen fktgrname_id ist mit tbl_Funktionsgruppe Funktgrp_Fktgrpname_id_ref  verbunden
dort gibt es die Levelfunktion fktgrname_Level von 1 bis 10
Somit kann ein Mitglied zur gleichen Zeit verschiedene Funktonen mit verschiedenen Level haben.
Wenn das Mitglied sich angmeldet, reicht es einfach über vba zu überprüfen, welchen maximalen Level das Mitglied hat. Entsprechend wird dann für diese Funktionsgruppe, unterschiedliche Formulare aufgerufen.
Beim geschäftsführenden Vorstand kommt ein Formular inklusiv der Userverwaltung, beim Getränkewart das normale Formular mit Getränkeverwaltung, und beim normalen Mitglied nur das Verzerhformular.

Klar bin ich mit den Fragen auch unter anderen Foren unterwegs, da ich nicht ahnen kann wer wann wo unterwegs ist.

MzKlMu

Hallo,
ZitatIch habe keine Ahnung, wie ich hier ein Bild eintragen kann.
Wenn Du den Antwortbutton klickst und nach untern scrollst findest Du "Attachments and other options"
Hierüber kannst Du ein Bild anhängen.
ZitatKlar bin ich mit den Fragen auch unter anderen Foren unterwegs,
Das ist aber unerwünscht, kannst Du auch in den Foreneregeln nachlesen. Übrigens, im anderen Forum auch.
Gruß Klaus

Fast-Eddi

Zitat von: MzKlMu am Dezember 09, 2022, 17:14:28
ZitatKlar bin ich mit den Fragen auch unter anderen Foren unterwegs,
Das ist aber unerwünscht, kannst Du auch in den Foreneregeln nachlesen. Übrigens, im anderen Forum auch.
Wie kann es unerwünscht sein, wenn man sich um Hilfe bemüht? Schließlich geht es hier nicht um irgendwelche Auftragsvergaben?

Aber danke für den hinweis wie ich ein Foto anfügen kann

Fast-Eddi

Hier ist ein Screenshot der Beziehungen

PhilS

Zitat von: Fast-Eddi am Dezember 11, 2022, 20:03:36Wie kann es unerwünscht sein, wenn man sich um Hilfe bemüht? Schließlich geht es hier nicht um irgendwelche Auftragsvergaben?
Es ist unerwünscht, weil es dazu führen kann, dass sich jemand viel Arbeit macht, um dir in Forum A eine hilfreiche Antwort zu schreiben, die aber sinnlos ist, weil in Forum B bereits ...
  • jemand anders dasselbe geschrieben hat,
  • oder Zusatzinformationen vorhanden sind, mit denen der Ansatz als nicht problemlösend erkennbar wäre,
  • oder das Problem längst gelöst ist.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MzKlMu

Gruß Klaus

Fast-Eddi

Zum Crossposting muss ich sagen, dass mir es nicht bewusst war die anderen Foren miteinander zu verknüpfen. Aber nun ist es mir klar was damit gemeint ist, ist auch eine gute Sache den Link zum anderen Post zu hinterlegen.

Zu meiner Fragestellung, dies konnte ich mit einer Vereinfachung der Tabellen und einer Hilfstabelle dann zum Ergebnis bringen.
Zuerst habe ich in einer Hilfsabfrage alle zur Zeit gültigen Level abgefragt. Damit kamen verschiedene Zuordnungen einer Person zum Vorschein, da sie zu unterschiedlichen Zeiten vorhanden sind.
In der nächsten Abfrage habe ich die Zeiten nicht mehr eingebunden und somit konnte die Max Bedingung nur einen Wert (den höchsten) lokalisieren.

Zum Schluss hat mir hier die Fragestellung dennoch geholfen. Eure Tipps haben mich auf den richtigen Weg gebracht.
Manchmal braucht man nur einen kleinen Schubser in die richtige Richtung.

https://www.ms-office-forum.net/forum/showthread.php?p=2093153#post2093153

Fast-Eddi

Das allerdings, nachdem der hinweis auf das Crossposting hier kam, keine weitere Hilfe rauskam. Was mich dann doch wieder nicht so erfreut hatte. Ich denke sowas sollte dann auch kein Hindernis sein hilfe zu gewähren.
Dennoch schöne Grüße aus der Klingenstadt