设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 20783|回复: 61
打印 上一主题 下一主题

[窗体] 发现MDE的报表和窗体居然可以修改

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2004-5-10 05:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在修改客户的报表时,无意中发现MDE文件居然还可以修改窗体和报表的格式,以及属性。而且是真正保存起来
一会把方法及步骤整理出来与大家分享。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享1 分享淘帖 订阅订阅
2#
发表于 2004-5-10 06:15:00 | 只看该作者
不会吧,没见过,期待。。。

点击这里给我发消息

3#
 楼主| 发表于 2004-5-10 07:16:00 | 只看该作者
     将 Access 数据库保存为 MDE 将禁止用户在“设计”视图中查看、修改窗体、报表,不过,如果程序员未将窗体的“允许设计更改”属性设置为“仅设计视图”,则可以在窗体上右键单击,选择“属性”,就可查看窗体及控件上的属性值。不过,这些属性却是无法修改。而对于报表,则甚至连“允许设计更改”这个属性都没有,那到底有没有办法来修改MDE中窗体和报表的属性呢?

假设你生成的MDE文件中有frmTest窗体和rptTest报表。

按住Shift键打开MDE文件,显示数据库窗口,选择frmTest窗体后,可发现“设计”按钮变为灰色,不可使用。但使用下面步骤,你会发现另有洞天:
(1)        打开窗体frmTest 。
(2)        使用【Alt+F11】组合键进入VBA代码编辑器。
(3)        按下设计模式 键
(4)        窗体会进入设计视图
(5)        在窗体上修改“移动电话”标签及文本框的属性,将标签标题改为“传真”,将文本框的“控件来源”属性改为“传真”,再将窗体的标题改为“员工资料”。几乎任何属性和格式均可修可,可改变控件位置,可改变绑定的数据库。。。。除了代码,几乎所有事情均可实现。
(6)        然后点击保存按钮,关闭窗体,再重新打开窗体,可发现所有改动已经保存。
这似乎不太可能,但的确可以保存。
使用同样的方法,修改报表的“移动电话”文本框绑定到“传真”字段,重新调整每个控件的位置等等。

tony 2004/05/08晚 书

注意事项:

上述方法不受窗体的“允许设计更改”属性设置的影响,也就是说,即使将窗体的“允许设计更改”属性设置为“仅设计视图”,上停方法仍然适用。还需注意的是,在修改窗体、报表或控件的属性之后,必须单击保存按钮显式保存,修改内容才能真正保存在MDE中,否则将会丢失所有的修改内容。因为在关闭窗体或报表时,即使对窗体或报表修改了内容,系统也不会提示是否保存。

点击这里给我发消息

4#
 楼主| 发表于 2004-5-10 07:18:00 | 只看该作者
一直以来未搞清楚 “设计模式”按钮的作用。原来可作如是用途,感谢客户的这个报表和歪打正着:)

点击这里给我发消息

5#
 楼主| 发表于 2004-5-10 08:04:00 | 只看该作者
05/09晚 继续研究:
      可打开另一个新的MDB,可将此MDE中窗体或报表的所有控件全部完完整整复制过去,与原窗体和报表一般无二,是原来窗体和报表的COPY。变相地破解了MDE的窗体和报表,当然,不包括VBA代码。
      如果能够再写段程序,将报表打开到设计状态(譬如说zhuyiwen做的在子窗体里打开报表),将报表在子窗体里打开为设计状态,屏蔽一些不必要 的菜单和工具栏,再做一些布局排版和移位的功能以及拖拉字段到报表的功能,就可实现让用户完全自定义报表。
      居然还可以插入新的控件、图表和ActiveX控件,还可增删窗体页眉、页脚。不过,如果删除了代码会引用到的控件,则会导致代码出错。
     还可以使用“表达式生成器”,“宏生成器”,不过“代码生成器”无法使用。
    还可以改变报表的“页面设置”等及改变横打坚打等等


      
6#
发表于 2004-5-10 08:28:00 | 只看该作者
好灵啊!不敢相信自己的眼睛,离解哥德巴赫猜想一步之遥,希望不要扩大影响,否则,大家都不敢用Access开发程序了。
7#
发表于 2004-5-10 08:59:00 | 只看该作者
“代码生成器”可以使用,只不过原"[事件过程]",变成了该按钮的名称,删去该行文字,就可以使用"代码生成器",换个角度看或从理论上讲,只要悉心研究,搞懂该命令按钮的作用,当然还要搞清楚,表之间的关系,关键字段的联系,主要控件的作用,这些可以从查询表中找到或分析出来,就可以"照葫芦画瓢"编程序了.真是不可思议.黑客帝国,克隆,克隆!呵呵!tmtony站长您活脱就是一个间谍.再进一步想想,岂不是全世界网络的“*.mde”,都是向“微软”这个皇帝上贡的礼品。只要它想笑纳!


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





[em24][em24]
[此贴子已经被作者于2004-5-10 9:25:44编辑过]

8#
发表于 2004-5-10 09:45:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
9#
发表于 2004-5-10 14:13:00 | 只看该作者
10#
发表于 2004-5-10 16:13:00 | 只看该作者
谢谢,我在想,窗体里有些什么控件,控件属性等等内容应该都保存在 access 系统表里(比如 msysobjects),生成 mde的时候, access 只是禁止了常规方法更改(即打开设计视图并更改的方法)并禁止查看工程.
但,由于access 开发人员与 vba for access 的开发人员的疏忽.造成了此 bug 的存在.
我用 accessxp,2000格式或2002 格式上述方法都有效,谢谢站长.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 18:50 , Processed in 0.139409 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表