Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: JM am 25.09.02 - 12:00:24

Titel: Object Variable not set
Beitrag von: JM am 25.09.02 - 12:00:24
Hallo habe versucht mit folgendem Script ein Document in eine andere Datenbank (Feld für Feld) zu übertragen ... leider funzt das ganze nicht so

Fehlermldung: Object Variable not set.

Hat jemand ne idee???


Sub Click(Source As Button)
     
     Dim ws As New NotesUIWorkspace
     Dim s As New NotesSession
     Dim db As NotesDatabase
     Dim oldDoc As NotesDocument
     Dim newDoc As NotesDocument
     
     Set db = s.GetDatabase("","TestMigrationZiel.nsf")
     Set oldDoc = ws.CurrentDocument.Document
     
     Set newdoc.Link = olddoc.Link
     Set newdoc.DisplayChapter = olddoc.DisplayChapter
     Set newdoc.DisplaySectionsandSubtitles = olddoc.DisplaySectionsandSubtitles
     Set newdoc.DisplayDocumentVersion = olddoc.DisplayDocumentVersion
     Set newdoc.Form = olddoc.Form
     Set newdoc.ComposedDate = olddoc.ComposedDate
     Set newdoc.Keythought = olddoc.Keythought
     Set newDoc.Body = oldDoc.body
     Set newdoc.NewsLetterSubject = olddoc.NewsLetterSubject
     Set newdoc.DocAuthor = olddoc.DocAuthor
     Set newdoc.DocReaders = olddoc.DocReaders
     Set newdoc.Duid = olddoc.Duid
     Set newdoc.set = olddoc.set
     
End Sub
Titel: Re: Object Variable not set
Beitrag von: Axel am 25.09.02 - 12:09:24
Hi,

die Fehlermeldung kommt mit Sicherheit von der Variable newdoc.

Du musst in der Zieldatenbank erstmal ein Document erstellen.

Füge diese Zeile

Set newdoc = New NotesDocument(db)

nach der Zeile

Set olddoc = ...

ein.

Dann sollte es funktionieren.

Axel
Titel: Re: Object Variable not set
Beitrag von: Axel am 25.09.02 - 12:13:45
Hi,

hier noch eine einfachere Alternative:

Sub Click(Source As Button)
 
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
 
Set db = s.GetDatabase("","TestMigrationZiel.nsf")
Set oldDoc = ws.CurrentDocument.Document
Set newdoc = New NotesDocument(db)

Call oldDoc.CopyAllItems(newdoc)
Call newdoc.Save(True, True) 'neues Dokument speichern

End Sub

Damit kopierst du alle Felder mit einem Schlag.

Axel
Titel: Re: Object Variable not set
Beitrag von: harkpabst_meliantrop am 25.09.02 - 12:52:38
Viel besser so, denn in seinem ersten Script fehlte so nebenbei bei allen Quellfeldern das "(0)". Nommaal.

--E<:|
Titel: Re: Object Variable not set
Beitrag von: JM am 25.09.02 - 12:55:45
danke axel

habe die zweite version getestet und diese funktioniert wunderbar

Titel: Re: Object Variable not set
Beitrag von: Axel am 25.09.02 - 12:57:49
@harkpabst_meliantrop

Wenn du Felder von einem Dokument in ein anderes kopierst, dann brauchst du keine (0). Das kein bei Feldern mit Mehrfachwerten sogar fatal sein, denn dann wird nur der erste Wert kopiert.

Axel
Titel: Re: Object Variable not set
Beitrag von: harkpabst_meliantrop am 25.09.02 - 15:30:51
Zitat

Wenn du Felder von einem Dokument in ein anderes kopierst, dann brauchst du keine (0). Das kein bei Feldern mit Mehrfachwerten sogar fatal sein, denn dann wird nur der erste Wert kopiert.


Hmm, tja, das schon.

Aber mit dem "Set" davor wird es nicht funktionieren!
Titel: Re: Object Variable not set
Beitrag von: Axel am 25.09.02 - 15:41:21
Zitat
Aber mit dem "Set" davor wird es nicht funktionieren!


Ähhhmmm, hast recht. So isses wenn man mal wieder auf beiden Ohren blind ist.   ;D ;D


Axel
Titel: Re: Object Variable not set
Beitrag von: harkpabst_meliantrop am 25.09.02 - 15:43:48
Ach, was soll ich da erst sagen?

;)