会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 数据库系统 > 正文

简析能判断Access版本的窗体

时间:2013-07-17 14:06 来源:office中国 作者:t小宝 阅读:
   能辨别ACCESS版本的神奇窗体 http://www.office-cn.com/thread-116936-1-1.html
       其实一个没有任何代码控件的窗体是不能辨别ACCESS版本的,该窗体只是在Access2003和Access2007中显示了不同的图片。
通过以下步骤可以实现这个效果:
1、用Access2003新建一个mdb文件。
2、用Access2007或2010打开mdb文件,设置 Access选项 - 当前数据库 - 图片属性存储格式:保留源图像格式。
   创建一个窗体,在设计视图中为窗体添加一幅图片,保存后关闭数据库。
3、用Access2003打开,以设计视图打开该窗体,可能有一个弹出框提示不能显示图片,点确定,然后为窗体插入另一幅图片,保存并关闭。

这样在Access2003和Access2007分别打开该窗体就会显示不同的图片。

至于为什么会这样?可能细心的人已经从上面的步骤中看出了奥妙,原因如下:
1、Access2003窗体中插入的图片是转换为位图格式的。
2、Access2007增加了一种图片存储格式:保留源图像格式,也就是jpg、gif、png等各种图片会保留原来的格式,这样体积就比较小。
3、Access2003只能识别位图格式,不能识别保留源图像这种格式。
所以,在Access2007中以保留源图像格式向窗体插入的图片,在Access2003中不显示,这时在Access2003中向窗体再插入一个图片,这个图片在Access2003中自然是可以显示的,因为它转换为位图,而在Access2007中因为设置了默认图片存储格式为保留源图像格式的原因,显示的是以保留源图像格式插入的那个图片。

大家应该发现有一个关键的地方:一个窗体先在Access2007中插入了一个图片,后在Access2003中插入了另一个图片。为什么一个窗体可以插入两幅图片?为什么在Access2003中插入的图片不覆盖掉在Access2007中插入的图片?
通过用SaveAsText这个Access提供的隐藏的方法研究发现,在Access2007中以保留源图像格式向窗体插入的图片,并不保存在窗体上面,似乎是保存在某个系统表里面,而在Access2003中插入的图片是保存在窗体中的。这就是一个窗体能插入两个图片的根本原因,因为它们的保存位置不同。


至此,这个神奇窗体的秘密是彻底解开了,我们也发现了Access2007中图片独特的存储方式。
在Access2007中同样是二进制类型的附件字段也有类似的秘密,有空会另写一篇来探讨它。

(责任编辑:admin)

顶一下
(3)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: