Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: yannick-149 am Januar 03, 2012, 22:32:24

Titel: Formular für Benutzer-Gruppen verwalten
Beitrag von: yannick-149 am Januar 03, 2012, 22:32:24
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.

(http://s7.directupload.net/images/120103/temp/6357fqnp.png) (http://s7.directupload.net/file/d/2758/6357fqnp_png.htm)

Ich hoffe ihr könnt helfen.

Viele Grüße aus dem Norden,

Yannick

ich nutze Access 2003
Titel: Re: Formular für Benutzer-Gruppen verwalten
Beitrag von: Beaker s.a. am Januar 03, 2012, 23:04:45
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  (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
Titel: Re: Formular für Benutzer-Gruppen verwalten
Beitrag von: yannick-149 am Januar 03, 2012, 23:34:27
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
Titel: Re: Formular für Benutzer-Gruppen verwalten
Beitrag von: Beaker s.a. am Januar 04, 2012, 00:46:34
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