首先:“OpenFileDialog”的第一个参数代表多选。如果您只想选择一个文件,那么只需将其设置为 false。
文件名仍然是一个数组,但只有一个条目。
第二:如果你想为一个项目设置一个值,那么使用 NotesDocument 的 replaceitemvalue 或者只是项目的 value 属性:
代替:
Forall filename In filenames
item.AppendToTextList(filename) 'Path contains all the paths selected.
End Forall
和:
item.values = filenames(0)
或者:
doc.ReplaceItemValue( "Path", filenames(0) )
或者:
item.text = filenames(0)
还有一些其他的事情:首先:Option declare
在你的所有代码中使用它,它让生活变得更加轻松。然后:您定义 item1 两次:首先它采用项目“Path_1”,然后直接将项目“Path”分配给它......这是没有意义的,因为当它被分配给“Path_1”时,你甚至不使用项目...
只是在这里有一个完整的解决方案:对我来说,代码看起来像:
Dim ws as New NotesUIWorkspace
Dim doc as NotesDocument
Dim itemPath as NotesItem
Dim varFiles as Variant
Set doc = .... 'somehow set the doc
Set itemPath = doc.GetFirstItem( "Path" )
varFiles = ws.OpenFileDialog(False, "Select",, "")
If not isempty( varFiles ) then
'- Just Write the LAST value into Path_1
call doc.ReplaceItemValue( "Path_1" , varFiles(0) )
'- Append the selected value to the path "History"
itemPath.AppendToTextList( varFiles(0) )
End If