Domino 9 und frühere Versionen > Entwicklung

Problem mit Wordobject

(1/5) > >>

Colibri:
Hallo,

habe folgenden code in einer Maskenaktion

Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim maildb As New NotesDatabase("","")
   Dim maildoc As Notesdocument   
   Dim mailuidoc As Notesuidocument   
   Dim uidoc As NotesUIDocument
   Dim wordobj As Variant
   Dim obj As NotesEmbeddedObject   
   Dim rtitem As NotesRichTextItem   
   Dim temp As String
   
   Set uidoc = ws.currentdocument
   Call uidoc.Refresh(True)      
   Call uidoc.save
   
   temp = Environ$ ("temp")   
   Set wordobj = uidoc.GetObject( "Word" )
   wordobj.SaveAs(temp + "\dokument.doc")
   Call uidoc.close
   
   Call maildb.openmail   
   Set maildoc = maildb.CreateDocument   
   maildoc.Form = "Memo"
   Set rtitem = New NotesRichTextItem(maildoc, "body")
   Set obj = rtitem.EmbedObject(EMBED_ATTACHMENT, "" , temp + "\dokument.doc")   
   Set mailuidoc = ws.EditDocument(True, maildoc)
End Sub

An 30 PC's funktiniert das Problemlos, aber an 4 kommt die Fehlermeldung "Variant does not contains an object" und zwar bei der Zeile wordobj.SaveAs(temp + "\dokument.doc") Auf allen PC's ist Word 2000 installiert, das Betriebssystem ist Win2000 oder WinXP. Woran könnte das liegen?

koehlerbv:
Das sieht stark nach einer unvollständigen Installation von Word aus - das OS weiss mit dem Object "Word" nix anzufangen.

Bernhard

thoge:
Hallo Colibri,

hast Du bei den 4 PCs mal nachgeschaut, ob die die Umgebungsvariable "temp" überhaupt gesetzt haben?

Einstellungen -> Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen

Gibt es dort einen Eintrag ala TEMP = C:\WINNT\TEMP

HTH

Thomas

koehlerbv:
@Thomas:
Das kann's nicht sein, denn die Variable temp ist ein String und kein Variant. Ausserdem würde Environ$ einen Leerstring im von Dir skizzierten Szenario liefern.
Nicht instantiiert lt. Fehlermeldung ist "wordobj" ...

Bernhard

Semeaphoros:
Na ja, das ist die eine Variante, es kann ja auch sein, dass Word selber einen Fehler macht. Könnte mir vorstellen, dass in den 4 Installationen Word so eingestellt ist, dass beim Oeffnen nicht automatisch ein leeres Doc aufgeht, und dann könnte das Wordobj das Dokument mangels Existenz nicht speichern. Weiss nicht, was dann für ein Fehler kommt, aber Objekt nicht vorhanden wäre da durchaus logisch.

Colibri: was sagt den der Debugger zur Variablen Wordobj, ist die instantiiert? Du könntest ja mal nach dem

 Set wordobj = uidoc.GetObject( "Word" )

noch so etwas einsetzen:

  if wordobj is nothing then
     Print "Objekt konnte nicht erstellt werden"
     exit sub
  End if

oder sowas ähnliches.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln