Neuigkeiten:

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

Mobiles Hauptmenü

Formular für Benutzer-Gruppen verwalten

Begonnen von yannick-149, Januar 03, 2012, 22:32:24

⏪ vorheriges - nächstes ⏩

yannick-149

Hallo,

folgende Tabellen habe ich in einer Datenbank:
- "Benutzer" Tabelle aller Benutzer (Enthält ID (PK), Name, Vorname und Gruppe)
- "Gruppen" Tabelle aller Gruppen (Enthält Name und ID (Primärschlüssel))

Nun ist die Idee, die Benutzer einer Gruppe zuzuordnen, manche haben auch schon bereits eine. Dazu habe ich mir folgendes vorgestellt. In einem Formular möchte ich auf der linken Seite ein Listenfeld haben, welches ich einfach mit den Daten aus "Benutzer" füttere (Das ist einfach). Rechts soll aber ebenfalls ein Listenfeld sein, welches -durch eine Kombobox oben drüber gefiltert- ausschließlich mit den Benutzern der Gruppe gefüttert wird. Zwischen den beiden Listenfeldern sollen Buttons (hinzufügen und entfernen) sein, sodass ich Benutzer "hin-und-her-schieben" kann.

Es gibt also zweierlei Probleme:
1. Wie kann ich das Listenfeld "Gruppe" so filtern, dass nur die Benutzer der oben in der Kombobox ausgewählten Benutzer angezeigt werden.

2. Wie kann ich den Button "hinzufügen" so einrichten oder programmieren, dass der links (in der Gesamtübersicht) markierte Datensatz (Benutzer) so verändert wird, dass die Gruppe im Datensatz anschließend der Gruppe entspricht, die auch der rechts ausgewählten entspricht.

Um das etwas deutlicher zu machen, habe ich das einmal skizziert.



Ich hoffe ihr könnt helfen.

Viele Grüße aus dem Norden,

Yannick

ich nutze Access 2003

Beaker s.a.

Hallo Yannick,
ZitatWie kann ich das Listenfeld "Gruppe" so filtern, dass nur die Benutzer der oben in der Kombobox ausgewählten Benutzer angezeigt werden.
Schaust Du hier: http://www.donkarl.com?FAQ4.36
ZitatWie kann ich den Button "hinzufügen" so einrichten oder programmieren, dass der links (in der Gesamtübersicht) markierte Datensatz (Benutzer) so verändert wird, dass die Gruppe im Datensatz anschließend der Gruppe entspricht, die auch der rechts ausgewählten entspricht.
Dazu musst Du die ItemsSelected-Eigenschaft der Liste auslesen (siehe OH).
Und dann einen DS an die vermutlich existierende Zwischentabelle Benutzer/Gruppen anfügen.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

yannick-149

Hallo Ekkehard,

danke für deine Antwort.
1. klingt ja erst einmal relativ einfach, das werde ich morgen früh gleich einmal probieren und berichten.

2. Scheint auch Sinn zu machen. Hast Du da auch so ein schönes Beispiel wie beim ersten Punkt? Es gibt übrigens keine weitere Zwischentabelle, da ein Benutzer in nur genau einer Gruppe sein kann. Daher dachte ich, ist es weniger sinnvoll eine weitere Tabelle anzulegen, oder?

Gruß,
Yannick

Beaker s.a.

#3
Hallo Yannick,
Zitatklingt ja erst einmal relativ einfach, das werde ich morgen früh gleich einmal probieren und berichten.
Ja, ist es auch. Brauchst Du in Zukunft auch bestimmt noch öfter.
ZitatScheint auch Sinn zu machen. Hast Du da auch so ein schönes Beispiel wie beim ersten Punkt?
Leider nein, ...
ZitatEs gibt übrigens keine weitere Zwischentabelle, da ein Benutzer in nur genau einer Gruppe sein kann. Daher dachte ich, ist es weniger sinnvoll eine weitere Tabelle anzulegen, oder?
Ja, das ist richtig, und "vereinfacht" die Sache auch, weil
... Du in dem Fall ja nur das Feld mit der GruppenID ändern musst.
UPDATE Benutzer SET Gruppe=" & Me!DeinKombi.Value & " WHERE BenutzerID=" & Me!DeinListfeld.Column(NrDerSpalteMitBenutzerID
Voraussetzung: die gebundene Spalte im Kombi ist die GruppenID, sonst
... & Me!DeinKombi.Column(NrDerSpalteMitGruppenID) & ...

hth
gruss ekkehard

Noch vergessen:
Nach dem UPDATE musst Du die rechte Liste noch aktualisieren:
Me!DeineRechteListe.Requery
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)