AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.09.21 - 19:46:57
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 10
| |-+  ND10: Entwicklung (Moderatoren: eknori, fritandr, koehlerbv, Tode)
| | |-+  Cannot create automation object - Office 365
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Cannot create automation object - Office 365  (Gelesen 3415 mal)
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 112



« am: 11.05.21 - 09:16:22 »

Schönen guten Morgen,
ich habe eine Rechnungsanwednung in Notes vor ein paar Jahren programmiert.
Aus dieser Anwendung werden automatisch Rechnungen in Word erstellt und gedruckt.
Gestern habe ich mein Office 2010 durch ein Office 365 ersetzt.
Seitdem bekomme ich bei der Rechnungserstellung aus Notes heraus in der Zeile

'Word Instanz öffnen
Set word = CreateObject("Word.Application") 'Create Word object

die Fehlermeldung "Cannot create automation object".

Ich vermutete, dass aus dem Office 2010 noch Reste im Regedit standen.
Diese habe ich nun auch bereinigt (https://it-blogger.net/office-2010-vollstaendig-entfernen-und-erneut-installieren/). Dennoch kommt immer noch der zuvor genannte Fehler.

Jetzt weiß ich wirklich nicht mehr weiter.... vielleicht kennt jemand dieses Problem und kann mir einen Tipp geben.

Vielen herzlichen Dank.

Gruß Sabine

P.S.: Dieses Forum habe ich bereits durchsucht, habe aber leider keine passende Lösung gefunden.

« Letzte Änderung: 11.05.21 - 17:31:19 von Sabine » Gespeichert
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 428



« Antworten #1 am: 11.05.21 - 10:35:51 »

Hallo Sabine,

bevor ich in Registry und Script abtauche eine kurze Frage: Hast du die 32-Bit oder die 64-Bit Version von O365 installiert?

Die Info findest du z.B. in Word unter: Datei > Konto > Button "Info zu Word" anklicken > oberste Zeile

Dort sollte dann sowas wie "Microsoft® Word für Microsoft 365 MSO (16.0.13929.20206) 32-Bit" stehen.

Hintergrund: wenn es die 64-Bit Version sein sollte brauchst du nicht weiter probieren, die ist nicht kompatibel mit 32-Bit Anwendungen.
Da hilft nur deinstallieren und durch die 32-Bit Version ersetzen - ansonsten muss man auf Interaktionen via OLE & Co. verzichten.

Gruß
Carsten
Gespeichert
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 112



« Antworten #2 am: 11.05.21 - 11:09:17 »

Hallo Carsten,
erst einmal vielen lieben Dank für Deine schnelle Antwort und die ausführliche Beschreibung wo ich die installierte Version finde.

Ich habe diese Office 365 Version installiert:
Microsoft® Word für Microsoft 365 MSO (16.0.13929.20206) 32-Bit

Viele Grüße
Sabine
Gespeichert
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 428



« Antworten #3 am: 11.05.21 - 11:22:29 »

Super, eine Fehlerquelle weniger. Dann schauen wir mal ob's vielleicht am Code oder doch woanders (Objekt-Registrierung in Windows) liegt.

CreateObject("Word.Application") <= Sollte Word unsichtbar im Hintergrund starten, sieht man im Taskmanager als "WINWORD.EXE" im Reiter Details.

Ich habe mal einen Button mit Beispielcode erstellt der Word startet und ggf. sichtbar macht, hat bei mir in allen getesteten Varianten funktioniert.

Meldungen in der Statusbar ggf. durchsehen, einige Fehler sind normal damit man merkt ob man das Handle im Zugriff hat und werden dann entsprechend behandelt.

Code:
Sub Click(Source As Button)
Dim wrd As Variant
Dim tmpErr As Integer
On Error Goto ERRHNDL
Print "Word bereits gestartet?"
Set wrd = GetObject(, "Word.Application")
If tmpErr <> 0 Then
Print "Word läuft nicht, versuche die Anwendung zu laden."
tmpErr = 0
Set wrd = CreateObject("Word.Application")
If tmpErr <> 0 Then
tmpErr = 0
Print "Word läuft bereits, Objekt-Handle holen."
Set wrd = GetObject(, "Word.Application")
Else
Print "Word gestartet, Objekt-Handle vorhanden."
End If
Else
Print "Word läuft bereits, Objekt-Handle vorhanden."
End If
If tmpErr <> 0 Then
Print "Houston - Wir haben immer noch ein Problem: " & Cstr(tmpErr)
Else
If Not wrd.visible Then
Print "Prozess 'Word.Application' wird sichtbar gemacht."
wrd.visible = True
End If
Print "OK"
End If
Exit Sub

ERRHNDL:
tmpErr = Err
Print "Fehler " & Cstr(Err) & " in Zeile " & Cstr(Erl) & ": " & Error$
Resume Next
End Sub

Gespeichert
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 112



« Antworten #4 am: 11.05.21 - 11:38:12 »

Ich habe das Script in eine Schaltfläche von einer Maske eingebaut.

Leider steht in der Statuszeile "Houston - Wir haben noch ein Problem: 208" 'gefällt mir ;-)'

Ich habe mal ein Screenshot von der Statuszeile diesem Beitrag angehängt.

Vielleicht hast Du ja noch eine Idee? Vielleicht liegt es wirklich an der Objekt-Registrierung in Windows?
Gespeichert
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 428



« Antworten #5 am: 11.05.21 - 14:09:25 »

Zur Frage der korrekten Registrierung (auch wenn ich das momentan nicht als Ursache ansehe):

Ich hab mal einen Screenshot angehangen, wie das momentan bei dir aussehen sollte.
Du kannst anhand dessen in der Registry mal nach (1) Word.Application suchen und danach in der dort hinterlegten ClassID (blau) die Zuordnung zu Word überprüfen, also den Pfad zu LocalServer32 überprüfen (2). Das, was dort steht startet er mit deinem Aufruf normalerweise.

Zurück zum Script. Den Ausschriften nach zu urteilen wird Word gestartet (oder läuft zumindest zum Ende des Scripts). Lediglich das Objekt wird nicht übergeben oder der Zugriff wird gesperrt.

- Hast du mal im Taskmanager unter Details geprüft, ob/wie viele WINWORD Instanzen vor/nach dem Script laufen?
- Hast du mal alle WINWORD Instanzen vor dem Script beendet und nach dem Script geprüft?
- Arbeitet da irgendein Programm (Notes oder Office) mit Administrator-Rechten?
- Wie ist die UAC (Benutzerkontensteuerung) eingestellt? Von 4 Stufen (0=unten=aus bis 3=oben=max)

HTH
Carsten
Gespeichert
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 112



« Antworten #6 am: 11.05.21 - 16:18:35 »

Hallo Carsten,

ich habe nun auch mal ein paar Screenshots von meiner Registry angehangen, da sieht es schon ziemlich schlecht aus.
Die Zuordnung zu Word der Pfad der in CLSID stehen sollte, steht auf (Wert nicht festgelegt).

Zurück zum Script. Den Ausschriften nach zu urteilen wird Word gestartet (oder läuft zumindest zum Ende des Scripts). Lediglich das Objekt wird nicht übergeben oder der Zugriff wird gesperrt.

Word wird meines Erachtens nicht gestartet, da keine Winword.exe im Taskmanager auftaucht.
Zudem bricht das Script direkt bei dem Aufruf Set wrd = getObject(."Word.Application") direkt ab und läuft in den Errhndl rein.
Siehe hierzu den Screnshot.

- Hast du mal im Taskmanager unter Details geprüft, ob/wie viele WINWORD Instanzen vor/nach dem Script laufen?
Es laufen überhaupt keine Winword-Instanzen, weder vor noch nach dem Script.

- Hast du mal alle WINWORD Instanzen vor dem Script beendet und nach dem Script geprüft?
Hat sich demnach erledigt, da keine laufen.

- Arbeitet da irgendein Programm (Notes oder Office) mit Administrator-Rechten?
Denke nicht, aber da schau ich auch nochmal nach.

- Wie ist die UAC (Benutzerkontensteuerung) eingestellt? Von 4 Stufen (0=unten=aus bis 3=oben=max)
Ich denke auf Stufe 3, habe auch hier nochmal einen Screenshot angehangen.

Wenn man das alles so zusammenfasst - scheint es wohl wirklich an der Registry zu liegen :-(

Vielleicht reicht es aus, dass ich O365 nochmal drüber installiere?

Vielen, vielen lieben Dank schon mal für die großartige Hilfe.

Gruß Sabine
« Letzte Änderung: 11.05.21 - 16:22:48 von Sabine » Gespeichert
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 428



« Antworten #7 am: 11.05.21 - 17:15:44 »

ich habe nun auch mal ein paar Screenshots von meiner Registry angehangen, da sieht es schon ziemlich schlecht aus.
Die Zuordnung zu Word der Pfad der in CLSID stehen sollte, steht auf (Wert nicht festgelegt).

Der ganze Zweig CLSID fehlt. Eine Neuinstallation sollte das hoffentlich bereinigen.

Zudem bricht das Script direkt bei dem Aufruf Set wrd = getObject(."Word.Application") direkt ab und läuft in den Errhndl rein.
Siehe hierzu den Screnshot.

Das Script bricht nicht ab sondern getObject(,"Word.Application") (mit Komma übrigens, nicht mit Punkt) probiert, ob Word vielleicht schon läuft indem es einfach aufs Blaue "Word.Application" abfragt statt es mit CreateObject("Word.Application") blind zu starten. Das soll verhindern, dass Word immer und immer wieder neu aufgerufen wird - Ressourcen sparen ist hier die Devise.

Wenn getObject(,"Word.Application") fehlschlägt wird am Ende der Fehlerbehandlung durch Resume Next mit der nächsten Zeile oben sauber weiter gearbeitet und Word dann eben doch geladen (wenns denn funktionieren würde bei dir).

Deswegen schrieb ich zu dem Script: einige Fehler sind normal damit man merkt ob man das Handle im Zugriff hat und werden dann entsprechend behandelt.

Wenn man das alles so zusammenfasst - scheint es wohl wirklich an der Registry zu liegen :-(
Vielleicht reicht es aus, dass ich O365 nochmal drüber installiere?

Ja, ich stimme dir zu. Die anderen Sachen, die ich abgefragt hatte sehen ja normal aus.
Am besten du kontrollierst direkt nach der Installation den angesprochenen Reg. Zweig.

Mein Laptop hier hat auch schon mehrere Office Versionen gesehen, ob das bei einer frischen Installation auch so aussieht weiß ich daher nicht mit Bestimmtheit. Vielleicht schnappe ich mir morgen mal eine frische VM und schaue nach falls du mit einer Neuinstallation nicht weiterkommst.

Gruß Carsten
« Letzte Änderung: 11.05.21 - 17:17:42 von CarstenH » Gespeichert
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 112



« Antworten #8 am: 11.05.21 - 17:30:50 »

Hallo Carsten,

ich habe mir den "Support- und Wiederherstellungs-Assistenten von Microsoft" heruntergeladen und installiert.
In diesem Programm konnte ich zwischen verschiedenen Office-Versionen wählen, welche ich deinstallieren möchte.
Zwar hatte ich bereits gestern Office 2010 über die Systemeinstellungen deinstalliert, aber vielleicht sind irgenwelche Reste / Fragmente übrig geblieben (wie leider sehr oft).
Da meine Vorgängerversion Office 2010 war, habe ich diese Version ausgewählt.

Anschließend habe ich O365 neu installiert.
Und der Erfolg ist unmittelbar eingetreten, die Rechnungsverwaltung funktioniert wieder einwandfrei, juchuuuuu.

In der Registry sieht es nun so aus, wie auf Deinem Screenshot.
Ohne Deine Hilfe wäre ich nicht so weit gekommen.

Vielen, vielen herzlichen Dank dafür  Smiley

Gruß
Sabine
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: