Aktuelle Seite:
/vba/vbanotesadressen.htm
Letzte Änderung: 24.06.2006

Getestet unter Word97Getestet unter Word2000   Lotus Notes R5
Beispiel anzeigen
Makro/Datei speichern
Print

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 

 www.chf-online.de/vba/vbanotesadressen.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)