Function LSDbLookup(s As NotesSession, servernm As String, dbname As String, vname As String, namekey As String, targetfldname As String) As Variant ' this function retrieves a document from the database (db) in a specified view ' this function returns the resulting values of the lookup ' 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 lupDb As NotesDatabase ' lookup database Dim lupV As NotesView ' lookup view Dim lupCol As NotesDocumentCollection ' collection of lupDoc(s) that match key Dim lupDoc As NotesDocument ' doc retrieved from lupV Dim lupItem As NotesItem ' the field to retrieve Dim tmpcount As Long ' counting variable for tmpArray Dim tmpArray() As Variant ' values of lupItem in lupdoc(s) On Error Goto LUpErrorHandler ' get database Set lupDb=s.GetDatabase(servernm, dbname, False) If (lupDb Is Nothing) Then ' return nothing LSDbLookup="" Exit Function End If Set lupV=lupDb.GetView(vname) If (lupV Is Nothing) Then ' return nothing LSDbLookup="" Exit Function End If Set lupCol = lupV.GetAllDocumentsByKey(namekey, True) If (lupCol.Count=0) Then ' return nothing LSDbLookup="" Exit Function End If ' loop through docs in lupCol and populate array tmpcount=0 Set lupDoc = lupCol.GetFirstDocument() While Not (lupDoc Is Nothing) ' get item desired Set lupItem = lupDoc.GetFirstItem(targetfldname) If (lupItem Is Nothing) Then ' return nothing LSDbLookup="" Exit Function Else ' redim array Redim Preserve tmpArray(tmpcount) ' get item value tmpArray(tmpcount) = lupItem.Values(0) tmpcount=tmpcount + 1 End If ' get next doc Set lupDoc = lupCol.GetNextDocument(lupDoc) Wend ' return result LSDbLookup=tmpArray Exit Function LUpErrorHandler: ' return nothing LSDbLookup="" Exit Function End Function