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

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

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

[窗體] 發(fā)現(xiàn)MDE的報(bào)表和窗體居然可以修改

[復(fù)制鏈接]

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

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2004-5-10 05:02:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
今天在修改客戶的報(bào)表時(shí),無意中發(fā)現(xiàn)MDE文件居然還可以修改窗體和報(bào)表的格式,以及屬性。而且是真正保存起來
一會把方法及步驟整理出來與大家分享。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享1 分享淘帖 訂閱訂閱
2#
發(fā)表于 2004-5-10 06:15:00 | 只看該作者
不會吧,沒見過,期待。。。

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

3#
 樓主| 發(fā)表于 2004-5-10 07:16:00 | 只看該作者
     將 Access 數(shù)據(jù)庫保存為 MDE 將禁止用戶在“設(shè)計(jì)”視圖中查看、修改窗體、報(bào)表,不過,如果程序員未將窗體的“允許設(shè)計(jì)更改”屬性設(shè)置為“僅設(shè)計(jì)視圖”,則可以在窗體上右鍵單擊,選擇“屬性”,就可查看窗體及控件上的屬性值。不過,這些屬性卻是無法修改。而對于報(bào)表,則甚至連“允許設(shè)計(jì)更改”這個(gè)屬性都沒有,那到底有沒有辦法來修改MDE中窗體和報(bào)表的屬性呢?

假設(shè)你生成的MDE文件中有frmTest窗體和rptTest報(bào)表。

按住Shift鍵打開MDE文件,顯示數(shù)據(jù)庫窗口,選擇frmTest窗體后,可發(fā)現(xiàn)“設(shè)計(jì)”按鈕變?yōu)榛疑,不可使用。但使用下面步驟,你會發(fā)現(xiàn)另有洞天:
(1)        打開窗體frmTest 。
(2)        使用【Alt+F11】組合鍵進(jìn)入VBA代碼編輯器。
(3)        按下設(shè)計(jì)模式 鍵
(4)        窗體會進(jìn)入設(shè)計(jì)視圖
(5)        在窗體上修改“移動(dòng)電話”標(biāo)簽及文本框的屬性,將標(biāo)簽標(biāo)題改為“傳真”,將文本框的“控件來源”屬性改為“傳真”,再將窗體的標(biāo)題改為“員工資料”。幾乎任何屬性和格式均可修可,可改變控件位置,可改變綁定的數(shù)據(jù)庫。。。。除了代碼,幾乎所有事情均可實(shí)現(xiàn)。
(6)        然后點(diǎn)擊保存按鈕,關(guān)閉窗體,再重新打開窗體,可發(fā)現(xiàn)所有改動(dòng)已經(jīng)保存。
這似乎不太可能,但的確可以保存。
使用同樣的方法,修改報(bào)表的“移動(dòng)電話”文本框綁定到“傳真”字段,重新調(diào)整每個(gè)控件的位置等等。

tony 2004/05/08晚 書

注意事項(xiàng):

上述方法不受窗體的“允許設(shè)計(jì)更改”屬性設(shè)置的影響,也就是說,即使將窗體的“允許設(shè)計(jì)更改”屬性設(shè)置為“僅設(shè)計(jì)視圖”,上停方法仍然適用。還需注意的是,在修改窗體、報(bào)表或控件的屬性之后,必須單擊保存按鈕顯式保存,修改內(nèi)容才能真正保存在MDE中,否則將會丟失所有的修改內(nèi)容。因?yàn)樵陉P(guān)閉窗體或報(bào)表時(shí),即使對窗體或報(bào)表修改了內(nèi)容,系統(tǒng)也不會提示是否保存。

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

4#
 樓主| 發(fā)表于 2004-5-10 07:18:00 | 只看該作者
一直以來未搞清楚 “設(shè)計(jì)模式”按鈕的作用。原來可作如是用途,感謝客戶的這個(gè)報(bào)表和歪打正著:)

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

5#
 樓主| 發(fā)表于 2004-5-10 08:04:00 | 只看該作者
05/09晚 繼續(xù)研究:
      可打開另一個(gè)新的MDB,可將此MDE中窗體或報(bào)表的所有控件全部完完整整復(fù)制過去,與原窗體和報(bào)表一般無二,是原來窗體和報(bào)表的COPY。變相地破解了MDE的窗體和報(bào)表,當(dāng)然,不包括VBA代碼。
      如果能夠再寫段程序,將報(bào)表打開到設(shè)計(jì)狀態(tài)(譬如說zhuyiwen做的在子窗體里打開報(bào)表),將報(bào)表在子窗體里打開為設(shè)計(jì)狀態(tài),屏蔽一些不必要 的菜單和工具欄,再做一些布局排版和移位的功能以及拖拉字段到報(bào)表的功能,就可實(shí)現(xiàn)讓用戶完全自定義報(bào)表。
      居然還可以插入新的控件、圖表和ActiveX控件,還可增刪窗體頁眉、頁腳。不過,如果刪除了代碼會引用到的控件,則會導(dǎo)致代碼出錯(cuò)。
     還可以使用“表達(dá)式生成器”,“宏生成器”,不過“代碼生成器”無法使用。
    還可以改變報(bào)表的“頁面設(shè)置”等及改變橫打堅(jiān)打等等


      
6#
發(fā)表于 2004-5-10 08:28:00 | 只看該作者
好靈啊!不敢相信自己的眼睛,離解哥德巴赫猜想一步之遙,希望不要擴(kuò)大影響,否則,大家都不敢用Access開發(fā)程序了。
7#
發(fā)表于 2004-5-10 08:59:00 | 只看該作者
“代碼生成器”可以使用,只不過原"[事件過程]",變成了該按鈕的名稱,刪去該行文字,就可以使用"代碼生成器",換個(gè)角度看或從理論上講,只要悉心研究,搞懂該命令按鈕的作用,當(dāng)然還要搞清楚,表之間的關(guān)系,關(guān)鍵字段的聯(lián)系,主要控件的作用,這些可以從查詢表中找到或分析出來,就可以"照葫蘆畫瓢"編程序了.真是不可思議.黑客帝國,克隆,克隆!呵呵!tmtony站長您活脫就是一個(gè)間諜.再進(jìn)一步想想,豈不是全世界網(wǎng)絡(luò)的“*.mde”,都是向“微軟”這個(gè)皇帝上貢的禮品。只要它想笑納!


[em07][em25][em22][em06]





[em24][em24]
[此貼子已經(jīng)被作者于2004-5-10 9:25:44編輯過]

8#
發(fā)表于 2004-5-10 09:45:00 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
9#
發(fā)表于 2004-5-10 14:13:00 | 只看該作者
10#
發(fā)表于 2004-5-10 16:13:00 | 只看該作者
謝謝,我在想,窗體里有些什么控件,控件屬性等等內(nèi)容應(yīng)該都保存在 access 系統(tǒng)表里(比如 msysobjects),生成 mde的時(shí)候, access 只是禁止了常規(guī)方法更改(即打開設(shè)計(jì)視圖并更改的方法)并禁止查看工程.
但,由于access 開發(fā)人員與 vba for access 的開發(fā)人員的疏忽.造成了此 bug 的存在.
我用 accessxp,2000格式或2002 格式上述方法都有效,謝謝站長.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

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

GMT+8, 2025-7-13 08:38 , Processed in 0.211914 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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