Hallo,
ich habe ein merkwürdiges Phänomen:
Ich habe mir eine kleine Funktion geschrieben, die im NAB nach Dokumenten sucht, und zwar mit der db.search-Methode.
Hier der Code:
Function CheckNAB (Suchformel As String) As NotesDocumentCollection
Dim Namesdb As New NotesDatabase ("","")
Call Namesdb.Open ("Hauptverwaltung/MeineDomäne","names.nsf")
Dim SeitDatum As New NotesDateTime("")
Set CheckNAB = Namesdb.Search(Suchformel, SeitDatum, 0)
End Function
Aufgerufen wird die Funktion aus einem geöffneten Dokument über eine Schaltfläche. Hier der Code im Click-Ereignis der Schaltfläche:
Dim Suchstring As String
Suchstring = |Form="Person" & Lastname="|+ Nachname +|" & Firstname="|+ Vorname +|"|
'Gibt es den User schon ? Dann abbrechen !
Dim Suchergebnis As NotesDocumentCollection
Set Suchergebnis = CheckNAB(Suchstring)
If Suchergebnis.count >0 Then
Messagebox "User " & Vorname & " " & Nachname & _
" ist bereits im Öff. Adressbuch vorhanden !" ,_
0, "Registrierung fehlgeschlagen."
Goto Ende
End If
Soweit - so gut.
Bei Aufruf der Funktion wird das NAB geöffnet und die Search-Methode findet ein Dokument. Der Rückgabewert CheckNAB erhält im letzten Schritt der Funktionsausführung eine NotesDocumentCollection, in der wiederum das gefundene Dokument steckt.
Bis dahin alles ok. Leider wird der Wert von CheckNAB nicht an die Objektvariable "Suchergebnis" übergeben.
Ich habe schon diverse Dinge ausprobiert:
- "Suchergebnis" in den Globals der Maske deklariert
- "Suchergebnis" in den (Declarations) des Buttons deklariert
In beiden Fällen kein Erfolg.
"Suchergebnis" als Variant statt als NotesdocumentCollection deklariert - ein Teilerfolg: Im Scriptdebugger wird nach Ausführung der Funktion als Wert von "Suchergebnis" zumindest [NOTESDOCUMENTCOLLECTION] angezeigt - leider aber ohne Werte.
Wo liegt mein Denkfehler ? Oder ist das wieder ein Fehler aus der Reihe "Was Notes eigentlich tun müsste aber sich zu tun weigert ... " ?
Helft einem Verzweifelten
Gruß
Der Ozzy