PDA

Vollständige Version anzeigen : ----> In VBA!!! -> User aus Group löschen ohne User selbst löschen zu müssen?!?!?!?!?


YveX
02.10.2001, 08:43
Hi hi!
Ich hab da mal ne Frage (wie könnts auch anders sein)

Wie kann ich in VBA-code einen User aus einer Group löschen, ohne den User selber löschen zu müssen?!?!

Ich möchte per Klick einen User aus einem DropDown-Menu auswählen, und den dann (Group-Auswahl auch mit DropDown) in eine andere Gruppe setzen können!!

-> Geht bis jetzt alles, nur das löschen aus der ursprünglichen Gruppe funzt nicht! Was gibts da für ne Möglichkeit?! Oder gibts etwa keine?!

MfG
YveX

Manuela Kulpa
02.10.2001, 11:34
<font face="Verdana" size="2">Hallo YveX!

Klar gibt es da eine Lösung.

Die Eigenschaft Users ist eine Auflistung, die sämtliche momentan in der Arbeitsgruppe definierten Benutzernamen enthält. In derselben Weise steht die Eigenschaft Groups für die Namen sämtlicher Benutzergruppen. Konsequent geschieht die Definition und Verwaltung von Benutzern bzw. Gruppen über Veränderungen dieser beiden Objekte, die sich übrigens gegenseitig aufeinander beziehen: Die Gruppennamen lassen sich über das Objekt Groups als Teil von Users ansprechen und umgekehrt.

Das Entfernen eines Benutzers oder einer Gruppe verändert lediglich die Arbeitsgruppen-Informationsdatei, die in den Datenbanken gespeicherten Rechte des Users und der User an sich, bleiben unbeeinflusst.

Wie kannst du per VBA einen Benutzer löschen???

Die folgende Routine entfernt den Benutzer Peter aus der Gruppe Administratoren und prüft in einem ersten Schritt, ob Peter überhaupt ein Mitglied dieser Gruppe ist. Diese Prüfung geschieht sozusagen im Blindversuch: Die Prozedur setzt vorübergehend eine eigene Fehlerbehandlung ein und versucht dann, das Benutzerobjekt aus der Gruppe zu lesen. Wenn sich die Operation fehlerfrei durchführen lässt, ist der Benutzer ein Mitglied der Gruppe und wird nun über die Methode Delete entfernt. Weist die Jet dagegen die Zuweisung zurück, war der Benutzer von vornherein kein Mitglied der Gruppe: In diesem Fall gibt die Routine eine entsprechende Meldung aus:

slg</font>

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> RemoveUserFromGroup()

<span class="TOKEN">Dim</span> usrTmp <span class="TOKEN">As</span> DAO.User
<span class="TOKEN">Dim</span> sUser <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> sGroup <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> sTmp <span class="TOKEN">As</span> <span class="TOKEN">String</span>

sUser = "Peter"
sGroup = "Administratoren"

DBEngine.SystemDB = "C:\DeinPfadzurSystemDB\DeineSystem.mdw"

<span class="TOKEN">Set</span> usrTmp = DBEngine.Workspaces(0).Users(sUser)

<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
sTmp = usrTmp(sGroup).Name

<span class="TOKEN">If</span> sTmp = sGroup <span class="TOKEN">Then</span>
usrTmp.Groups.Delete sGroup
<span class="TOKEN">Else</span>
<span class="TOKEN">Debug.Print</span> "Benutzer " & sUser & " ist kein Mitglied der Gruppe " _
& sGroup
<span class="TOKEN">End</span> <span class="TOKEN">If</span>

<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>

Sascha Trowitzsch
02.10.2001, 13:51
Hi Manuela,

(Zusatzfrage :)
ich hab bisher noch nicht kapiert, wieso es einerseits eine Groups-Auflistung im User gibt, andererseits eine User-Auflistung in einer Group.
Man sollte meinen, die entsprechenden Items seinen die gleichen, dem ist aber nicht so!
Entferne ich also die Gruppe aus dem User, so kann nach meiner Erfahrung trotzdem der User noch in der Group.Users-Auflistung vorkommen und umgekehrt.
Was hat denn das für einen Sinn?
Ich hab es bisher so interpretiert, das die Gruppenberechtigungen dann greifen, wenn sowohl der User Mitglied der Gruppe ist, wie auch die Gruppe Mitglied (?) des Users.

Am I Right?

Ciao, Sascha

Manuela Kulpa
02.10.2001, 14:00
<font face="Verdana" size="2">Hallöchen Sascha!

Soll ich dich jetzt wirklich kurz vorm Feiertag verwirren *fg*, wenn's magst schreibe ich dir mal auf, was Dan Haught und Jim Ferguson dazu meinen! Wenn ich ehrlich bin, nehme ich das so hin, wie die das schreiben und denke einfach nicht darüber nach, lol!

Ich gestehe, es ist schlichtweg einfach nur labyrinthisch :)

Liebe Grüße</font>

Sascha Trowitzsch
02.10.2001, 16:21
Schön, wenn ich morgen Feiertag hätte... :-(

Dan Haught un Jum Ferguson? Ok, das finde ich dann selbst.

Thanx, Sascha

Manuela Kulpa
02.10.2001, 16:25
<font face="Verdana" size="2">Hi Sascha,

wie kein Feiertag, mein Mitgefühl sei dir gewiss! Falls du es nicht findest, melde dich.

vg</font>