使用TreeView(MSComctlLib.TreeCtrl.2)訪問2010-應用程序顯示並按預期填充,但在Windows安全修補程序不會將事件觸發回VBA後突然出現。MS-Access在win sec-update後沒有捕獲treeview事件
嘗試回滾/ syswow64中的MSCOMCTL.OCX,但沒有運氣。
請ping任何類似的行爲或提示以解決問題。
問候,
使用TreeView(MSComctlLib.TreeCtrl.2)訪問2010-應用程序顯示並按預期填充,但在Windows安全修補程序不會將事件觸發回VBA後突然出現。MS-Access在win sec-update後沒有捕獲treeview事件
嘗試回滾/ syswow64中的MSCOMCTL.OCX,但沒有運氣。
請ping任何類似的行爲或提示以解決問題。
問候,
出現的問題是,對於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
我驗證過這部作品在我們的環境。
這也適用於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
我打開了在Windows 7 32位上運行的32位Access 2013上開發的Access文件,並且在Windows 8 64位上運行的64位Access 2013上打開時遇到此問題。
我的解決辦法:
刪除控制和重新添加,使用Access窗體的設計視圖。
因爲treeview的屬性大多是以編程方式設置的,所以除了重新定位和重命名之外,應該做的很少。
我有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
看看這個: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
@ kh1,謝謝。 Ray023,如前所述 - 應用程序在更新之前運行正常。我將應用在鏈接中提供的補丁併發回。 – Teson 2012-08-16 21:56:45