Autor Thema: Problem mit Wordobject  (Gelesen 3598 mal)

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Problem mit Wordobject
« am: 08.07.04 - 17:04:20 »
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?


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #1 am: 08.07.04 - 17:13:02 »
Das sieht stark nach einer unvollständigen Installation von Word aus - das OS weiss mit dem Object "Word" nix anzufangen.

Bernhard

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #2 am: 08.07.04 - 17:13:18 »
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
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #3 am: 08.07.04 - 17:16:15 »
@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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Problem mit Wordobject
« Antwort #4 am: 08.07.04 - 17:22:07 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #5 am: 08.07.04 - 17:23:52 »
@Bernhard,

vielen Dank für den Hinweis, da habe ich wohl die Designer-Hilfe falsch interpretiert.

Zitat
If you specify the environment variable by name with environName, LotusScript returns the value of the specified environment variable. If that environment variable is not found, LotusScript returns the empty string (""). If environName is the empty string or evaluates to NULL or EMPTY, LotusScript generates an error.

Viele Grüße

Thomas
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #6 am: 08.07.04 - 23:11:27 »
Zitat
@Bernhard,
vielen Dank für den Hinweis, da habe ich wohl die Designer-Hilfe falsch interpretiert.

Sowas ist mir auch schon etliche Male passiert - mittlerweile liest man Dokus mit den gewonnenen Erfahrungen eben "leichter"  ;)

Und die Fehlermeldungen passen dann auch in den allermeisten Fällen - siehe dieser Fall.

Bernhard

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #7 am: 09.07.04 - 08:15:08 »
Hallo,

vielen Dank erstmal für die Antworten. Kann wegen Zeitverschiebung erst heute nachmittag wieder auf die PC's zugreifen wo's nicht geht.

@Bernhard
Ich habe an einem der PC's das komplette Office schon neu installiert, und alle updates via MS-Homepage gemacht, hat aber nichts gebracht. Auserdem habe ich in der selben Anwendung eine Ansichtenaktion die folgendes macht (Code nur auszugsweise)

'Vorlage holen und nach temp kopieren
   temp = Environ$ ("temp")   
   Set view =  db.getView("2.2")
   Set doc = view.GetDocumentByKey("brief",True)
   Set object = doc.GetAttachment("brief.doc")
   Call object.ExtractFile(temp + "\temp.doc")
   
'Vorlage als Objekt in das neue Dokument kopieren
   Set uidoc = ws.ComposeDocument("","","word")
   Call uidoc.GotoField( "Body" )
   Call uidoc.CreateObject("Word","", temp + "\temp.doc")
   Set wordobj = uidoc.GetObject( "Word" )   

Diese Code funktioniert an allen PC's problemlos    :-\


@Thomas
An der temp Variable liegt es nicht, ich habe es auch schon mit einem festen Pfad versucht, klappt auch nicht  :(

@Semeaphoros
Das werde ich mal veruschen, weist Du zufällig wo Ich in Word einstellen kann, ob es mit leerem Dokument aufgeht oder nicht.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Problem mit Wordobject
« Antwort #8 am: 09.07.04 - 08:30:10 »
Weiss nicht, obs eine Option, die man einstellen kann, gibt, dort, wo ich das im Einsatz gesehen habe, wird das über einen Schalter beim Aufstarten von Word gemacht, ist also im Icon hinterlegt. Du kannst das aber einfach umgehen, wenn Deine Wordobj-Variable belegt ist, dann erzeuge doch als allererstes ein neues Dokument in Word und mache dann weiter.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Problem mit Wordobject
« Antwort #9 am: 09.07.04 - 08:33:53 »
Hi,

dafür gibt es keine Option.

Bei uns wird das auch über den Startparameter /N gemacht. Dieser wird wie Semeaphoros schon geschrieben hat, beim Icon hinterlegt.


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #10 am: 09.07.04 - 08:57:50 »
@Semeaphoros
Hmmm, wenn es dafür keine Option gibt, sondern nur im Icon hinterlegt ist, kann das ja aber nicht mein Problem sein an den 4 PC's, oder?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Problem mit Wordobject
« Antwort #11 am: 09.07.04 - 09:25:22 »
Vergiss nicht, das ist Microsoft ...........

Ich würd jetzt trotzdem damit rechnen und überprüfen, ob tatsächlich ein Doc offen ist oder nicht.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #12 am: 09.07.04 - 15:34:22 »
Habe jetzt wieder Zugriff auf einen der PC's wo's nicht geht.

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

Das bringt eine type mismatch, aber laut debugger ist das wordobj leer

Die Sache mit Word habe ich auch geprüft, Word startet an diesem PC wie an jedem anderen, mit einem leeren Dokument.

Noch jemand eine Idee?

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #13 am: 09.07.04 - 16:15:48 »
gerade habe ich festgestellt, daß an diesem PC folgendes auch nicht klappt:

Ich habe das NotesDocument geöffnet. Wenn ich jetzt mit der rechten Maustaste auf des Object klicke und den Befehl "open" auswähle, kommt folgende Fehlermeldung "An error has occured while processing a request on an object" An einem anderen PC wird das gleiche Worddokument problemlos geöffnet.     :-\

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Problem mit Wordobject
« Antwort #14 am: 09.07.04 - 16:27:02 »
Dann ist entweder Word nicht korrekt als COM-Server registriert - versuche mal, in einem RT-Feld "Erstellen" - "Objekt", dann siehst Du gleich, obs da ist - oder in der notes.ini stimmt etwas nicht mit der Liste, die dort drin ist. Sorry, kann nicht auswendig sagen, welche ini-Variablen da r-elefant sind
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #15 am: 09.07.04 - 16:48:57 »
Also die Notes.ini habe ich jetzt verglichen. Alle Zeilen mit Word sind gleich wie an einem PC wo's geht. Ich kann zwar ein Wordobject in einem rtFeld erstellen, das Notesdokument dann aber nicht speichern.

Was auch komisch ist, in der Menuleiste von Notes steht normalerweise (wenn man ein Dokument anklick) Dokument. An diesem PC steht in der Menuleiste aber Word.Document.8

Ich werde an diesem PC jetzt wohl das Office mal neu installieren lassen, vielleicht hilft das.

Danke und ein schönes WE

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Problem mit Wordobject
« Antwort #16 am: 09.07.04 - 17:08:18 »
Das ist genau das, was mich die ganze Zeit gewundert hat: Warum funktioniert bei Dir überhaupt ein GetObject ("Word"). Leider hatte ich nicht genug Zeit, mich hier in für mich (noch) etwas unsicheres Terrain zu begeben:
Muss es denn nicht heissen:
Set wordobject = uidoc.GetObject ("Word.Application") bzw.
Set wordobject = uidoc.GetObject ("Word.Application.8") bzw.
Set wordobject = uidoc.GetObject ("Word.Application.9")

Das scheint mir - wie Jens es ja schon schrieb - ein Problem auf OS-Seite (Registry) bei Euch zu sein.

Such mal spassenshalber hier nach "GetObject" und dann nach "Word". Dann verdichtet sich das mit meinem Verdacht, das "Word" alleine nicht ausreicht, um der Registry die notwendigen Informationen für das COM-Objekt zu entlocken.

HTH,
Bernhard

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Problem mit Wordobject
« Antwort #17 am: 09.07.04 - 18:07:42 »
Du kannst eingebetteten Objekten einen Namen geben.
Über den Namen kannst du sie dann ansprechen.
Wenn das Objekt "Word" heißt, dann is es ok.
Mit der GetObjekt-Methode der NotesUIDocument-Klasse holst du dir ein Handle auf ein Objekt, das im Dokument ist.
Mit der LS-Funktion GetObject holst du dir ein Handle auf ein Objekt, das außerhalb deines UIDocs ist.
Also GetObject("Word.Application") holt die ein Handle auf eine geöffnete Word-Anwendung (oder auch nicht, wenn keine offen ist)

Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Problem mit Wordobject
« Antwort #18 am: 09.07.04 - 18:14:37 »
Hab auch das Gefühl, dass die Registry hier verschossen ist, ob das aber mit einer Neuinstallation behoben wird, ist fraglich, da MS die Registry bekanntlich nicht aufräumt.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re:Problem mit Wordobject
« Antwort #19 am: 13.07.04 - 16:56:57 »
Es hat geklappt   ;D  mein Hilfsadmin vor Ort hat das Office deinstalliert und die Registry von Hand aufgeräumt, jetzt funktioniert es.

Vielen Dank an alle die mitgeholfen haben.
Colibri

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz