Wer Lotus Notes R5 (Private Edition) verwendet und dort seine Adressen im privaten Adressbuch pflegt, kann diese über das Notes-Objekt
in VBA auslesen und z.B. in ein Word-Formular einfügen.
Dazu muss allerdings kein Verweis in der VBA-IDE auf die Lotus Notes Automation Classes gesetzt sein, sondern es reicht, wenn Lotus Notes
auf dem Rechner korrekt installiert wurde. In diesem Fall wird über das NotesSession-Objekt eine Verbindung zu Lotus Notes hergestellt und
auf die lokale Adressdatenbank zugegriffen.
Nur die zentrale Zugriffsroutine ist an dieser Stelle wiedergegeben und zeigt, wie auf die Datenbank und Ansicht zugegriffen wird und wie
die verschiedenen Felder des Adressbuches ausgelesen werden.
Zum Download steht eine Userform bereit, in der sowohl die Anbindung und Anzeige der Adressbucheinträge enthalten sind als auch die _bergabe der einzelnen Daten nach Word in entsprechende Formularfelder (Das Beispiel zeigt die Userform mit einem ausgelesenen Adressbucheintrag).
adressbuch = "names.nsf"
ansicht = "People"
I = 0
Label11.Caption = sText1
'
Set objNotes = GetObject("", "Notes.NotesSession")
If objNotes Is Nothing Then
Set objNotes = CreateObject("Notes.NotesSession")
End If
Set LNdb = objNotes.GETDATABASE("", adressbuch)
Set LNview = LNdb.GETVIEW(ansicht)
Call LNview.Refresh
Set LNdoc = LNview.GETFIRSTDOCUMENT
ReDim lnarray(100, 50)
Do While Not LNdoc Is Nothing
Set Item = LNdoc.GETFIRSTITEM("lastname")
Set item1 = LNdoc.GETFIRSTITEM("firstname")
Set item2 = LNdoc.GETFIRSTITEM("mailaddress")
Set item3 = LNdoc.GETFIRSTITEM("phonenumber")
Set item4 = LNdoc.GETFIRSTITEM("officephonenumber")
Set item5 = LNdoc.GETFIRSTITEM("HomeAddress")
Set item6 = LNdoc.GETFIRSTITEM("Zip")
Set item7 = LNdoc.GETFIRSTITEM("Country")
Set item8 = LNdoc.GETFIRSTITEM("Location")
'weitere Felder:
' HomeAddress /BusinessAddress
' Zip /OfficeZip
' Country/OfficeCountry
' Location
' oder über die Feldeigenschaften...
'
array1 = Item.Values
array2 = item1.Values
array3 = item2.Values
array4 = item3.Values
array5 = item4.Values
array6 = item5.Values
array7 = item6.Values
array8 = item7.Values
array9 = item8.Values
lnarray(I, 0) = CStr(array1(0))
lnarray(I, 1) = CStr(array2(0))
lnarray(I, 2) = CStr(array3(0))
lnarray(I, 3) = CStr(array4(0))
lnarray(I, 4) = CStr(array5(0))
lnarray(I, 5) = CStr(array6(0))
lnarray(I, 6) = CStr(array7(0))
lnarray(I, 7) = CStr(array8(0))
lnarray(I, 8) = CStr(array9(0))
ComboBox1.AddItem CStr(array1(0))
Set LNdoc = LNview.GETNEXTDOCUMENT(LNdoc)
I = I + 1
If I > 100 Then Exit Do
Loop
|