So würd ich das schreiben.
Wenn ein Dokument noch nie ein Antwortdokument hatte ist doc.Responses nicht initialisiert. Warum - keine Ahnung.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim dcResponses As NotesDocumentCollection
Dim doc As NotesDocument
Dim x As Integer
Dim strSearch As String
Set db = session.CurrentDatabase
strSearch = {(Form = "frm_EAP")}
Set dc=db.Search(strSearch,Nothing,0)
Set doc = dc.GetFirstDocument
Do until doc is nothing
if not dc.Responses is nothing then
Set dcResponses = doc.Responses
if dcResponses.count>0 then
Call dcResponses.StampAll( "fldReaders" , doc.fldReaders)
End if
End if
Set doc = dc.GetNextDocument(doc)
Loop
End Sub
Noch ein Nachtrag, Dirk: Der folgende Code ist in 99,9% der Fälle der schlechtest denkbare. GetNthDocument berechnet jedes Mal den Zeiger auf das xte Dokument neu - und zwar von Anfang an! Am Anfang geht das fix. Ab 100 wird es träge, aber 1000 kann man den Dokumenten schon hinterherschauen und bald kommt dann schon der Moment, wo man in aller Ruhe jedem Dokument die Hand schütteln kann!
For x = 1 To dc.Count()
Set doc= dc.GetNthDocument(x)
If Not doc Is Nothing Then
Set dcResponses = doc.Responses()
Call dcResponses.StampAll( "fldReaders" , doc.fldReaders)
End If
Next
Es gibt Ausnahmefälle, aber ... siehe oben.
Um Grössenordnungen schneller:
Set NotesDocument = NotesDocumentCollection.GetFirstDocument
While Not (NotesDocument Is Nothing)
.. do what a man have to do
Set NotesDocument = NotesDocumentCollection.GetNextDocument (NotesDocument)
Wend
Dem, was Grischu bereits geschrieben hat, ist natürlich nichts hinzuzufügen (ausser: Doch, das ist durchaus erklärbar).
HTH,
Bernhard