读书人

为啥用view.getAllEntriesByKey取出来

发布时间: 2012-02-21 16:26:23 作者: rapoo

为啥用view.getAllEntriesByKey取出来的ViewEntriCollection中的entry无效(isValid=false)
以下程序

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有吗?

读书人网 >行业软件

热点推荐