設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

12下一頁
返回列表 發(fā)新帖
查看: 10798|回復(fù): 15
打印 上一主題 下一主題

[ActiveX] TreeView出錯,似與MSCOMCTL.OCX版本有關(guān)【已解決】

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2013-4-2 17:07:20 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
本帖最后由 zww3008 于 2013-4-3 09:21 編輯

我的ACCESS數(shù)據(jù)庫使用了TreeView,后來各種奇怪問題不斷,問題提示五花八門各有不一,例如:
后來反復(fù)研究,原來問題都出在對TreeView控件的引用上,即Windows\system32\MSCOMCTL.OCX的引用上。如圖:

我在十臺電腦上(共讀一臺服務(wù)器上的數(shù)據(jù))應(yīng)用對比,反復(fù)研究得出以下結(jié)論:
1、應(yīng)該與MSCOMCTL.OCX的版本有關(guān)(我在這十臺電腦上提取的不同版本如上圖)。
2、但又不能通過簡單的拷貝替換MSCOMCTL.OCX并重新注冊來解決問題,并且與Windows版本和OFFICE版本無關(guān)。非常奇怪的是,對Windows版本、OFFICE版本、MSCOMCTL.OCX版本,三者都與我的電腦完全一樣的有些電腦,卻存在問題,有些不一樣電腦,但卻沒問題,通過替換MSCOMCTL.OCX版本,以及重裝OFFICE2003SP2/SP3不同版本,原來有問題的始終有問題,不能解決。
3、我的電腦使用的MSCOMCTL.OCX版本是2012-5-2更新的V6.1.98.34。發(fā)現(xiàn),只要經(jīng)過我的電腦編輯過的任何mdb文件(有引用MSCOMCTL.OCX的),那么到了原來有問題的電腦上,就打不開,彈出上述錯誤提示。把我的電腦上的MSCOMCTL.OCX版本替換為低版本的MSCOMCTL.OCX后,再來打開經(jīng)過我編輯過的mdb,也打不開了,此時在VBA編輯窗口中查看MSCOMCTL.OCX的引用時倒不會提示“丟失.....”,但就是不能顯示樹的結(jié)點(diǎn)。
4、問題的手動解決:到任何一臺有問題的電腦上,打開該mdb,并打開VBA代碼窗口,“工具--引用”,此時會看到顯示
“丟失:Microsoft Windows Common Controls 6.0 (SP6)”
將前面的勾去掉,然后重新手動“瀏覽”加載引用,保存關(guān)閉,這個時候,原來有問題的的電腦就可以打開了。

我不知道“引用”到底是什么原理,是否將MSCOMCTL.OCX打包進(jìn)mdb文件里面??
一句話,我使用最新版的MSCOMCTL.OCX像病毒一樣對mdb文件有污染(當(dāng)然并不是真的有病毒,MSCOMCTL.OCX文件本身是正確的),只要重新保存過,到另一些電腦上就運(yùn)行出錯,將我的電腦替換回低版本的MSCOMCTL.OCX想重新編輯過,結(jié)果文件也打不開,想編輯都不行。如果在原來有問題的電腦上編輯并保存,然后到我電腦上來打開,結(jié)果徹底打不開了,文件似乎損壞,如何修復(fù)都不行,只好將原來備份的mdb中重新提取該窗體替換掉。

問:
1、這到底是怎么回事?如果是MSCOMCTL.OCX版本引起,看起來應(yīng)該相當(dāng)普遍吧?不可能沒有人遇到,但百度搜索沒任何信息。
2、當(dāng)“引用”窗口中出現(xiàn)“丟失:Microsoft Windows Common Controls 6.0 (SP6)“提示時,如何用VBA代碼自動實(shí)現(xiàn)上述手動修復(fù)的步驟?即先去掉原來的勾,重新瀏覽加載引用,這個過程。
試過:   
    Dim ref As Reference
    Set ref = References.AddFromFile("c:\windows\system32\MSCOMCTL.OCX")
無效,原來已經(jīng)引用過的,執(zhí)行該命令時反而出錯。

給一個樣例,原本就來自網(wǎng)上,一個是原版的,一個是經(jīng)過我的電腦重新保存“污染”過的。兩個版本在我的電腦上當(dāng)然都可以正常打開,但在我這里幾臺有問題的電腦上,“污染”過的就打不開,原版可以打開。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2013-4-2 17:19:22 | 只看該作者
我打開你保存過后數(shù)據(jù)庫直接打開VBA編輯器查看引用,是丟失狀態(tài),
該引用在你的電腦上最后保存關(guān)閉之前是什么狀態(tài)?
3#
 樓主| 發(fā)表于 2013-4-2 17:25:29 | 只看該作者
t小寶 發(fā)表于 2013-4-2 17:19
我打開你保存過后數(shù)據(jù)庫直接打開VBA編輯器查看引用,是丟失狀態(tài),
該引用在你的電腦上最后保存關(guān)閉之前是什 ...


在我的電腦上,兩個版本對VBA的引用都顯示正常,打開也正常,另外幾臺以前正常的電腦也能正常打開。但在我這幾臺有問題的電腦上,就顯示“丟失”狀態(tài),只要顯示“丟失”狀態(tài),就打不開。
4#
 樓主| 發(fā)表于 2013-4-2 17:28:24 | 只看該作者
t小寶 發(fā)表于 2013-4-2 17:19
我打開你保存過后數(shù)據(jù)庫直接打開VBA編輯器查看引用,是丟失狀態(tài),
該引用在你的電腦上最后保存關(guān)閉之前是什 ...

你只要按我上面說的手動修復(fù)方法,去掉勾,再點(diǎn)“瀏覽”手動加載重新引用,就可以打開了。問題太詭異了。
5#
 樓主| 發(fā)表于 2013-4-2 17:49:06 | 只看該作者
還有一個問題,MSCOMCTL.OCX本身是哪里來的?通過重裝OFFICE,好像即不能改變也不能增加這個文件。好像也與WINDOWS版本無關(guān),有些WINDOWS7中反而是低版本,有些XP(SP2/SP3)中反而是高版本甚至是最新的2012-5-2的版本。
6#
 樓主| 發(fā)表于 2013-4-2 18:20:02 | 只看該作者
zww3008 發(fā)表于 2013-4-2 17:49
還有一個問題,MSCOMCTL.OCX本身是哪里來的?通過重裝OFFICE,好像即不能改變也不能增加這個文件。好像也與 ...

突然想到一個問題,我們大多使用的是OFFICE2003,為了能打開2007的文件,我的電腦包括有些電腦上安裝了“2007 OFFICE system 兼容包”,不知一切問題是否出自這里?明天測試一下。

點(diǎn)評

問題應(yīng)該不在這里  發(fā)表于 2013-4-2 18:42

點(diǎn)擊這里給我發(fā)消息

7#
發(fā)表于 2013-4-2 18:41:45 | 只看該作者
zww3008 發(fā)表于 2013-4-2 17:49
還有一個問題,MSCOMCTL.OCX本身是哪里來的?通過重裝OFFICE,好像即不能改變也不能增加這個文件。好像也與 ...

MSCOMCTL.OCX 是一個微軟通用控件,OFFICE2003安裝包里面也有。
這個控件可能問題比較多,微軟經(jīng)常會更新它的,很多系統(tǒng)或OFFICE的安全更新或補(bǔ)丁都會更新它,所以WIN7上的該控件版本不一定是最新的,關(guān)鍵看電腦什么時候升級了哪個安全更新或補(bǔ)丁。一些新版本也會出現(xiàn)新問題,于是又出更新的版本,由于版本太多,搞得不知哪個能用,不同環(huán)境都有不同的問題。
之前我在網(wǎng)上搜索過有關(guān)內(nèi)容,也有人遇到到過,現(xiàn)在懶得用這個控件了,太麻煩

點(diǎn)擊這里給我發(fā)消息

8#
發(fā)表于 2013-4-2 19:05:08 | 只看該作者
呵呵,恭喜發(fā)財。

使用ActiveX控件,就是煩。可是Access又沒有表示樹的控件,呵呵。
真不知如何解決好。

要不用WebBrowse控件模擬?呵呵,有意思的課題。
9#
發(fā)表于 2013-4-2 22:34:53 | 只看該作者
zhuyiwen 發(fā)表于 2013-4-2 19:05
呵呵,恭喜發(fā)財。

使用ActiveX控件,就是煩。可是Access又沒有表示樹的控件,呵呵。

嚴(yán)重同意。包括之前做的“季度獎管理系統(tǒng)”,有版友反映有問題,查實(shí)是日期控件出的故障,跟這個控件也有直接關(guān)系。
10#
 樓主| 發(fā)表于 2013-4-2 23:48:19 | 只看該作者
本帖最后由 zww3008 于 2013-4-2 23:52 編輯
zhuyiwen 發(fā)表于 2013-4-2 19:05
呵呵,恭喜發(fā)財。

使用ActiveX控件,就是煩。可是Access又沒有表示樹的控件,呵呵。


我大量采用TreeView,我見過版主todaynew也有用列表框模擬樹的實(shí)例,很好。但我感覺在速度上還是用MSCOMCTL.OCX這個控件反應(yīng)快很多。
更主要的是,我建的樹有隨意性,也就是級數(shù)不固定也無規(guī)率,不像嚴(yán)格按照“省-市-縣....”等等這樣有固定級數(shù)的樹。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 10:20 , Processed in 0.107257 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表