office交流網(wǎng)--QQ交流群號及微信交流群

Access培訓(xùn)群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請用微信掃碼)

        

Access TreeView樹控件兼容性問題之奇葩偏方

2017-03-23 09:03:08
紅塵如煙-Office交流網(wǎng)
原創(chuàng)
7702
[i=s] 本帖最后由 紅塵如煙 于 2017-3-23 09:06 編輯

Windows系統(tǒng)自帶的通用控件庫 MSCOMCTL.OCX 是一個很好的東西,尤其是TreeView樹控件,用來處理多層級的樹形結(jié)構(gòu)數(shù)據(jù)非常有用。由于在Access中沒有類似的控件,沒有其它代替解決辦法。甚至不像ListView可以用列表框或者子窗體代替,Toolbar可以用按鈕、菜單代替。


但自從Win7開始,不論是Win8、Win10,MSCOMCTL.OCX通用控件庫中的控件就經(jīng)常出現(xiàn)兼容性問題。即開發(fā)環(huán)境下的版本號和使用環(huán)境下的版本號,哪怕只有很小的差別,像6.1.9834和6.1.9818這樣,都會出現(xiàn)異常不能使用。


我們這里仍然以TreeView控件為例,不包括本身控件庫安裝有問題不能使用的情況,一般可能會遇到的兼容性問題有會以下兩類:



  • 不能響應(yīng)鍵盤、鼠標(biāo)事件。可以正常加載數(shù)據(jù)到樹控件,但不論是鼠標(biāo)還是鍵盤,均無法觸發(fā)相應(yīng)的事件,比如在NodeClick事件中寫了相應(yīng)處理代碼,但點擊之后沒有任何反應(yīng)。
  • 鍵盤、鼠標(biāo)事件一觸發(fā)就報錯。點擊鼠標(biāo)、按鍵,甚至鼠標(biāo)在樹控件上移動,事件可以響應(yīng),但一觸發(fā)就報錯,導(dǎo)致不能正常使用。

這些問題發(fā)生的頻率非常高!尤其是當(dāng)一些在實際中已經(jīng)在用的Access程序來說,遇到實在讓人火冒三丈,因為業(yè)務(wù)部門等著馬上要用呢!這是在坑爹呢還是在坑爹呢!


對于這個問題有什么解決辦法呢?總結(jié)下來不外乎下面幾種:



  • 修改控件庫。這個控件庫是微軟的,第一優(yōu)先是希望微軟能在更新系統(tǒng)時解決掉該問題,但從Win7到Win10,該問題仍然頑固地存在,看來微軟是指望不上了。而我們不可能去修改控件庫,甚至通過一些破解手段修改了,但會導(dǎo)致簽名失效,還是不便于使用。
  • 不使用樹控件。但正如本文一開頭說的那樣,有些多層數(shù)據(jù)的展示和處理,在用過了樹控件之后,現(xiàn)在要讓人不用,實在難受。就像習(xí)慣了電氣化的現(xiàn)代人,突然沒電了,要點油燈、蠟燭照明,這!這!這!這日子不過了!
  • 使用其它第三方樹控件。其它第三方樹控件的問題在于,有可能是要額外付費的。即使找到免費的了,由于屬性方法事件等接口不同,還需要重新編寫程序。另外使用第三方控件需要安裝,而一些規(guī)范化的企業(yè)里面,是禁止用戶自行安裝軟件的。

看到這里你是不是感到絕望了?是不是感覺自己被掏空了?感覺不會再愛了?

這么想地話,你還是太年輕,圖樣圖森破!

世上無難事,只怕有些人!要相信希望總會有的,奇跡是會出現(xiàn)的,在那個迷茫的午夜,上帝向你走來,賜給了你一道光!

上帝說:解決這個問題,需要用到這一招如來神掌,我現(xiàn)在就將如來神掌的秘籍傳授給你!


------------------------------------------如來神掌秘籍分割線--------------------------------------

1. Ctrl+G打開立即窗口,輸入以下代碼并回車,將窗體另存為文本文件。

[code]SaveAsText acForm, "Form1", CurrentProject.Path & "\Form1.txt"[/code]

注意不要直接把代碼原樣抄去就用,

要把Form1改成你實際的窗體名稱!

要把Form1改成你實際的窗體名稱!

要把Form1改成你實際的窗體名稱!

重要的事情說三遍。


2. 用記事本打開剛才生成的文件文件 Form1.txt,找到樹控件所在的位置(如果內(nèi)容比較多,可以搜索樹控件名稱)。

680


3. 將從 OleData = Begin 這一行開始,直到 End 結(jié)束的OleData部分全部選中:

680


4. 將上面選中的部分替換成附件中的內(nèi)容(由于發(fā)帖限制不能直接放數(shù)據(jù)):兼容性好的TreeView控件OleData.zip


5. 回到Access立即窗口,再次輸入以下代碼并回車,將文本文件加載為窗體:

[code]LoadFromText acForm, "Form1", CurrentProject.Path & "\Form1.txt"[/code]

打完收工。


重新打開有樹控件的窗體,你會發(fā)現(xiàn)惹人厭的樹控件不能正常使用的問題沒有了!換臺電腦,也不再出了!


鄭重聲明:

該方法本公子親測有效,也用來救了幾次火。但由于測試樣本有限,加上本公子也還沒有完全弄懂原理,所以不保證百分之百有效!因此這里只當(dāng)作一個偏方分享出來給大家,僅供參考。





admin在 2017/03/23 9:18:39 回復(fù)-------------------



yfy629在 2017/03/23 9:30:57 回復(fù)-------------------
如煙神武!!!

roych在 2017/03/23 9:41:00 回復(fù)-------------------
紅塵威武霸氣外露啊!

真主在 2017/03/27 10:49:18 回復(fù)-------------------
謝謝,謝謝!正在愁

tmtony在 2017/03/28 15:01:58 回復(fù)-------------------
saveastext 里面藏著 access 很多秘密!

accben在 2017/03/30 10:10:32 回復(fù)-------------------
經(jīng)常遇到,試試效果看看。
謝謝紅塵大師。

YXH_YXH在 2017/07/25 16:02:11 回復(fù)-------------------
好多謝分享?。。。。。。。。?br />
(微軟Activex控件-相關(guān)文章技巧鏈接):
三小時掌握TREEVIEW控件
[經(jīng)驗技巧]Access中使用微軟Treeview樹形控件的煩惱
Access的Treeview在 MS10-036 更新后無法使用的問題
Access Treeview 樹控件MSCOMCTL.OCX 在更新 KB 2687323后無法正
windows 7或其它windows 64位系統(tǒng)里Treeview注冊的問題(mscomctl
Access中treeview不能使用或提示沒有版權(quán)(License)的解決辦法
Access中使用TreeView 樹形控件 詳細講解(Excel Word Office都可
Access2010使用Treeview出現(xiàn)問題的解決辦法(適合32位及64位)
分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問