NEU :
Ich will das Problem nochmal neu beschreiben :
Der User hat Lotus auf C,
das DATA Verzeichnis und seine ID Datei auf einem gemappten Laufwerk W.
Folgende Zeile:
Call LNSession.Initialize(strPassword)
wirft diesen Fehler auf:
-2147217504
Die ID Datei konnte nicht geöffnet werden.
Wer weiss Rat ?
********************************
Altes Posting
Hallo Leute,
ich habe ein Visual Basic Programm geschrieben, welches Datensätze in einer Lotus DB erstellt.
Das Programm funktioniert auch - auf meinem Rechner. ( NT )
Aber nicht beim Kunden.
Das Problem ist höchstwahrscheinlich das
DIM LNSESSION as NotesSession
Hat da jemand eine Idee für mich ?
Hier ein Codeauszug :
Const VERSION = "1.01"
Const OS = "NT Workstation"
Public strLotusserver As String
Public strLotusDBFile As String
Public strPassword As String
Public bLogging As Boolean
Public strLogfile As String
Private Sub Main()
' NT VERSION
Dim LNSession As NotesSession
Dim LNDB As NotesDatabase
' XP Version
'Dim LNSession As Variant
'Dim LNDB As Variant
Dim LNDoc As Variant
Dim item As Variant
Dim obj As NotesEmbeddedObject
Dim rti As NotesRichTextItem
Dim strCommandLine As String
Dim strNewPassword As String
Dim Zeile1 As String
Dim myBESITZER As String
Dim myVorname As String
Dim myNachname As String
Dim myTITEL As String
Dim myGRUPPE As String
Dim myVERZEICHNIS As String
On Error GoTo ErrHandler
strCommandLine = Command()
writeLog ("StrCommandline" & strCommandLine)
myGRUPPE = Trim(sWord(strCommandLine, "#", 1))
writeLog ("MyGruppe :" & myGRUPPE)
myBESITZER = sWord(strCommandLine, "#", 2)
writeLog ("MyBESITZER :" & myBESTIZER)
If myBESITZER <> "" Then
myVorname = Trim(sWord(myBESITZER, ",", 2))
myNachname = Trim(sWord(myBESITZER, ",", 1))
myBESITZER = myVorname & " " & myNachname
End If
myTITEL = sWord(strCommandLine, "#", 3)
myVERZEICHNIS = sWord(strCommandLine, "#", 4)
' NT & XP Version
Set LNSession = New NotesSession
writeLog ("Set LNSession = New NotesSession nachher")
' XP Version
??
' Set LNSession = CreateObject("Notes.NotesSession")
strPassword = Decode(strPassword)
Call LNSession.Initialize(strPassword)
If Not LNSession Is Nothing Then
Set LNDB = LNSession.GetDatabase(strLotusserver, strLotusDBFile)
Set LNDoc = LNDB.CreateDocument
Call LNDoc.AppendItemValue("BESITZER", myBESITZER)
Call LNDoc.AppendItemValue("GRUPPE", myGRUPPE)
Call LNDoc.AppendItemValue("TITEL", myTITEL)
Call LNDoc.AppendItemValue("DATUM", Now)
Call LNDoc.AppendItemValue("Form", "frmDokument")
Set rti = LNDoc.CreateRichTextItem("BODY")
Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", myVERZEICHNIS & "\00001")
' Das Dokument speichern
LNDoc.Save True, False, False
On Error GoTo ErrHandler
Kill (myVERZEICHNIS & "\00001")
RmDir (myVERZEICHNIS)
End If
Exit Sub
ErrHandler:
writeLog (Now & " Fehler # " + Str(Err) + " aufgetreten:" + vbCrLf + Now + " " + Err.Description)
Set LNDB = Nothing
Set mLNsession = Nothing
End Sub
Private Function SetNewPassword(aNewPassword As String) As Boolean
Dim strError As String
If Not Registry_SchreibeWert(HKEY_LOCAL_MACHINE, RegistryPfad, "LotusPassword", Encode(aNewPassword), strError) Then
MsgBox "Das neue Kennwort konnte nicht gesetzt werden!,vbCritical) "
End If
End Function
Private Function sWord(sourceString As String, separator As String, number As Integer) As String
searchString$ = sourceString & separator
For i% = 1 To number
pos% = InStr(searchString$, separator)
If pos% = 0 Then Exit For
substring$ = Left(searchString$, pos% - 1)
searchString$ = Mid(searchString$, pos% + 1)
Next
If pos% > 0 Then
sWord = substring$
Else
sWord = ""
End If
End Function