2012-08-16 51 views
4

使用TreeView(MSComctlLib.TreeCtrl.2)访问2010-应用程序显示并按预期填充,但在Windows安全修补程序不会将事件触发回VBA后突然出现。MS-Access在win sec-update后没有捕获treeview事件

尝试回滚/ syswow64中的MSCOMCTL.OCX,但没有运气。

请ping任何类似的行为或提示以解决问题。

问候,

+0

我有Win 7和Office 2010.我还没有应用更新并创建了一个测试数据库并测试Excel工作表,添加了treeview控件并设置了一些messageboxes进入和退出。测试,更新并再次测试。它同时适用于excel和access。 [类似问题](http://stackoverflow.com/questions/11971358/excel-vba-automation-errors-due-to-office-service-pack-3-0-caused-by-forms/11971632#11971632)昨天来了,修复是重新注册控制(而不是回滚)。你试过了吗? – ray 2012-08-16 10:34:01

+1

看看这个:http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_update/security-update-for-mscomctlocx-kb2597986-ms12-060/6dadedda-7bfa-4569- 91d8-a31ebcf6a08a?page = 1&tm = 1345052661855 – HK1 2012-08-16 15:31:14

+0

@ kh1,谢谢。 Ray023,如前所述 - 应用程序在更新之前运行正常。我将应用在链接中提供的补丁并发回。 – Teson 2012-08-16 21:56:45

回答

2

出现的问题是,对于MSCOMCTL.OCX的注册表项安全更新后打破。一个解决方案可以在这个KB article中找到。它表明运行这个批处理文件以管理员身份:

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 

我验证过这部作品在我们的环境。

+0

这也适用于Access 2013(用于在Win8/x64上使用MSO 32位)。进一步相关的知识库文章:[KB2597986](http://support.microsoft.com/kb/2597986)以及链接下载最新的二进制文件:[KB957924](https://support.microsoft.com/kb/ 957924)在网上也发现了评论,这个注册表修复帮助了数百个客户。 – metadings 2014-05-15 13:49:32

1

我打开了在Windows 7 32位上运行的32位Access 2013上开发的Access文件,并且在Windows 8 64位上运行的64位Access 2013上打开时遇到此问题。

我的解决办法:

删除控制和重新添加,使用Access窗体的设计视图。

因为treeview的属性大多是以编程方式设置的,所以除了重新定位和重命名之外,应该做的很少。