jueves, 28 de marzo de 2013

Almacenar imágenes en una base de datos de Access

Access proporciona varios métodos para almacenar imágenes. Podrá:
  • Incrustar imágenes directamente en un campo Objeto OLE en una tabla de base de datos.
Vinculación e incrustación de objetos (OLE) es la tecnología utilizada para compartir archivos entre varios de los programas de Office. Por ejemplo, cuando inserta una hoja de cálculo de Excel en un documento de Word, o una diapositiva de Microsoft PowerPoint en un dibujo de Microsoft Visio, utiliza OLE. También utiliza un campo Objeto OLE cuando tiene que almacenar imágenes (o vínculos a las mismas) y archivos de otros programas de Office directamente en la base de datos.
Este método es el más fácil de implementar porque utiliza pantallas y herramientas que proporciona Access. Del mismo modo, las imágenes se integran en la base de datos y se desplazan con ella. Nunca tendrá que actualizar los vínculos en los archivos de imagen.
Sin embargo, el hecho de incrustar imágenes puede aumentar rápidamente el tamaño de la base de datos y hacer que se ejecute más lentamente. Esto ocurre especialmente si almacena archivos GIF y JPEG porque OLE crea archivos de mapas de bits adicionales que contienen información de imagen para cada uno de los archivos de imagen, y dichos archivos adicionales pueden tener un tamaño superior al de las las imágenes originales. Además, este método sólo admite los formatos de archivo de gráficos Mapa de bits de Windows (.bmp) y Mapa de bits independiente del dispositivo (.dib). Si desea mostrar otros tipos de archivos de imágenes comunes como imágenes JPEG y GIF, tiene que instalar software adicional.
  • Almacenar imágenes en un disco duro o una red y vincularlas desde una tabla de base de datos.
Este método es similar al primero, pero en lugar de incrustar imágenes en un campo Objeto OLE, las vincula. Este método es una solución intermedia. Los vínculos no ocupan tanto espacio como las imágenes incrustadas y puede utilizar las pantallas y las herramientas que proporciona Access para implementar una solución.
Sin embargo, si mueve la base de datos o los archivos de imagen, tiene que actualizar los vínculos, y si se dañan los archivos, se rompen los vínculos. Además, este método admite el mismo número limitado de tipos de archivo que el primer método (Mapa de bits de Windows y Mapa de bits independiente del dispositivo) y se necesita software adicional para mostrar más tipos de archivo.
  • Utilizar código Visual Basic para Aplicaciones (VBA) para mostrar las imágenes.
Este método consiste en almacenar imágenes en un disco duro o una red, almacenar las rutas de acceso a la imagen y los nombres de archivo en una tabla de base de datos, así como utilizar código para establecer las propiedades del control de imagen de Access y mostrar las imágenes. Este método requiere programación, pero utiliza muy poco espacio y puede utilizar el código de ejemplo existente o adaptarlo. Si tiene muchas imágenes, éste el método recomendado.
Sin embargo, recuerde que si mueve la base de datos, también tiene que mover las imágenes.
En la siguiente sección se explica cómo utilizar cada método de almacenamiento y se proporcionan vínculos a un código de ejemplo.

Incrustar imágenes en una tabla de base de datos o crear un vínculo a las mismas

El proceso para incrustar imágenes en una tabla o vincularlas sigue los siguientes procedimientos generales:
  • Si todavía no lo ha hecho, agregue un campo Objeto OLE a la tabla existente o cree una tabla nueva y agregue un campo Objeto OLE.
  • Inserte los archivos de imagen en el campo. Durante dicho proceso, usted elige si desea incrustar una imagen o crear un vínculo a la misma.
En las secciones siguientes se explica cómo realizar dichas tareas.
MostrarAgregar un campo Objeto OLE a una tabla existente
  1. Abra la tabla en la vista Diseño Imagen del botón.
  2. En la primera fila en blanco de la herramienta de diseño, en Nombre de campo, escribaImagen.
  3. Haga clic en el siguiente campo (el campo en la columna Tipo de datos) y seleccione Objeto OLE en la lista.
  4. Guarde la tabla.
  5. Cierre la tabla en la vista Diseño, ábrala en la vista Hoja de datos (haga doble clic en la tabla para volver a abrirla) y vaya a "Agregar imágenes al campo Objeto OLE (incrustadas o vinculadas)", más adelante en esta sección.
MostrarCrear una tabla que contenga un campo objeto OLE
  1. En la barra Objetos de la ventana Base de datos, haga clic en Tablas y después haga doble clic en Crear una tabla en vista Diseño. Se muestra la herramienta de diseño de la tabla.
  2. En la primera fila de la herramienta de diseño, en Nombre de campo, escriba ID.
  3. Haga clic en el primer campo en Tipo de datos y seleccione Autonumérico en la lista.
  4. Haga clic con el botón secundario del mouse (ratón) en cualquier sitio de la primera fila y haga clic en Clave principal. De este modo, se establece el campo ID como la clave principal de la tabla.
  5. En la siguiente fila, escriba Imagen en la columna Nombre de campo y seleccione Objeto OLE en la lista de la columna Tipo de datos.
  6. Guarde la tabla. Puede aceptar el nombre que asigna Access a la tabla o utilizar otro.
  7. Cierre la tabla en la vista Diseño y después ábrala en la vista Hoja de datos (haga doble clic en la tabla para volver a abrirla).
  8. Continúe realizando los siguientes procedimientos, "Agregar imágenes al campo Objeto OLE (incrustadas o vinculadas)".
MostrarAgregar imágenes al campo Objeto OLE (incrustadas o vinculadas)
Los procedimientos que se utilizan en esta sección son tablas existentes o nuevas descritas en las secciones anteriores, además de un conjunto de archivos de imagen instalados por Microsoft Office 2003. De forma alternativa, puede utilizar sus propios archivos de imagen y tablas.
  1. Haga clic con el botón secundario del mouse en el primer campo de la columna Imagen de la tabla y haga clic en Insertar objeto.
  2. Haga clic en Crear desde archivo y, a continuación, haga clic en Examinar.
  3. Busque una o más imágenes de Mapas de bits de Windows (.bmp) o Mapa de bits independiente del dispositivo (.dib). Puede buscar un conjunto de archivos BMP, con nombres que van desde Empid1.bmp a Empid9.bmp, en unidad:\Program Files\Microsoft Office\OFFICE11\SAMPLES. Seleccione la primera imagen y haga clic en Aceptar.
Para ello, deberá haber aceptado la ruta de instalación predeterminada durante la instalación.
  1. Para crear un vínculo a una imagen, haga clic en Vincular y de nuevo en Aceptar para completar el proceso. Para incrustar la imagen en una tabla, deje la casilla de verificación Vincular en blanco y haga clic en Aceptar. Las palabras Imagen de mapa de bits aparecen en el primer campo de la columna Imágenes de la tabla.
 Nota   Si Paquete aparece en el campo Objeto OLE, está intentando incrustar un archivo de gráficos o crear un vínculo al mismo que no se admite, por ejemplo, un archivo GIF o JPEG. Si necesita mostrar dichos tipos de archivos, puede volver a instalar Microsoft Photo Editor. Para obtener más información sobre cómo volver a instalar Photo Editor, veaQué hacer cuando aparece "Paquete" en lugar de "Imagen de mapa de bits" en las tablas de bases de datos.
  1. Vaya a los otros campos en la columna Imagen y repita pasos de 2 a 5 hasta que haya agregado las imágenes deseadas.

Utilizar código VBA para mostrar imágenes

Si tiene que trabajar con un gran número de archivos de imagen y desea mostrar una imagen diferente con cada registro de base de datos, puede ahorrar tiempo y espacio de almacenamiento mediante la programación de VBA. Almacene las imágenes en el disco duro o la red, las rutas y los nombres de archivo de las imágenes en el campo de texto de la base de datos y utilice el código VBA para leer la información de ruta y establecer la propiedad Picture del control de imagen de Access.
Tenga en cuenta que este proceso crea un vínculo los archivos de imagen, no los enlaza. Del mismo modo, si mueve la base de datos, necesita mover las imágenes. Para ver un ejemplo de esta técnica, inicie la base de datos de ejemplo Importadores Neptuno y abra el formulario Empleados en la vista Diseño.
  1. Abra la tabla a la que desea agregar el campo en la vista Diseño Imagen del botón.
  2. En la primera fila en blanco de la herramienta de diseño, en Nombre del campo, escriba Imagen.
  3. Haga clic en el siguiente campo (el campo en la columna Tipo de datos) y seleccione Texto en la lista.
  4. Guarde la tabla.
Los usuarios de base de datos pueden ver las rutas a los archivos de imagen. A no ser que confíe en todos los usuarios posibles, elimine cualquier información personal, como su nombre o el nombre del equipo, de las rutas de archivo. También recuerde que puede usar rutas de acceso relativas para hacer referencia a las imágenes.
Por ejemplo, si coloca la base de datos en la red, como \\NombreServidor\NombreSitioCompartido\ y almacena las imágenes en una carpeta de dicho sitio compartido como \\NombreServidor\NombreSitioCompartido\Imágenes, no es necesario que especifique la ruta completa.
Por ejemplo, en lugar de utilizar \\NombreServidor\NombreRecursoCompartido\Imágenes\NombreArchivoImagen.gif, puede utilizar solo la parte de la ruta que sea diferente respecto a la ubicación del archivo de Access actual, por ejemplo: Imágenes\Picture.gif