Ist der Code in der Datenbank selber untergebracht, kann das prinzipiell nicht funktionieren - entweder die DB wurde dann bereits geöffnet oder der Prozess des Öffnens läuft bereits. Die von Jens erwähnten Klassen (und alle anderen) nutzen Dir dann herzlich wenig, da Du die DB - sofern sie vom falschen Ort geöffnet wird - wieder schliessen müsstest und damit würde auch der Code beendet.
Hmm, sicher, Bernhard?
Folgender Ansatz:
Sub Click(Source As Button)
Const DESTINATION_SERVER$ = "SERVER"
Const DESTINATION_PATH$ = "PFAD/DB"
On Error Goto ErrorHandler
Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim uidbThis As NotesUIDatabase
Dim uiws As New NotesUIWorkspace
Set dbThis = session.CurrentDatabase
If Not dbThis.Server = "" Then Goto GoOut 'Database has been opened on a server, so we go out here
Msgbox "User arbeitet lokal, wir öffnen ein neues Fenster mit der Server-DB"
Set uidbThis = uiws.CurrentDatabase
Call uidbThis.Close
Call uiws.OpenDatabase( DESTINATION_SERVER, DESTINATION_PATH, , , True)
GoOut:
Exit Sub
ErrorHandler:
ErrorMsg
Resume GoOut
End Sub
Hab aber jetzt keinen Server hier, sondern konnte nur lokal mit einer 2. DB testen.
1. ist hier die OpenDatabase-Property newInstance = True interessant.
2. ist die Close Method der NotesUIDatabase-Klasse interessant.
Man könnte jetzt noch damit spielen, uiws.OpenDatabase VOR dem "Call uidbThis.Close" aufzurufen, falls da was nicht klappt.
Aber IMHO sollte das so gehen.
Matthias