Messages d’erreur ou blocages d’Accès après l’installation de la mise à jour de sécurité MS16-004

Symptômes

Après avoir appliqué les 2881067, 2881029, 3039794 ou 2920727 de mise à jour de sécurité décrites dans le bulletin de sécurité MS16-004, vous rencontrez des problèmes qui affectent votre base de données Access si vous utilisez certains contrôles windows courants. Plus précisément, ces problèmes se produisent si vous utilisez les contrôles associés à MSCOMCTL. Fichier OCX mis à jour dans la mise à jour de sécurité. Ces problèmes peuvent inclure les éléments suivants :

  • Le programme se bloque lorsque vous essayez d’ouvrir un objet qui inclut l’un des contrôles.

  • Vous recevez des messages d’erreur qui indiquent que les événements ont été annulés. Les exemples de messages d’erreur incluent (sans s’y limiter) les éléments suivants :

    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.   
    

Cause

Ce problème se produit car la mise à jour de sécurité MS16-004 peut empêcher certains contrôles ActiveX de se charger correctement dans des bases de données Access préexistantes ou en mode Création.

Résolution

Pour résoudre ce problème, réinscrivez MSCOMCTL. Fichier OCX. Si la méthode 1 ne résout pas le problème, vous devrez peut-être utiliser la méthode 2 pour d’abord supprimer manuellement une clé de Registre associée à MSCOMCTL. OCX.

Méthode 1 : Réinscrire MSCOMCTL. OCX à partir d’une invite de commandes avec élévation de privilèges

Pour réinscrire MSCOMCTL. OCX, procédez comme suit :

  1. Ouvrez une invite de commandes d’administration.

  2. Sur un système 64 bits, exécutez les commandes suivantes :

     Regsvr32 /u "C:\Windows\SysWOW64\MSCOMCTL.OCX" Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"
    
  3. Sur un système 32 bits, exécutez les commandes suivantes :

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

Méthode 2 : mettre à jour manuellement le registre

Remarque

Suivez attentivement les étapes de cette section. Des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Avant de modifier celui-ci, sauvegardez le Registre pour restauration en cas de problèmes.

  1. Quittez tous les programmes Office.

  2. Cliquez sur Démarrer, tapez regedit dans la zone de recherche Démarrer , puis cliquez sur OK.

  3. Dans le Registre Rédacteur, recherchez et supprimez la sous-clé 2.0 suivante :

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

  4. Exécutez les étapes 1 à 3 dans Méthode.

Méthode 3 (pour les administrateurs) : exécuter un fichier de commandes pour mettre à jour automatiquement les systèmes

Remarque

Suivez attentivement les étapes de cette section. Des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Avant de modifier celui-ci, sauvegardez le Registre pour restauration en cas de problèmes.

Une fois que vous avez déterminé le correctif pour ce problème dans votre environnement à l’aide des méthodes 1 et 2, vous pouvez automatiser le processus. Pour cela, procédez comme suit :

  1. Créez un fichier texte, puis collez-y le texte suivant :

    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. Enregistrez le fichier.

  3. Remplacez l’extension de nom de fichier .txt par .bat.

  4. Exécutez le fichier .bat. Pour ce faire, cliquez dessus avec le bouton droit, puis cliquez sur Exécuter en tant qu’administrateur. (Dans Windows XP, double-cliquez sur le fichier.)

Remarque

Si vous avez déterminé dans la méthode 1 que vous n’avez pas besoin de supprimer la clé de Registre mentionnée dans la méthode 2 pour que votre application fonctionne, vous pouvez supprimer la ligne « reg delete » du fichier de commandes.

Informations supplémentaires

Contrôles associés à MSCOMCTL. OCX est répertorié dans la boîte de dialogue Insérer un contrôle ActiveX comme suit :

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)

Contrôle de barre d’outils Microsoft 6.0 (SP6)

Microsoft TreeView Control 6.0 (SP6)

Remarque

Le numéro de version et le niveau de Service Pack peuvent être autres que « 6.0 (SP6) ».

Des problèmes sont également signalés dans d’autres produits Office après l’installation de cette mise à jour, bien que les symptômes puissent varier de ceux qui se produisent dans Access. Dans d’autres programmes, vous n’avez peut-être pas besoin d’apporter des modifications au registre.

References

Pour plus d’informations sur cette mise à jour de sécurité, consultez les articles suivants de la Base de connaissances Microsoft :