none
Access 2003 unter WIN XP PRO 32bit und WIN 7 PRO 64bit

    Frage

  • ACCESS Fehler MSCOMDTL.OCX --> dll fehlt

    Eine ACCESS 2003 Anwendung unter Windows XP PRO 32bit läuft einwandfrei. Neuer zusätzlicher Rechner mit Windows 7 PRO 64bit gekauft. Access 2003 darauf installiert. Die ACCESS Anwendung unter Windows 7 weiterentwickelt.

    Wenn man nun das weiterentwickelte Programm auf dem Windows XP Rechner starten will, erscheint dll Fehler. Das Problem liegt an einem in Access notwenigen Verweis (im VBA EDITOR unter EXTRAS--> Verweise) auf die MSCOMDTL.OCX Datei. IM Windows XP Rechner liegt diese im Windows\ System32 Ordner. Bei Windows 7 im Windows\SysWOW64 Ordner. Der Verweis lässt sich auf dem Windows XP Rechner nicht mehr deaktivieren --> Häckchen entfrenen und sichern nutzt nichts). Also: Wie kann man den Windows 7 Rechner innerhalb Access dazu bringen auf den SYSTEM32 Ordner zu pointern und wie bekommt man die die Notwendige Datei hinein?

    Donnerstag, 8. Mai 2014 14:52

Antworten

  • Hallo,

    der Ordner ist schon richtig, dort gehören alle 32-Bit Bibliotheken hin - und die MSCOMCTL.OCX ist eine solche - für den Hintergrund siehe Wikipedia WOW64

    Active-X DLL (OCX) werden nicht über den Dateipfad gefunden, sondern über die Windows Registry. Vermutlich fehlt noch die Registierung, siehe dazu:

    How to register an ActiveX control manually (.ocx)

    und auch Security Update MS12-060 Impairs Functionality of Access Database

    Gruß Elmar

    Donnerstag, 8. Mai 2014 16:30
  • Hallo Peter,

    Du solltest die MSCOMCTL aus dem SysWOW64 Verzeichnis registrieren, denn da gehört sie hin. Das kann wichtig werden, wenn Microsoft die Datei aktualisiert. Siehe dazu den zweiten (MS012-060) Artikel - der erste KB-Artikel bezieht sich nur auf 32-Bit.

    COM Komponenten - auch Active-X, OCX bzw. OLE genannt -  hinterlegen ihre Grundinformationen in der Registry. Dort werden nicht nur die Informationen über den Speicherort, sondern auch  enthaltene Schnittstellen (Klassen) uam. hinterlegt.

    Access greift ebenfalls darauf zurück, wenn es die verfügbaren Komponenten im Auswahl-Dialog zeigt.

    Da du Access 2003 verwendest, läuft dein Programm als 32-Bit Programm (unter SysWOW64) und verwendet ausschließlich 32-Bit Komponenten.

    Erst mit Office 2010 und später gibt es Office auch als 64-Bit - nur funktionieren dort viele OCX nicht mehr, da sie oft nur für 32-Bit existieren - siehe Compatibility Between the 32-bit and 64-bit Versions of Office 2010. Sprich: Wenn Du das später mal auf eine aktuelle Office Version umstellst, solltest Du das vorher bedenken.

    Gruß Elmar

    Freitag, 9. Mai 2014 07:54

Alle Antworten

  • Hallo,

    der Ordner ist schon richtig, dort gehören alle 32-Bit Bibliotheken hin - und die MSCOMCTL.OCX ist eine solche - für den Hintergrund siehe Wikipedia WOW64

    Active-X DLL (OCX) werden nicht über den Dateipfad gefunden, sondern über die Windows Registry. Vermutlich fehlt noch die Registierung, siehe dazu:

    How to register an ActiveX control manually (.ocx)

    und auch Security Update MS12-060 Impairs Functionality of Access Database

    Gruß Elmar

    Donnerstag, 8. Mai 2014 16:30
  • Hallo Elmar

    Vielen Dank für deine Antwort.

    Nun ich bin nicht ganz unbedarft, was EDV Fragen/Probleme betrifft. Doch ich muss zugeben, hier wurde ich verständnissmässig abgehängt!

    Ich habe die Registrierung (Regsvr32 /s c:\windows\system32\mscomctl.ocx) durchgeführt und nach einem kurzen Test scheint es zu funktionieren!

    Doch bitte, es ist mir immer wichtig "zu verstehen"!!

    Warum muss das auf einem 64Bit Windows Rechner durchgeführt werden? Warum findet sich nach Durchführung der Registrierung weiterhin innerhalb von Access ein Verweis auf die MSCOMCTL.ODX im Directory SysWOW64 --> hier kann das Häckchen JETZT deaktiviert werden und das Programm läuft sowohl unter WIN 64bit als auch unter WIN 32bit? Was passiert durch die Registrierung? Was muss ich mir dabei genau vorstellen?

    Nochmals vielen Dank! Mir war schon, als sei es nicht zu lösen!

    Gruß Peter

    Freitag, 9. Mai 2014 07:12
  • Hallo Peter,

    Du solltest die MSCOMCTL aus dem SysWOW64 Verzeichnis registrieren, denn da gehört sie hin. Das kann wichtig werden, wenn Microsoft die Datei aktualisiert. Siehe dazu den zweiten (MS012-060) Artikel - der erste KB-Artikel bezieht sich nur auf 32-Bit.

    COM Komponenten - auch Active-X, OCX bzw. OLE genannt -  hinterlegen ihre Grundinformationen in der Registry. Dort werden nicht nur die Informationen über den Speicherort, sondern auch  enthaltene Schnittstellen (Klassen) uam. hinterlegt.

    Access greift ebenfalls darauf zurück, wenn es die verfügbaren Komponenten im Auswahl-Dialog zeigt.

    Da du Access 2003 verwendest, läuft dein Programm als 32-Bit Programm (unter SysWOW64) und verwendet ausschließlich 32-Bit Komponenten.

    Erst mit Office 2010 und später gibt es Office auch als 64-Bit - nur funktionieren dort viele OCX nicht mehr, da sie oft nur für 32-Bit existieren - siehe Compatibility Between the 32-bit and 64-bit Versions of Office 2010. Sprich: Wenn Du das später mal auf eine aktuelle Office Version umstellst, solltest Du das vorher bedenken.

    Gruß Elmar

    Freitag, 9. Mai 2014 07:54