Antiguamente uno de los grandes motivos de «engorde» de las aplicaciones Access era la forma en que se trataban las imágenes.
Al principio sólo podíamos insertar imágenes en los controles.
Una imagen insertada se almacenaba dentro de la base de datos convirtiéndose a un formato BMP provocando un «engorde» considerable de la base de datos. Además, si insertábamos la misma imagen en distintos formularios, esta se almacenaba una y otra vez. Esa técnica, además del crecimiento desmesurado del fichero, tenía el inconveniente de que, si deseábamos cambiar una imagen (por colores, gustos o, simplemente, por modernizar), debíamos pasar por todos los objetos y cambiar la imagen. Las imágenes incrustadas se podían obtener de la lista de imágenes predefinidas o accediendo a cualquier imagen que tuviéramos almacenada en nuestro ordenador.
A partir de 2007, con la llegada del nuevo formato accdb, aparece el concepto de imagen vinculada.
La imagen vinculada ya no requería espacio en el fichero ya que lo que se hacía era indicar la ruta hasta la misma en el nombre del fichero. Esa forma es muy cómoda en archivos dónde no habrá cambios de ubicación, pero un pelín más laboriosa cuando el usuario puede cambiar la ruta dónde se ejecuta la aplicación. También se complica a la hora de distribuir una aplicación puesto que debemos contemplar que, además de la propia base de datos, deberán instalarse también las imágenes.
Cuando optábamos por las imágenes vinculadas, lo más indicado era que se instalaran en una carpeta por debajo de la de ejecución de la aplicación y, en el evento Load del formulario, se hiciera la asignación de la ruta a las imágenes:
Me!cmdSalir.Picture = CurrentProject.Path & "\Imagenes\Salir.bmp"
Con la llegada del formato accdb (Office 2007) se introdujo una nueva forma de trabajar las imágenes: compartidas.
Las imágenes compartidas se almacenan en la propia base de datos dentro de una tabla llamada MSysResources. Esa tabla es de sistema y, por defecto, está oculta.
El sistema de almacenado es transparente al usuario. Cuando queremos utilizar una imagen en un formulario o control, en la pestaña Diseño de formulario disponemos de un botón insertar imagen.

El botón Examinar nos permite acceder a un selector de archivos dónde llegaremos a la ruta el fichero de imagen. Una vez escogida la imagen se almacena en la tabla MSysResources y estará disponible para ser utilizada en cualquier momento.
Ventajas de ese método
- Las imágenes estan incorporadas en el propio fichero
- Se almacenan en el formato original (no hay conversión a BMP)
- Si queremos cambiar una imagen para todas las apariciones a la vez, bastará con cambiar el fichero adjunto
- La tabla MSysResources puede almacenar cualquier cosa y, por lo tanto, es apta para ser aprovechada para otros documentos embebidos.
Inconvenientes de ese método. Pues francamente pocos. La única pega es que, al importar objetos de otras bases de datos que contienen imágenes vinculadas, se pueden duplicar registros en la tabla MSysResources.
Deja un comentario si te gustó
0 comentarios