以下程序
Dim s As New NotesSession
Dim db As NotesDatabase
Dim vw As NotesView
Dim vec As NotesViewEntryCollection
Dim vetr As NotesViewEntry
Dim doc As NotesDocument
Set db = s.currentDatabase
Const C_ViewUnitYear= "vsUnitYear "
Set vw=db.getView(C_ViewUnitYear)
Dim paras(1 To 2) As Variant
paras(1)= "xx处 "
paras(2)= "2006 "
'Set vec=vw.AllEntries '正常
Set vec=vw.getAllEntriesByKey(paras,True)
Set vetr=vec.getFirstEntry()
Dim i As Integer
i=1
Do Until ( (vetr Is Nothing) Or Isnull(vetr) Or i> 10)
If(Not vetr.IsValid) Then
Msgbox Cstr(i)+ " "+ "not valid "
Else
Set doc=vetr.document
Msgbox Cstr(i)+ " "+doc.Subject(0)
End If
Set vetr=vec.getNextEntry(vetr)
i=i+1
Loop
由Set vec=vw.getAllEntriesByKey(paras,True),得到的集合Count是对的,可是每个Entry都是isValid=false。而由 'Set vec=vw.AllEntries则是正常的。
帮助里说isValid=false是因为文档已经被删除,可是没那么回事啊。到底是怎么回事呢?
------解决方案--------------------
在程序上看不出什么问题,你看看set doc = vetr.document 这个document有吗?