HCL Notes / Domino / Diverses > Administration & Userprobleme

Mitglieder einer Verteilergruppe per VBA auslesen? Notes 9.0.1FP8

(1/2) > >>

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