2012-06-11 9 views
5

Hice algunas formas en Access 2010 y agregué el logotipo de la empresa al formulario del encabezado. Esta imagen es .jpg y su tamaño es de 70KB. No sé por qué el tamaño de .mdb aumentó inmediatamente de 4 MB a 12 MB. (pocas formas y el mismo logotipo) ¿Tal vez haya algunas opciones de compresión de imagen?¿Por qué el tamaño de .mdb crece tres veces con una imagen pequeña?

+1

Alguien con conocimiento de Access 2010 en particular debería responder esto, pero en las versiones anteriores de Access, las imágenes no se almacenaban en su formato comprimido, por lo que agregar un pequeño JPG podría aumentar drásticamente el tamaño de la base de datos. ¿Has intentado compactar la base de datos para ver si eso hizo la diferencia? – pstrjds

+0

La compactación no cambia mucho. En mi caso, había 12,4 MB y ahora es 11,9 MB. – mathewM

+0

@pstrjds No estoy exactamente seguro de cómo funciona esto, pero mdb es el formato anterior y, sospecho, sujeto a la hinchazón que era un problema para las versiones anteriores. Me pregunto si valdría la pena probar el formato accdb? – Fionnuala

Respuesta

4

Tomado de http://office.microsoft.com/en-us/access-help/store-images-in-a-database-HP005280225.aspx

... "Sin embargo, las imágenes de incrustación puede inflar rápidamente el tamaño de su base de datos y hacer que se ejecute lentamente. Esto es especialmente cierto si usted almacenar archivos GIF y JPEG, debido a que OLE crea archivos de mapa de bits adicionales que contienen información de visualización para cada uno de sus archivos de imagen y esos archivos adicionales pueden ser más grandes que sus imágenes originales. Además, este método solo es compatible con Windows Bitmap (.bmp) y . Formatos de archivo gráfico de mapa de bits (.dib). Si lo desea a visualización otros tipos comunes de archivos de imagen, tales como JPEG y GIF imágenes, usted tiene que instalar software adicional. "...

para explicar cómo se almacenan estos archivos de mapa de bits, el siguiente enlace ofrece una explicación más detallada que el sitio de Microsoft:

Tomado de http://www.ammara.com/support/kb/showkbe5cc.html

... "OLE vinculación & incrustación es una técnica utilizada por Microsoft Access para tienda de 'objetos' en la base de datos técnica tables.The se basa en la aplicación externa asociada para almacenar, presentar y editar los datos. En algunos casos, también se guarda una imagen de "vista previa" sin comprimir adicional en la tabla (incluso al vincular). Esta imagen de vista previa se utiliza para visualización más rápida de los datos, o cuando la aplicación del servidor no está disponible . Esto puede causar una sobrecarga masiva. Si usted está almacenando imágenes JPEG la vista previa sin comprimir puede ser diez o veinte veces el tamaño real imagen, haciendo que el tamaño de la base de datos de cohete. "...

Por lo tanto, cuando se coloca una imagen en un formulario en MS Access, los datos de imagen sin comprimir se guardan en las tablas del sistema. Estos son los datos reales de la tabla sin comprimir, por lo que un compacto y la reparación pueden ofrecer poca ayuda.

La solución común parece ser almacenar el camino a la imagen una tabla de base de datos, y use esa ruta para invocar la imagen en el formulario.

+1

gracias por las ediciones de formato, @EBarr! ¡Parece mucho mejor ahora! – EastOfJupiter

+0

Me alegro de estar de servicio ... solo navegando en tiempo de inactividad. – EBarr

1

No sé POR QUÉ (y no lo hago re) pero ya noté ese comportamiento también. Mi solución para los logotipos de la empresa o equivalentes es insertarlo en UN formulario, que luego inserto como un subformulario donde lo necesite. Tiene el beneficio adicional de que si el logotipo cambia un día, solo hay un lugar para actualizar.

Cuestiones relacionadas