Domino 9 und frühere Versionen > ND8: Entwicklung

Object variable not set bei DetDocumentByKey

<< < (4/4)

thkn777:
Update:
Das Öffnen der DB darf nicht im Initialize erfolgen.

Maximal geht's bis:

--- Code: ---Public db_global As NotesDatabase
Public isOpen_db_global As Integer
Public session_global As NotesSession
Public doc_global As NotesDocument
Sub Initialize
Set session_global = New NotesSession
Set db_global = New NotesDatabase( "", "" )
isOpen_db_global = False
' *** hier NICHT!!!!! Call openDb_global (session_global.CurrentDatabase.Server, session_global.CurrentDatabase.FilePath)
End Sub
--- Ende Code ---

mit


--- Code: ---Private Sub openDb_global (Byval server As String, Byval filepath As String)
If Not isOpen_db_global Then
isOpen_db_global = db_global.Open( server, filePath )
End If
End Sub
--- Ende Code ---

und


--- Code: ---Private Sub showEingabe_global(Byval myNoteId As String)
Set doc_global = db_global.GetDocumentByID(myNoteId)
If doc_global Is Nothing Then
Print "doc_global is nothing"
Else
Print Str$(Now()) & " doc_global.eingabe = " & doc_global.eingabe(0)
End If
End Sub
--- Ende Code ---

Der Aufruf erfolgt dann jeweils über:


--- Code: ---Call openDb_global (session_global.CurrentDatabase.Server, session_global.CurrentDatabase.FilePath)
Call showEingabe_global(NoteId)
--- Ende Code ---

Wenn Performance keine Rolle spielt, braucht man diese Handstände nicht zu machen.
Wenn doch: das eine "If Not isOpen_db_global" wird zu verschmerzen sein bzw. muß man wohl in Kauf nehmen.

Schönen (rutschfreien) Dienstag wünsch' ich.

cococo69:
Hallo zusammen,

zuerst möchte ich euch allen herzlich danken für die unglaubliche Mühe, die ihr euch in diesem Thread gegeben habt!!

Ich bin nun tatsächlich den Weg von "thkn777" über db.Open(Server, Pfad)  gegeangen und es funktioniert einwandfrei!! Guter Ansatz - DANKE!

Viele herzliche Grüße
Armin

thkn777:
@pram
Naja, ich war mehr darauf aus, daß man sich eine LS function bauen könnte


--- Code: ---Function getDocField(Byval unid As String, Byval itemname As String) As Variant
getDocField = Evaluate (|@GetDocField("| & unid & |"; "| & itemname & |")|)
End Function
--- Ende Code ---

und diese benutzt, um den "Backend"-Wert eines Items zu ermitteln aus einem beliebigen Dokument der aktuellen DB, von dem man die UNID kennt. Diese liefert jedoch nicht ein NotesDocument Objekt zurück wie GetDocumentById oder GetDocumentByUnid. Vielleicht trotzdem ganz nützlich. ;)


@cococo69
Freut mich, daß wir Dir beim Lösen Deines Problems helfen konnten.

Th.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln