2012-08-16 53 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的屬性大多是以編程方式設置的,所以除了重新定位和重命名之外,應該做的很少。