Mit den @ Funktionen kam ich nicht weiter. Daher versuchte ich unter Script eine Lösung zu finden bzw. zu bauen.
Das Script läuft auch ohne Fehlermeldung durch, aber es kommt im Feld Body kein Inhalt an und ich kann den Fehler nicht finden.
Anbei das Script incl. der benutzten Funktion:
Funktion:
Function LSDbLookup(db As NotesDatabase, vname As String, namekey As String, targetfldname As String) As String
' this function retrieves a document from the database (db) in a specified view
' this function returns the resulting value of the lookup (1st value) when multiple values returned
' Note: Adjust this lookup to return this by changing function return to variant.
' Then return tmparray rather than the first value of the array.
Dim lupV As NotesView ' lookup view
Dim lupDoc As NotesDocument ' doc retrieved from lupV
Dim lupItem As NotesItem ' the field to retrieve
Dim tmpArray As Variant ' values of lupItem
On Error Goto LUpErrorHandler
Set lupV=db.GetView(vname)
If (lupV Is Nothing) Then
' return nothing
LSDbLookup=""
Exit Function
End If
Set lupDoc = lupV.GetDocumentByKey(namekey, True)
If (lupDoc Is Nothing) Then
' return nothing
LSDbLookup=""
Exit Function
End If
Set lupItem = lupDoc.GetFirstItem(targetfldname)
If (lupItem Is Nothing) Then
' return nothing
LSDbLookup=""
Exit Function
End If
tmpArray = lupItem.Values
LSDbLookup = tmpArray(0)
Exit Function
LUpErrorHandler:
' return nothing
LSDbLookup=""
Exit Function
End Function
Und hier die Formel aus der Schaltfläche:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim doc As NotesDocument
Dim Temp As String
Dim DB As NotesDatabase
Dim subj As Variant
Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Call doc.Save(True,False)
Set db = session.CurrentDatabase
Dim richText As New NotesRichTextItem(doc, "Body")
subj = doc.subject
Call richText.AppendText(LSDbLookup(db,"Themen",subj (0) ,"Vorlage"))
Call doc.Save(True,False)
End Sub