Vous êtes sur la page 1sur 5

IMÁGENES EN FORM CONTINUO1

Ante reiteradas consultas de cómo poder ver imágenes en


un formulario en vista de formularios continuos (varios
elementos) me he decidido a explicaros cómo podemos
conseguir eso.

Sin embargo, hay que decir que el ejemplo sólo es válido


para versiones de Access 2007 y superior.

Como bien comenta el gran maestro Chea, si se quieren imágenes en form continuo, con
versiones “nuevas” de Access, no hay que recurrir en absoluto a código VBA, dado que el
control imagen lleva una propiedad que nos permite manipular con facilidad el origen de la
imagen, siempre que tengamos su ruta almacenada en la tabla.

No obstante lo anterior, eso está bien si nuestra carpeta de imágenes está “fija” en algún lugar.
Pero, ¿cómo podemos hacerlo si las imágenes ”viajan” junto con la BD a diferentes
ordenadores?

Así pues os explicaré, en una primera parte, cómo conseguirlo si las imágenes están “fijas” en
una carpeta, y en una segunda parte si esas imágenes son “imágenes viajeras” ;-)

PRIMERA OPCIÓN: IMÁGENES EN CARPETA FIJA


Para desarrollar este ejemplo vamos a crearnos una tabla, que llamaremos TDatos1, con la
siguiente estructura simple:

Como veis, en la introducción de datos para el campo [RutaImg], debemos escribir la ruta
entera de la imagen en esa “carpeta fija”.

A continuación nos creamos un formulario en vista de formulario continuo (varios elementos)


sobre la tabla. Lo llamaremos FDatos1.

¿Qué debemos hacer a continuación? Pues los pasos a seguir son, sobre ese formulario en
vista diseño, los siguientes:

✔ Añadimos un control imagen al formulario

1 La BD de ejemplo os la podéis bajar aquí

1
Visítame en http://neckkito.siliconproject.com.ar
✔ Cuando nos salga el asistente navegamos y seleccionamos cualquier imagen.

Para hacernos una idea, la cosa a mí me ha quedado así:

✔ Sacamos las propiedades del control imagen y Pestaña Formato → Imagen, y le


borramos el valor que ahí nos aparezca, de manera que nos quede como valor
“Ninguno”. Probablemente os aparecerá un cuadro de diálogo que nos solicitará
confirmación para borrar esa imagen. Le decimos que sí.

No pasa nada si no borramos lo anterior, pero los nuevos registros cogerían esa imagen por
defecto. Si lo borramos el control nos aparecerá en blanco.

✔ Siguiendo en las propiedades del control imagen nos vamos a la Pestaña Datos →
Origen del registro, y ahí seleccionamos el campo que contiene la ruta de la imagen, es
decir, [RutaImg]

2
Visítame en http://neckkito.siliconproject.com.ar
Y con esto ya no requerimos de ninguna otra gestión. Ahora las imágenes nos deberían salir
correctamente al ver el formulario en vista Formulario.

SEGUNDA OPCIÓN: IMÁGENES EN CARPETA MOVIBLE


Debo clarificar aquí que el sistema funcionará siempre y cuando las imágenes estén en una
carpeta que se sitúe en el mismo directorio donde está la BD.

Así pues, donde tengamos la BD creamos la carpeta “Imagenes” y ahí situamos nuestras
imágenes. Podéis poner el nombre que queráis a la carpeta, siempre y cuando también lo
cambiéis en el código que veremos más adelante.

Vamos a crearnos la tabla TDatos2, muy parecida a TDatos1, sólo que esta vez, en lugar de
almacenar la ruta completa, lo que almacenaremos será el nombre y extensión del archivo de
imagen.

✔ Igual que hicimos en la primera parte, nos creamos un formulario sobre la tabla, que
llamaremos FDatos2, en vista de formularios continuos. E, igualmente, insertamos en él
un control imagen.

3
Visítame en http://neckkito.siliconproject.com.ar
✔ Borramos la imagen eliminando el valor de la propiedad. Pestaña Formato → Imagen

La captura de la ruta donde está la BD y, por extensión, donde está nuestra carpeta
“Imagenes”, vamos a realizarla por código. Así pues, abrimos el editor de VB e insertamos un
módulo estándar, que guardaremos con el nombre de mdlRutaImagenes2.

En ese módulo vamos a programar un función pública de acuerdo al siguiente código:


Public Function fncRutaImagenes() As String
fncRutaImagenes = Application.CurrentProject.Path & "\Imagenes\"
End Function

Fijaos que, si a nuestra carpeta la hubiéramos llamado, por ejemplo, “FotosGuays”, la línea de
código debería adaptarse al nombre de dicha carpeta, es decir:

fncRutaImagenes = Application.CurrentProject.Path & "\FotosGuays\"

✔ Volvamos a nuestro formulario FDatos2 en vista diseño. Lo único que nos resta hacer
es, en las propiedades del control imagen, definir su origen de datos.

Así pues, en Pestaña Datos → Origen del control, escribimos la siguiente expresión:

=fncRutaImagenes() & [NombreImg]

Y si lo hemos hecho todo bien, al situar nuestro formulario en vista Formulario, deberíamos
ver…

2 Para insertar un módulo estándar podemos abrir el editor de VB (ALT+F11) y nos vamos a Menú → Insertar → Módulo

4
Visítame en http://neckkito.siliconproject.com.ar
PARA FINALIZAR ESTE EJEMPLO
Como veis la mecánica es muy sencilla y no es necesario recurrir a “grandes códigos” para
conseguir los resultados deseados. Lo cierto es que con esa propiedad que os comentaba del
control imagen el trabajo se nos simplifica muchísimo. :-)

Espero que el ejemplo os pueda ser útil. Un saludo, y…

¡suerte!

5
Visítame en http://neckkito.siliconproject.com.ar