我在Access 2010中创建了几个表单,并在标题表单中添加了公司徽标。这张照片是.jpg,大小是70KB。我不知道为什么.mdb的大小会立即从4MB增加到12MB? (几种形式和相同的标识)也许有一些图像压缩选项?
答案 0 :(得分:4)
取自http://office.microsoft.com/en-us/access-help/store-images-in-a-database-HP005280225.aspx
...“但是,嵌入图片会迅速膨胀你的大小 数据库并使其运行缓慢。如果你这一点尤其如此 存储GIF和JPEG文件,因为OLE会创建其他位图文件 包含每个图像文件的显示信息,以及 这些附加文件可能比原始图像大。在 此外,此方法仅支持Windows位图(.bmp)和 设备无关位图(.dib)图形文件格式。如果你想 显示其他常见类型的图像文件,例如GIF和JPEG 图像,您必须安装其他软件。“...
为了解释这些位图文件的存储方式,下面的链接提供了比微软网站更多的解释:
取自http://www.ammara.com/support/kb/showkbe5cc.html
...“OLE链接和嵌入是Microsoft Access使用的一种技术 在数据库表中存储'对象'。该技术依赖于 关联的外部应用程序来存储,显示和编辑数据。 在某些情况下,还会保存其他未压缩的“预览”图像 在表中(即使链接)。此预览图像用于 更快地显示数据,或者当服务器应用程序不显示时 可用。这可能会导致巨大的开销。如果你正在存储jpeg 图像未压缩的预览可以是实际的十倍或二十倍 图像大小,导致数据库的大小火箭。“......
因此,当您将图像拖放到MS Access中的表单上时,未压缩的图像数据将保存到系统表中。这是实际未压缩的表数据,因此紧凑和修复可能提供的帮助很少。
常见的解决方法似乎是在数据库表中存储图像的路径,并使用该路径调用表单上的图像。
答案 1 :(得分:1)
我不知道为什么(我也不在乎)但我已经注意到了这种行为。我对公司徽标或等效的解决方法是将其插入一个表单,然后我将其作为子表单插入到我需要的任何位置。它的另一个好处是,如果徽标更改一天,则只有一个地方需要更新。