News

FAQ Access – Probleme mit TreeView, ListView und Co. beheben

Category:

Access, FAQ

0

Access Formulare – Probleme mit TreeView, ListView und Co. beheben

Problem :

Funktionsverlust in Treeviews – Sicherheitsupdate Sicherheitsupdate KB2687441. Am 14. August 2012 war es mal wieder soweit: Microsoft hat eine Änderung an den ActiveX-Steuerelementen der Bibliothek MSCOMCTL.ocx vorgenommen, welche die meisten in Betrieb befindlichen TreeView- und ListView-Steuerelemente untauglich machte und zahlreichen Entwicklern tagelange Fehlersuche bescherte. Wir zeigen, wie die Probleme entstehen und wie Sie diese beheben können. Die Bibliothek MSCOMCTL.ocx enthält ActiveX-Steuerelemente wie das TreeView-Steuerelement oder das ListView-Steuerelement. Mit einem Sicherheitsupdate hat Microsoft im August 2012 eine neue Version dieser Bibliothek geliefert, die allerdings je nach Office-Version nicht richtig registriert wurde.

Problemlösung:

Dies resultiert in verschiedenen Problemen, zum Beispiel:

– Fehler 2683, In diesem Steuerelement befindet sich kein Objekt
– Benutzerdefinierte Ereignisprozeduren werden nicht mehr ausgeführt
– Oder es erscheint die folgende Meldung, sobald Sie mit der Maus etwa ein ListView-Steuerelement überfahren
– In einigen Fällen wir auch einfach der Verweis auf die Bibliothek MSCOMCTL.ocx im Verweise-Dialog als NICHT VORHANDEN gekennzeichnet

faq_access406_1

Problemlösung:

Diese Probleme entstehen dadurch, dass die neue MSCOMCTL.ocx nicht ordnungsgemäß registriert beziehungsweise die alte nicht richtig aus der Registrierung entfernt wurde. Dies äußert sich in einigen Fällen darin, dass die Registry unter dem Zweig

HKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}

nun zwei Elemente namens 2.0 und 2.1 enthält. In manchen Fällen war nach der Installation auch nur ein Eintrag vorhanden, nämlich 2.0., in andere Fällen wiederum war der Pfad 2.0 leer, der Schlüssel an sich aber leer. Wir haben also drei Varianten, die auftauchen können.

faq_access406_2

Variante I:

Der Schlüssel für die Version 2.0 ist leer, der Schlüssel 2.1 ist vorhanden:

faq_access406_3

Variante II:

Die Version 6.1.98.34 der Datei MSCOMCTL.ocx wird installiert, aber nicht richtig registriert beziehungsweise die Vorgängerversion nicht korrekt entfernt. Wenn ein Zweig namens 2.0 vorhanden ist, muss dieser entfernt werden. Der Zweig 2.1 muss nochmals erneuert werden. Auch hier kann direkt in der Registry gearbeitet werden. Soll dies nicht geschehen, so kann auch über die Eingabeaufforderung geschehen.

Sie benötigen dazu zunächst eine ältere Version der MSCOMCTL.ocx, um die Registrierungseinträge für die alte Version auf einfache Weise zu entsorgen. Sie finden die Version 6.1.98.33 im Download zu diesem Beitrag. Diese kopieren Sie in das Verzeichnis der Systemdateien, je nach Windows-Version eines der folgenden (gegebenenfalls sichern Sie die aktuelle Version der MSCOMCTL.ocx):

32-bit: c:\Windows\System32
64-bit: c:\Windows\SysWow64

Danach öffnen Sie die Eingabeaufforderung mit Administrator-Rechten. Dies erledigen Sie, indem Sie mit der rechten Maustaste auf den entsprechenden Eintrag im Startmenü klicken und dort den Eintrag Als Administrator ausführen … betätigen. In der Eingabeaufforderung registrieren Sie dies alte Version der MSCOMCTL.ocx und entfernen anschließend die Registrierung wieder.

faq_access406_4

Für Windows in der 64-bit-Version geht dies mit den folgenden beiden Befehlen:

RegSvr32.exe c:\Windows\SysWow64\MSCOMCTL.ocx 
RegSvr32.exe -u c:\Windows\SysWow64\MSCOMCTL.ocx

 

Für Windows in der 32-bit-Version führen Sie folgende Anweisungen durch:

RegSvr32.exe c:\Windows\System32\MSCOMCTL.ocx 
RegSvr32.exe -u c:\Windows\System32\MSCOMCTL.ocx

 

Dies entfernt den Schlüssel der alten Version aus der Registry, also den mit dem Wert 2.0.
Anschließend kopieren Sie die im Download enthaltene Version 6.1.98.34, also die neue Version, in das Verzeichnis c:\Windows\System32 (32-bit) oder c:\Windows\SysWow64 (64-bit).

Diese registrieren Sie dann ganz einfach mit dem Befehl

RegSvr32.exe c:\Windows\SysWow64\MSCOMCTL.ocx

 

für Windows mit 64-bit oder mit

RegSvr32.exe c:\Windows\System32\MSCOMCTL.ocx

 

für Windows mit 32-bit.

Variante III:

Ein mit der neuen Version kompiliertes Projekt landet auf einem System, das noch nicht mit der neuen Version ausgestattet ist und verursacht Probleme.

Sie löschen die alte Version der Datei MSCOMCTL.ocx oder benennen diese um und kopieren die im Download zu diesem Beitrag befindliche aktuelle Version in das Verzeichnis der Systemdateien. Für 64-bit-Windows heißt dieses Verzeichnis wie folgt:

c:\Windows\SysWow64

Bei der 32-bit-Version von Windows ist dieses Verzeichnis relevant:

c:\Windows\System32

Dies behebt zumindest den Fehler aus der Abbildung. Allerdings werden noch immer keine benutzerdefinierten Ereignisprozeduren ausgelöst. Dies erreichen Sie durch Entfernen der alten Registrierungseinträge und Neur-Registrieren der neu hinzugefügten Version der MSCOMCTL.ocx. Beim 64-bit-Windows verwenden Sie diese beiden Anweisungen:

RegSvr32.exe -u c:\Windows\SysWow64\MSCOMCTL.ocx
RegSvr32.exe c:\Windows\SysWow64\MSCOMCTL.ocx

 

Für die 32-bit-Version kommen diese Befehle zum Einsatz:

RegSvr32.exe -u c:\Windows\System32\MSCOMCTL.ocx

RegSvr32.exe c:\Windows\System32\MSCOMCTL.ocx
Download der Dateien

Tags: ,

Leave a Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.