... hat mir keine Ruhe gelassen - ich habe etwas herumprobiert, und mein Verdacht ist, daß OpenOffice hier bei der Einbindung der OLE/COM-Schnittstelle nicht ganz sauber implementiert hat. Der Verdacht begründet sich darauf, daß OO beim Initialisieren mit session.Initialize die Länge der Argumente bemängelt - laut Spezifizierung aber gar nicht notwendig. In meinem Beispiel arbeite ich mit einem leeren Passwort - das wird angenommen - zumindest geht Lotus Notes damit im Frontend auf. Probiert habe ich mit Windows XP ...
Der folgende Code in OpenOffice bringt die Fehlermeldung, daß ein Initialize fehlschlägt, der bei dir im Code gefehlt hat, aber notwendig ist. Die Session erscheint im Frontend, der Debugger bleibt aber beim session.Initialize("") stehen, mit dem Hinweis, daß er nicht initialisieren kann: Basic-Laufzeitfehler, Object-Variable ist nicht belegt
sub open_LN()
dim service as object
dim session as object
dim db As object
service = createUnoService("com.sun.star.bridge.oleautomation.Factory")
session = service.createInstance("Lotus.NotesSession")
session.Initialize("") db = session.GetDatabase("" ,"names.nsf")
MsgBox( "Das lokale Adressbuch heißt => " & db.Title )
end sub
Ein Versuch es mit "Lotus.NotesSession.7.0" und anderen Möglichkeiten schlug ebenso fehl.
Der Leerstring im Initialize steht für ein Passwort, falls es bei der Anmeldung in Notes erforderlich wäre. Laut Spezifizierung braucht man auch keines einzugeben. Für den Fall, daß es erforderlich wäre, würde dann danach gefragt werden.
Eine Initialisierung mit
session.InitializeUsingNotesUserName (username, password) wird speziell für den Zugriff auf einen Server benötigt - der klappt bei lokalem Zugriff nicht...
Der für Excel oder Word angepasste Code funktioniert hervoragend:
sub open_LN()
Dim session as Variant
Dim db As Variant
Set session = GetObject("Lotus.NotesSession")
Call session.Initialize("")
Set db = session.GetDatabase("" ,"names.nsf")
MsgBox( "Das lokale Adressbuch heißt => " & db.Title )
end sub
Achtung:Im Taskmanager verbleiben pro Versuch nlnotes.exe-Tasks, die wieder abgeschossen werden müssen, wenn sie wie in meinen Beispielen nicht wieder bereinigt wurden, und ...
"Notes.NotesUIWorkspace" brachte keinen Erfolg
... klappt mit
OLE/COM-Schnittstelle nie, da keine Frontend-Klassen unterstützt werden...
Das wärs erst mal für's erste...
Toni