问题描述
您好,我编写了此代码(从我在网上找到的站点复制)以在我的 Lotus Notes 收件箱视图中查找电子邮件并保存附件。 我不能做的是找到我需要的主题的文档。该集合未填充。我哪里错了?谢谢。
Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesdocumentCollection
Dim doc As Notesdocument
Dim rtitem As Variant
Dim filename As Variant
Const DIR_NOT_FOUND = 76
Dim i As Integer
Dim strname As String
Dim view As NotesView
Dim myArray (1 To 2) As String
myArray (1) = "DataToBeSaved"
myArray (2) = "DataToBeSaved"
Set db = sess.currentdatabase
Set view = db.GetView("($InBox)" )
Set coll = view.GetAllDocumentsByKey(myArray,False)
Set doc = coll.GetFirstDocument()
While Not doc Is nothing
Set rtitem = doc.GetFirstItem("Body")
If Not rtitem Is nothing Then
If ( rtitem.Type = RICHTEXT ) Then
If Isempty(rtitem.Embeddedobjects) = False Then
Forall o In rtitem.Embeddedobjects
If ( o.Type = EMbed_ATTACHMENT ) Then
filename = Evaluate("@AttachmentNames",doc)
'For i = 0 To Ubound(filename)
If (filename(i)="query nas.txt") Then
strname = Replace(filename(i),"/","-")
On Error DIR_NOT_FOUND Resume Next
Call o.ExtractFile( "\\rflenas1.rfle.roto-frank.com\RFIB\LOTUSPROVA\" & strname )
End If
'Next
doc.fieldname = ""
Call doc.Save( True,True )
End If
End Forall
End If
End If
End If
Set doc = coll.getnextdocument(doc)
Wend
结束子
解决方法
您需要将您的逻辑包装在这样的循环中。它将循环您收件箱中的所有文档,如果 subejct 匹配,它将执行您想放入“对文档进行处理”区域中的任何内容。
set doc = view.getfirstdocument
while not doc is nothing
if doc.subject(0) = "THE SUBJECT I WANT TO FIND" then
'Do something with the doc
end if
set doc = view.getnextdocument(doc)
Wend
您将不再需要 coll