ACCESS数据库
简析能判断Access版本的窗体
2013-07-17 14:06:50
   能辨别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中同样是二进制类型的附件字段也有类似的秘密,有空会另写一篇来探讨它。