Hallo,
wo ist der Fehler in nachfolgendem Code?
Ich will Daten aus einer zentralen Anwender-DB über eine Klasse bereitstellen. Wenn ich den Agenten
Dim BI As New TestClass("X1234XX") ' Vorhandener User
Print BI.Username
ausführe, wird mit aber "nix" zurückgegeben. Im Debugger sehe ich, dass beim Eintritt in die Property Get mydoc = nothing ist. Warum ist das so?
Danke & Gruß,
Gregor
' ##################################################
' TestClass
' ##################################################
Class TestClass
Private mydoc As NotesDocument
Sub New (strKey As string)
Dim session As New NotesSession
Dim strServer As String
Dim strAnwinfo As String
Dim view As NotesView
Dim doc As NotesDocument
Dim db As NotesDatabase
strServer = session.Currentdatabase.Server
strAnwinfo = "eigene\anwenderdb.nsf"
Set db = New NotesDatabase(strServer, strAnwinfo)
Set view = db.GetView("(UserId)")
Set doc = View.GetDocumentByKey ( UCase(strKey) )
Set mydoc = doc
If Not mydoc Is Nothing Then Print "==> " & mydoc.Notes_Name(0) ' wird ausgegeben
End Sub
Property Get Username
If mydoc Is Nothing Then
Username = "nix" ' Das hier wird zurückgegeben
Else
Username = mydoc.Notes_Name(0)
End If
End Property
End Class
[Edit]
Hat sich erledigt. Die Referenz auf mydoc wurde ja zerstört, sobald ich das Sub New verlasse. Wenn ich db für die ganze Klasse und nicht nur für das sub new deklariere, funktioniert es.