Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Automatisierungsfehler

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Automatisierungsfehler (3481 mal gelesen)
oberh
Mitglied



Sehen Sie sich das Profil von oberh an!   Senden Sie eine Private Message an oberh  Schreiben Sie einen Gästebucheintrag für oberh

Beiträge: 19
Registriert: 12.10.2006

erstellt am: 27. Okt. 2010 12:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forengemeinde!

Ich bin Access(XP)-VBA-Hobbyprogrammierer.
Aus diesem Grunde betreue und programmiere ich auch in unserer Abteilung alle Ac-Datenbanken.

Wir haben nun AutoCad Civil 3D 2011 per Softwareverteilung installiert.

Seitdem funktioniert der Aufruf
Set oExcelApp = CreateObject("Excel.Application")
in meiner Ac-DB nicht mehr - es erscheint die Fehlermeldung:
Laufzeitfehler '-2147319779 (8002801d)'
Automatisierungsfehler
Bibliothek nicht registriert

Habe den Verweis gelöscht und neu eingefügt - Fehler bleibt.
Die erneute Installation des Office- und des Reparaturpaketchens OfficeXP brachten auch keinen Erfolg.

Habt Ihr da ne Tip?

Danke im Voraus
Olaf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 27. Okt. 2010 12:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

probier mal gleiches in Word. Starte Word, darin VBA und probier von hier aus mal das Excel zu starten.
Ich vermute mal, es handelt sich um einen Versionskonflikt oder daran, dass Excel sich vielleicht gar nicht richtig installiert fühlt.

- alfred -

------------------
www.hollaus.at

oberh
Mitglied



Sehen Sie sich das Profil von oberh an!   Senden Sie eine Private Message an oberh  Schreiben Sie einen Gästebucheintrag für oberh

Beiträge: 19
Registriert: 12.10.2006

erstellt am: 27. Okt. 2010 13:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred!

Danke erst einmal für Deine Antwort.

Nun, habe gerade versucht, Deinem Vorschlag zu folgen.
Habe Word geöffnet - ein Sub test() erstellt.
Im Modul fehlt "Option explicit" ...

Dim o As Excel.Application

Dann habe ich aus meinem Ac-Code kopiert die Zeile:

Set oExcelApp = CreateObject("Excel.Application")

Teste ... Code läuft durch - "ach - Variable umbenennen ...!"

Set o = CreateObject("Excel.Application")

--> Fehler!

Wieso läuft nun die Variable "o" nur als Object ?
Early-Binding läuft nicht - Late-Binding läuft?

OK - das Problem erscheint gelöst - ich würde es trotzdem gerne verstehen - hmmmmmm.

Bei VB-Fun habe ich den Hinweis gefunden, den auch Du ansprichst:
Wenn Sie sich für Early Binding entscheiden, dann sollten Sie in Ihrem Projekt einen Verweis auf die niedrigste Version des Office-Produkts einbinden, das auf dem Zielsystem vorhanden sein könnte.

Wir haben NUR Office XP installiert.
Wenn Civil nun höhere Versionen sucht/verlangt, dann habe ich dem ja entsprochen ...

Zudem lieferte
Set o = CreateObject("Excel.Application.10")
den selben Fehler.

Viele Grüße
Olaf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 27. Okt. 2010 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

mit Option Explicit kannst Du immer noch diesen Weg wählen

Code:
Dim tObj as Object
Dim tXlsApp as Excel.Application
Set tObj = CreateObject("Excel.Application")
Set tXlsApp = tObj

Bzgl. Excel-Versionen (oder allg. Office-Versionen) ==> Dem Civil ist es egal, denn Civil hat mit Excel gar nix am Hut, daher verlangt Civil keine explizite Office-Version. Einzig der Verweis, den Du einbindest, bestimmt die Version von Excel, mit der Deine App umgehen kann.


>> Wenn Sie sich für Early Binding entscheiden, dann sollten Sie in Ihrem Projekt einen Verweis
>> auf die niedrigste Version des Office-Produkts einbinden, das auf dem Zielsystem vorhanden sein könnte.

Schön und gut, aber das setzt voraus, dass Du auf dem System, auf dem Du entwickelst, die älteste Version auch installiert und lauffähig hast. Willst Du von der Version von Excel komplett unabhängig sein, dann kannst Du (mit VBA) nur late-bindung-basierend arbeiten und alles per 'Object' deklarieren.
Das macht das Programmieren natürlich aufwendiger und als solches würde ich zuerst mit Verweisen und richtigen Deklarationen arbeiten und erst am Ende (getestet und abgenommen) den Verweis rausnehmen und auf Objekttypdeklaration 'Object' umdrehen. Ist aber Ansichtssache.

HTH, - alfred -

------------------
www.hollaus.at

oberh
Mitglied



Sehen Sie sich das Profil von oberh an!   Senden Sie eine Private Message an oberh  Schreiben Sie einen Gästebucheintrag für oberh

Beiträge: 19
Registriert: 12.10.2006

erstellt am: 27. Okt. 2010 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred!

Habe gerade in "einer" DB alles bzgl. Excel auf Latebinding umgestellt.

aber das setzt voraus, dass Du auf dem System, auf dem Du entwickelst, die älteste Version auch installiert und lauffähig hast.

Hatte ich ja - bis ich Civil installiert hatte.
Der Fehler ist zuerst auf einem anderen Rechner aufgetaucht.
Von daher bin ich "langsam" an die Sache heran gegangen.
Zuerst musste MS-Installer 4.5 installiert werden (wegen unserer Softwareverteilung) - kein Fehler ...
Dann habe ich den FDO-Provider installiert - kein Fehler ...
Civil installiert - Fehler!

Also irgendwas hat Civil da schon verstellt ...

Dein Codebeispiel funzt übrigens nicht.
Der Automationsfehler taucht in der letzten Zeile wieder auf.
Kann ja auch nicht klappen, da wir hier über einen Umweg doch wieder auf den Verweis zurückgreifen.

Danke nochmal
Olaf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 27. Okt. 2010 16:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ganz ehrlich, ich kann's nicht glauben, dass durch Installation von Civil3D2011 ein VBA-Makro innerhalb von MSAccess nicht mehr auf Excel hingreifen können soll. Mir würde zumindest jede Idee fehlen, wie das von statten gehen sollte.


>> Dein Codebeispiel funzt übrigens nicht.

Wenn mein Beispiel nicht funkt, dann verweist Du (in den VBA-Verweisen) auf eine andere Version von Excel als durch CreateObject gestartet wurde.
Wenn Du im Verweisdialog mal auf den Excel-Verweis draufklickst, dann schau mal unten auf den Pfad, wo der Verweis hinzeigt.


- alfred -

------------------
www.hollaus.at

oberh
Mitglied



Sehen Sie sich das Profil von oberh an!   Senden Sie eine Private Message an oberh  Schreiben Sie einen Gästebucheintrag für oberh

Beiträge: 19
Registriert: 12.10.2006

erstellt am: 27. Okt. 2010 16:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred!

Der Verweis "Microsoft Excel 10.0 Object Library" zeigt auf:

C:\Programme\Microsoft Office\Office10\Excel.exe

Da stand se immer - da wird se immer stehen bleiben ... #lach#

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 27. Okt. 2010 16:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

dann probier mal die funktionierende Variante von CreateObject .... und nachfolgend versuch mal mit GetObject zu arbeiten und auf dieses Objekt hinzuverbinden.

- alfred -

------------------
www.hollaus.at

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz