ActiveX/第三方控件/插件
Access Treeview 树控件MSCOMCTL.OCX 在更新 KB 2687323后无法正
2013-10-01 20:38:31

Access Treeview 树控件MSCOMCTL.OCX 在更新 KB 2687323后无法正常使用的问题(VB6也是)   

Windows更新后安装安全更新 KB2687323, Access中使用Treeview或VB6项目加载失败。显示错误消息“' MSCOMCTL.OCX'不能被加载 - 继续加载项目吗?

 

 
详细介绍:
 
MSCOMCTL.OCX注册在平时的system32文件夹中。
经过几个小时的努力,系统还原,登记,注销周期和一个晚上的睡眠,我已经设法以查明问题。事实证明,如果是VB项目文件包含以下行:
 
object={831FDD160C5C-11D2-A9FC的的0000F8754DA1}#2.0#0; MSCOMCTL.OCX
“2.0”版本信息似乎是不加载的原因。将其更改为“2.1”记事本解决了这个问题:
 
object={831FDD160C5C-11D2-A9FC的的0000F8754DA1}#2.1#0; MSCOMCTL.OCX
因此,在一个类似的“OCX无法加载”的局面分辨率的一种可能的方法是启动一个新的项目。  
一个更简单的解决方案:你可以打开你的VB项目文件,在记事本中,防止VB6项目会自动升级至2.1,并删除它:
 
NoControlUpgrade=1 如果是Access的数据库程序,则按照下面的方法建立一个批处理文件 如是windows 64位系统,则可按以下命令来解决:

cd C:\Windows\SysWOW64\ regtlib msdatsrc.tlb

下面是一个通用的批处理文件(国外的解决办法)

@echo off reg query "HKEY_CLASSES_ROOT\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.1" if %errorlevel%==0 GOTO DELREGKEY if %errorlevel%==1 GOTO REGISTEROCX :DELREGKEY reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f :REGISTEROCX if exist %systemroot%\SysWOW64\cscript.exe goto 64 %systemroot%\system32\regsvr32 /u mscomctl.ocx /s %systemroot%\#p#分页标题#e#system32\regsvr32 mscomctl.ocx /s exit :64 %systemroot%\sysWOW64\regsvr32 /u mscomctl.ocx /s %systemroot%\sysWOW64\regsvr32 mscomctl.ocx /s exit

还可试一下  reg/unreg mscomctl.ocx  如果是Excel或word 可修改你的 *.dot 文件, 搜索 #2.0#0, 替换 为#2.1#0 --> 就解决了 另一个解决办法  http://stackoverflow.com/a/15785253/2240058 另外可能的解决办法 , 

清除 KillBit:

  1. 打开注册表 (regedit.exe or regedt32.exe)
  2. 定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility{BDD1F04B-858B-11D1-B16A-00C0F0283628}
  3. 在右边面板 双击 “Compatibility Flags”,将值从 Hex 0x400 (Decimal 1024) 改为 0 
  4. 再打开你的使用 "2.0" 版本MSCOMCTL.OCX 的程序, 应该正常了
如果是VB项目,修改以下

Fix these two lines like that:

Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX

Search the files (.vbp and .frm) for lines like this:

#p#分页标题#e#Begin ComctlLib.ImageList ILTree Begin ComctlLib.StatusBar StatusBar1 Begin ComctlLib.Toolbar Toolbar1`

The lines may be like this:

Begin MSComctlLib.ImageList ILTree Begin MSComctlLib.StatusBar StatusBar1 Begin MSComctlLib.Toolbar Toolbar1`

 
(微软Activex控件-相关文章技巧链接):Access TreeView树控件兼容性问题之奇葩偏方