... dein Code ist etwas ducheinander. Ich möchte versuchen dir den Code besser zu strukturieren.
... als erstes - nur die Dimensionierungen - keie Zuweisungen...
... als zweites die Initialisierung der benötigten Objekte...
... und dann der Code, der das Ergebnis bringen soll.
Sub Click(Source As Button)
' # 1. Dimensionierung der Objekte
Dim session As New NotesSession
' # nenn die Session nicht 's' - einzelne Buchstaben verwendet man gerne als Zählvariablen in Schleifen
Dim SourceDB As NotesDatabase ' # besser wäre dbSource - das Objekt leitet den Namen ein...
Dim TargetDB As NotesDatabase
'Dim dc As NotesDocumentcollection
Dim TargetDoc As NotesDocument ' # besser wäre docTarget - das Objekt leitet den Namen ein...
Dim SourceDoc As NotesDocument
'Dim object As NotesEmbeddedObject
'Dim ItemType As Integer
' # ... die Dimensionierung innerhalb einer Do-While-Schleife macht keinen Sinn - hier ist sie richtiger
'Dim AttachmentName As String
'Dim newObject As NotesEmbeddedObject
Dim rtitem As NotesRichTextItem
' # Initialisierung der benötigten Objekte
Set TargetDB = session.CurrentDatabase
' # ...Validierung der Quelldatenbank
Set SourceDB = session.GetDatabase("" , "blablablabla.nsf")
If Not SourceDB.IsOpen Then
Msgbox "Abbruch - die Quelldatenbank konnte nicht geöffnet werden"
Exit Sub ' # ... bzw. Exit Function, wenn in einer Funktion gearbeitet wird.
End If
' # ... Validierung der benötigeten Ansicht
Set view = SourceDB.GetView( "Memo" )
If view Is Nothing Then
Msgbox "Abbruch - die Ansicht 'Memo' konnte nicht in der Quelldatenbank gefunden / geöffnet werden."
Exit Sub ' # ... bzw. Exit Function, wenn in einer Funktion gearbeitet wird.
End If
' # ... das erste Dokument initialisieren - war in deinem Code auskommentiert - warum
Set SourceDoc = view.GetFirstDocument()
' # Der eigentliche Code, der das Ergebnis herstellen soll
Do While Not (SourceDoc Is Nothing)
' Copy fields from Source Doc to Target Doc
Set TargetDoc = New NotesDocument( TargetDB )
TargetDoc.Form = "New Document"
TargetDoc.Category = SourceDoc.heading
TargetDoc.SubCat = SourceDoc.Category
TargetDoc.docTitle = SourceDoc.DocHeading
' # hier kommt der Code zur Übernahme des Attachments
' # ... ich würde das Feld mit dem Attachment in dein Zieldokument kopieren
Set rtItem = SourceDoc.GetFirstItem("Body") ' # hier liegt das Attachment in der Regel
Call TargetDoc.CopyItem( rtItem, "Body" )
' # ... Attachment übernommen.
TargetDoc.Save True,True
Set SourceDoc = view.GetNextDocument( SourceDoc )
Loop
ws.ViewRefresh
End Sub
... ich konnte es nicht mehr testen, aber das müßte meiner Meinung nach funktionieren...
ata