我在 Access 2010 中制作了一些表单,并将公司徽标添加到标题表单中。此图片为.jpg,大小为70KB。我不知道为什么 .mdb 的大小立即从 4MB 增加到 12MB?(很少形式和相同的标志)也许有一些图像压缩选项?
2 回答
取自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 中的表单上时,未压缩的图像数据将保存到系统表中。这是实际未压缩的表数据,因此压缩和修复可能没什么帮助。
常见的解决方法似乎是将图像的路径存储在数据库表中,并使用该路径来调用表单上的图像。
我不知道为什么(我不在乎),但我也已经注意到了这种行为。我对公司徽标或等效项的解决方法是将其插入到一个表单中,然后我将其作为子表单插入到我需要的任何地方。它还有一个额外的好处,即如果徽标一天发生变化,则只有一个地方可以更新。