Kein Errorhandling.
Dann könntest du nämlich sehen in welcher Zeile dieser Fehler auftritt:
Probier das mal:
Sub Initialize
on Error goto ABJETZTBENUTZEICHIMMERERRORHANDLING
Dim s As New notessession
Dim db As notesdatabase
Dim col As notesdocumentcollection
Dim docLoop As notesdocument
Dim docWork As notesdocument
Set db=s.currentdatabase
Set col=db.alldocuments
Set doc=col.getfirstdocument
While Not doc Is Nothing
Set docWork=docLoop
Set docLoop=col.getnextdocument(docWork)
If docWork.form(0)={Album} Then
docWork.AltInterpretSort=Metaphon(docWork.Interpret(0))
Call docWork.save(True,True)
End If
Wend
exit sub
ABJETZTBENUTZEICHIMMERERRORHANDLING:
print |Fehler in --Name-- | & Error$ & "(" & Cstr(Err) & ") in Zeile:" & Cstr(Erl)
exit sub
End Sub
Also wenn ich das richtig sehe, dann ist dies
Set docWork=docLoop
Set docLoop=col.getnextdocument(docWork)
in der falschen Reihenfolge.
Zuerst sagst Du ihm er soll docWork mit dem docLoop befüllen, und im nächsten Schritt füllst du erst docLoop - wie soll das gehen?
Vor allem füllst Du docLoop mit einem Element aus einer Collection die auf docWork beruht - da beisst sich die Katze doch irgendwie in den Schwanz, oder? Setz vor der Schleife dein docLoop mal auf einen Wert und schau was passiert!
in Zeitlupe:
Dim s As New notessession
Dim db As notesdatabase
Dim col As notesdocumentcollection
Dim docLoop As notesdocument
Dim docWork As notesdocument
Set db=s.currentdatabase
Set col=db.alldocuments
Set doc=col.getfirstdocument
While Not doc Is Nothing
Set docWork=docLoop : docLoop ist Nothing. DocWork ist auch Nothing
Set docLoop=col.getnextdocument(docWork) : docWork ist nothing deshalb fehler.
Warum brauchst du eigentlich 3 NotesDocument Objekte (doc, docWork und docLoop).
Das ist mindestens 1 zuviel.
Durch die unökonomische Verwendung von Variablennamen wird dein Code unübersichtlich.
Eigentlich ist das, was in Java eine NullPointerException ist. Relativ schwer zu debuggen.
NullPointerExceptions sind oft Fehler, die schwer zu lokalisieren sind.