Probleme mit TreeView, ListView und Co. beheben

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.

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 Meldung aus Bild 1, sobald Sie mit der Maus etwa ein ListView-Steuerelement überfahren.
  • pic002.png

    Bild 1: Fehler beim Einsatz einer mit der neuen Version kompilierten Datenbank mit der alten Version der Datei MSCOMCTL.ocx

  • In einigen Fällen wir auch einfach der Verweis auf die Bibliothek MSCOMCTL.ocx im Verweise-Dialog als NICHT VORHANDEN gekennzeichnet – was wiederum zu Folgefehlern führt, die gar nicht mit dem ursprünglichen Problem zu tun haben. So erkennt Access beispielsweise einfache VBA-Befehle nicht mehr.

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 (s. Bild 2). In manchen Fällen war nach der Installation auch nur ein Eintrag vorhanden, nämlich 2.0.

pic001.png

Bild 2: Mögliche Registry-Konstellation nach Installation des Sicherheitsupdates

Mitunter scheint das Sicherheitsupdate und somit die neue Version gar nicht für die Probleme verantwortlich zu sein. Auf einer virtuellen Maschine erhielt ich beispielsweise die oben genannte Meldung, obwohl dort nachweislich die Version 6.1.98.33 installiert war – die neue Version heißt 6.1.98.34. Möglicherweise resultieren solche Probleme daraus, dass Sie eine Anwendung auf einem Rechner mit der neuen Version der MSCOMCTL.ocx kompilieren, diese auf dem Zielsystem aber nicht vorhanden ist.

In diesem Fall reichte es, einfach nur die neueste Version der MSCOMCTL.ocx über die vorhandene Version zu kopieren beziehungsweise die vorhandene Version umzubenennen und die neue in das Verzeichnis der Systemdateien zu kopieren!

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar