Domino 9 und frühere Versionen > ND6: Entwicklung

Bekomme bei Funktion String statt Variant geliefert

(1/1)

Bille:
Hallo!

Mit folgendem Code lasse ich mir aus einer Ansicht den Feldinhalt "UNID" des Dokuments holen:

--- Code: ---Dim AkteID As Variant
AkteID = SY_DBLookup(db.filepath, "(KreditaktenKdNr)",doc.Kundennummer(0),"UNID")
If AkteID(0) = "" Then
Msgbox("Es existiert keine Kreditakte zur angegebenen Kundennummer!"), 64, "Hinweis"
Exit Sub
End If
--- Ende Code ---
Funktion:

--- Code: ---Function SY_DbLookup( Datenbank As String, Ansicht As String, Suchbegriff As String, Feldname As String ) As Variant
.
.
.
Set DOK = VIEW.GetDocumentByKey( Suchbegriff, True )
If DOK Is Nothing Then
SY_DbLookup = ""
Exit Function
End If

SY_DbLookup = DOK.GetItemValue( Feldname )
End Function

--- Ende Code ---

Sofern der Suchbegriff in der Ansicht gefunden wird, funktioniert alles wunderbar.
Das Ergebnis von AkteID ist ein Variant, die If-Abfrage wird durchlaufen.
Wird der Suchbegriff aber nicht gefunden, enthält AkteID nur den String "", bei der If-Abfrage erscheint daher der Fehler "Variant enthält keinen Container".

Wie kann ich meine Funktion dahingehend ändern, dass mir bei der Zeile
SY_DbLookup = ""
ebenfalls ein Variant zurückgegeben wird?

Gruß
Bille

koehlerbv:
Du führst eine Result-Variable ein und belegst sie initial vor:


--- Code: ---Function SY_DbLookup( Datenbank As String, Ansicht As String, Suchbegriff As String, Feldname As String ) As Variant

Dim aResult (0) As String

aResult (0) = ""
.
.
.
Set DOK = VIEW.GetDocumentByKey( Suchbegriff, True )
If DOK Is Nothing Then
SY_DbLookup = aResult
Exit Function
End If

SY_DbLookup = DOK.GetItemValue( Feldname )
End Function
--- Ende Code ---

Auf diese Art und Weise gehst Du auch konform für den Fall, dass das Dokument zwar gefunden, aber das auszulesende Item gar nicht existiert.

HTH,
Bernhard

Bille:
Vielen Dank Bernhard! Es funktioniert natürlich einwandfrei.
Schon wieder was gelernt heute!

schönen Sonntag noch
Bille
 :D

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln