Komunikaty o błędach lub awarie programu Access po zainstalowaniu aktualizacji zabezpieczeń MS16-004

Symptomy

Po zastosowaniu 2881067 aktualizacji zabezpieczeń, 2881029, 3039794 lub 2920727 opisanych w biuletynie zabezpieczeń MS16-004 występują problemy, które wpływają na bazę danych programu Access, jeśli używasz niektórych typowych mechanizmów kontroli systemu Windows. W szczególności te problemy występują, jeśli używasz kontrolek skojarzonych z kontrolkami MSCOMCTL. Plik OCX, który został zaktualizowany w aktualizacji zabezpieczeń. Te problemy mogą obejmować następujące kwestie:

  • Program ulega awarii podczas próby otwarcia obiektu zawierającego jedną z kontrolek.

  • Są wyświetlane komunikaty o błędach wskazujące, że zdarzenia zostały anulowane. Przykładowe komunikaty o błędach obejmują (ale nie są ograniczone do) następujące:

    Error 459: Object or class does not support the set of events. 
    
    2501: <EventName> action cancelled.
    
    The expression <EventName> you entered as the event property setting produced the following error: Object of class does not support the set of events.   
    

Przyczyna

Ten problem występuje, ponieważ aktualizacja zabezpieczeń MS16-004 może uniemożliwić prawidłowe ładowanie niektórych kontrolek ActiveX w istniejących wcześniej bazach danych programu Access lub w widoku projektu.

Rozwiązanie

Aby rozwiązać ten problem, ponownie zarejestruj plik MSCOMCTL. Plik OCX. Jeśli metoda 1 nie rozwiąże problemu, może być konieczne użycie metody 2, aby najpierw ręcznie usunąć klucz rejestru skojarzony z mscomctl. OCX.

Metoda 1. Ponowne rejestrowanie pliku MSCOMCTL. OCX z wiersza polecenia z podwyższonym poziomem uprawnień

Aby ponownie wyrejestrować mscomctl. OCX, wykonaj następujące kroki:

  1. Otwórz administracyjny wiersz polecenia.

  2. W systemie 64-bitowym uruchom następujące polecenia:

     Regsvr32 /u "C:\Windows\SysWOW64\MSCOMCTL.OCX" Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"
    
  3. W systemie 32-bitowym uruchom następujące polecenia:

     Regsvr32 /u "C:\Windows\System32\MSCOMCTL.OCX" Regsvr32 "C:\Windows\System32\MSCOMCTL.OCX"
    

Metoda 2. Ręczne aktualizowanie rejestru

Uwaga

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed zmodyfikowaniem go należy utworzyć kopię zapasową rejestru, aby móc go przywrócić w przypadku wystąpienia problemu.

  1. Zakończ pracę wszystkich programów pakietu Office.

  2. Kliknij przycisk Start, wpisz regedit w polu wyszukiwania Start , a następnie kliknij przycisk OK.

  3. W Redaktor rejestru znajdź i usuń następujący podklucz 2.0:

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

  4. Uruchom kroki 1–3 w metodzie.

Metoda 3 (dla administratorów): Uruchom plik wsadowy, aby automatycznie zaktualizować systemy

Uwaga

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed zmodyfikowaniem go należy utworzyć kopię zapasową rejestru, aby móc go przywrócić w przypadku wystąpienia problemu.

Po pomyślnym ustaleniu rozwiązania tego problemu w środowisku przy użyciu metod 1 i 2 można zautomatyzować proces. Aby to zrobić, wykonaj następujące kroki.

  1. Utwórz plik tekstowy, a następnie wklej w nim następujący tekst:

    reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f
    
    if exist %systemroot%\SysWOW64\cscript.exe goto 64 
    %systemroot%\system32\regsvr32 /u mscomctl.ocx
    %systemroot%\system32\regsvr32 mscomctl.ocx
    exit
    
    :64
    %systemroot%\sysWOW64\regsvr32 /u mscomctl.ocx
    %systemroot%\sysWOW64\regsvr32 mscomctl.ocx 
    Exit
    
  2. Zapisz plik.

  3. Zmień rozszerzenie nazwy pliku z .txt na .bat.

  4. Uruchom plik .bat. W tym celu kliknij go prawym przyciskiem myszy, a następnie kliknij przycisk Uruchom jako administrator. (W systemie Windows XP kliknij dwukrotnie plik).

Uwaga

Jeśli w metodzie 1 ustalono, że nie trzeba usuwać klucza rejestru wymienionego w metodzie 2, aby aplikacja działała, możesz usunąć wiersz "reg delete" z pliku wsadowego.

Więcej informacji

Kontrolki skojarzone z mscomctl. OCX są wymienione w oknie dialogowym Wstawianie kontrolki ActiveX w następujący sposób:

Microsoft ImageComboBox Control 6.0 (SP6)

Microsoft ImageList Control 6.0 (SP6)

Microsoft ListView Control 6.0 (SP6)

Microsoft ProgressBar Control 6.0 (SP6)

Microsoft Slider Control 6.0 (SP6)

Microsoft StatusBar Control 6.0 (SP6)

Microsoft TabStrip Control 6.0 (SP6)

Microsoft Toolbar Control 6.0 (SP6)

Microsoft TreeView Control 6.0 (SP6)

Uwaga

Numer wersji i poziom dodatku Service Pack mogą być czymś innym niż "6.0 (SP6)".

Zgłaszane są również problemy występujące w innych produktach pakietu Office po zainstalowaniu tej aktualizacji, chociaż objawy mogą się różnić od tych występujących w programie Access. W innych programach może nie być konieczne wprowadzanie żadnych zmian w rejestrze.

Informacje

Aby uzyskać więcej informacji na temat tej aktualizacji zabezpieczeń, zobacz następujące artykuły z bazy wiedzy Microsoft Knowledge Base: