HCL Notes / Domino / Diverses > Administration & Userprobleme
Mitglieder einer Verteilergruppe per VBA auslesen? Notes 9.0.1FP8
big-boot:
Hallo zusammen,
wir arbeiten mit vielen Gruppen und die Pflege ist etwas desolat organisiert.
Daher würde ich gerne die Mitglieder einer Gruppe per VBA auslesen und diese dann in einer vorhandenen Access-DB weiter verarbeiten.
Besteht da eine Möglichkeit?
LG
big-boot
CarstenH:
Beispiel, wie man per VBA die Gruppenmitglieder "Members" der Gruppe "Test" aus dem persönlichen Adressbuch des aktiven Notes-Benutzers auslesen kann. Das Script habe ich mit den aktuellen Versionen von Access (Version 2210 Build 16.0.15726.20188 64 Bit) und Notes (12.0.2FP2 32 Bit) getestet. Es sollte aber auch unverändert mit älteren Notes-Versionen, wie bei dir 9.x, funktionieren.
--- Code: ---Sub Test()
Dim session As Object
Dim dbAdr As Object
Dim vwGroups As Object
Dim docGroup As Object
Set session = CreateObject("Notes.NotesSession")
'Call session.Initialize
Set dbAdr = session.GetDatabase("", "names.nsf")
Set vwGroups = dbAdr.GetView("($VIMGroups)")
Set docGroup = vwGroups.GetFirstDocument
While Not (docGroup Is Nothing)
If docGroup.GetFirstItem("ListName").Text = "Test" Then
MsgBox docGroup.GetFirstItem("Members").Text
'Else
' MsgBox docGroup.GetFirstItem("ListName").Text
End If
Set docGroup = vwGroups.GetNextDocument(docGroup)
Wend
Set session = Nothing
End Sub
--- Ende Code ---
HTH
Carsten
Edit: nachdem ich nochmal in einem anderen Zusammenhang etwas kontrollieren musste habe ich festgestellt, dass ich das 64-Bit Office installiert habe. Es funktioniert spannenderweise also auch übergreifend mit 64-Bit Office und 32-Bit Notes.
big-boot:
Hallo Carsten,
funktioniert bestens. Nun ist es so dass die Gruppen zentral in einem Adressbuch gepflegt werden.
Wie könnte man das anstellen?
Ich stelle mir das so vor...
--- Code: ---Set dbAdr = session.GetDatabase("", "server00/.../adrbuch.nsf")
--- Ende Code ---
Funktioniert aber so nicht...
Würde das auch irgendwie funktionieren wenn ich den Pfad zu dem zentralen Adressbuch kenne?
Danke vorab.
Gruß BB
CarstenH:
Die Methode GetDatabase der NotesSession-Class hat zwei Parameter, der erste ist der Server, der zweite der relative Pfad inkl. Dateiname der Datenbank um die es geht. Beim Server reicht meist schon der allgemeine Name, also der Teil links vom ersten Slash. In meinem Beispiel lag das Adressbuch lokal, also auf keinem Server, daher habe ich den Parameter leer gelassen.
--- Code: ---Set dbAdr = session.GetDatabase("server00", "adrbuch.nsf")
--- Ende Code ---
Am besten schaust du dir mal die Scriptklassen an, das ist ähnlich wie VBA aufgebaut und sollte dir weiterhelfen, die Beispiele sind meist selbsterklärend.
https://help.hcltechsw.com/dom_designer/12.0.2/basic/H_GETDATABASE_METHOD.html
Etwas aufpassen musst du bei den Datentypen und Variablen, hier gibt es so einige Unterschiede, wenn man per VBA zugreift.
Und last but not least - Notes ist ein völlig anderes Konstrukt als Access, auch wenn es bei beiden Datenbanken, Formulare und Views gibt und man als Laie der Versuchung erliegen kann, es gleichzusetzen.
HTH
Carsten
big-boot:
Hallo Carsten,
genial. So funktioniert es wie ich es brauche.
Damit kann ich mir die User alle ausgeben und in eine Tabelle schreiben. Danach kann ich dann diese Daten zum abgleichen weiter verarbeiten.
Vielen Dank für die Unterstützung.
Gruß bb
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln