Tu portal de
formación online
España

Infórmate
Inicio » Blog » Vincular imágenes a tablas de Access sin "engordar" la base de datos
06-04-2006

Vincular imágenes a tablas de Access sin "engordar" la base de datos Descargar archivo Adjunto

INTRODUCIR EN UNA TABLA EL VÍNCULO A UN ARCHIVO DE IMAGEN DE FORMA QUE NO “ENGORDE” EL TAMAÑO DE NUESTRA BASE DE DATOS

 

Cuando en una tabla de una base de datos de Access queremos insertar imágenes correspondientes a cada uno de los registros (por ejemplo las fotos de los empleados en una tabla de Empleados o bien las fotos de cada uno de los artículos en una gran tabla de Artículos –pensemos en miles de artículos-), se define en la estructura de la tabla un campo de tipo Objeto OLE para albergar dichas imágenes.

 

Si cada archivo de imagen ocupa unos cuantos bytes o kbytes (dependiendo de la resolución y calidad de la imagen),  el aumento de tamaño de la tabla y en consecuencia de la base de datos es desproporcionada.

 

¿Cómo solventar esto?

 

Si en la tabla de clientes definiéramos (como ejemplo en esta estructura mínima) los siguientes campos:

 

CAMPO

TIPO

TAMAÑO

IdCliente

Autonumérico (por ejemplo)

Entero largo

Nombre

Texto

50

Foto

Objeto OLE

 

 

Nos “engordaría” la tabla a medida que introdujéramos las imágenes en ese campo FOTO.

 

Lo que debemos hacer es definir la tabla con esta estructura:

 

CAMPO

TIPO

TAMAÑO

IdCliente

Autonumérico (por ejemplo)

Entero largo

Nombre

Texto

50

RutaFoto

Texto

50

 

En este campo RutaFoto introduciremos la ruta hacia el archivo de imagen que se encontrará en nuestro disco duro o bien ubicado en una ruta de una unidad de red.

 

La ruta será de la forma:   C:\FOTOS\MARÍA.JPG

Y sería gestionada como un contenido de texto.

 

Pero, ¿Cómo hacer para que en un formulario o bien en un informe de MS Access veamos, no la ruta de texto que apunta a nuestra imagen sino la imagen dentro de un control de tipo imagen insertado en el formulario o informe?

 

PARA FORMULARIOS

Insertaremos en el formulario el campo RutaFoto y un control desde la barra de herramientas de la pantalla de diseño de formularios de Imagen. Le asociamos cualquier imagen que tengamos en C: (o bien, después de insertada una imagen, desde sus propiedades de Formato especificamos Imagen = (ninguna), modo de cambiar el tamaño = Extender y le adjudicamos, en nuestro ejemplo el nombre ImagenCliente.

 

Si ese control de Imagen lo llamamos, por ejemplo, ImagenCliente, deberemos conseguir visualizar en él la imagen que se corresponde con la ruta de texto introducida en el campo RutaFoto.

Para ello, por ejemplo insertaremos en las propiedades del campo RutaFoto, bajo el evento de Después de Actualizar, el siguiente código VBA (Visual Basic Aplications):

 

Private Sub RutaFoto_AfterUpdate()

If Not IsNull(Me.RutaFoto) Then

   Me.ImagenCliente.Picture = Me.RutaFoto

 

Else

    Me.ImagenCliente.Picture = ""

End If

End Sub

 

Así, llevaremos y por lo tanto visualizaremos en el control de la imagen (ImagenCliente), la imagen (Picture) que corresponde a la ruta introducida en el campo RutaFoto.

 

De este modo, el archivo de la foto (el de todas las fotos) reside en el disco duro fuera de ningún campo de nuestra tabla de, por ejemplo Clientes.

 

Sería factible ejecutar este “trozo” de código bajo cualquier otro evento más idóneo bajo nuestro punto de vista (o quizás creando un botón de comando y asociando a su “clic” ese código).

 

Lo explicado para los formularios, es idéntico para ver las imágenes en un informe.

 

NOTA: Teclear e introducir la ruta hacia cada archivo de imagen, es más engorroso y también solucionable mediante código, por eso adjunto una base de datos llamada Fotos Vinculadas.mdb para que indagando en los eventos de los controles del formulario Clientes, en el módulo VBA y en la macro puedas conocer o aplicar esto a nuestra base de datos. Observemos como lo único que se guarda en la tabla de clientes es la ruta y no la imagen.


   

Luis Angel Gil Gambarte

  

vvv

 

* ¿Necesitas contenido? Puedes usar este artí­culo en tu web, o en tu correo. El único requisito es incluir la siguiente lí­nea: "Artí­culo elaborado por Luis Angel Gil Gambarte e incluir un enlace a nuestra web Adrformación"

 

 

Luis Angel Gil Gambarte
Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información × Cerrar