Imágenes vinculadas a datos en Access 2007
Los tradicionales problemas de Access para mostrar imágenes se han resuelto en la versión 2007 de manera plenamente satisfactoria y por partida doble: El nuevo tipo de datos de Access 2007, «Datos adjuntos», resuelve de manera tan espectacular estos problemas que a muchos nos ha deslumbrado hasta el punto de no apreciar a simple vista otra solución grande, precisamente por ser más sencilla. Me refiero al control Imagen, ahora actualizado, que incluye una propiedad «Origen del Control».
El control Imagen sigue siendo independiente y, si importamos una aplicación de una versión anterior, va a seguir funcionando exactamente igual. La novedad es que en esa nueva propiedad «Origen del control» le podemos indicar el nombre de un campo de texto que contenga la ruta de una imagen y entonces se mostrará la imagen que se encuentra en el archivo cuya ruta tenemos guardada.
La recomendación tradicional siempre ha sido no guardar imágenes en Access, sino la ruta donde se encuentra el archivo y luego, mediante código asignar la propiedad Picture del control en formularios o informes. En Access 2007, asignando la propiedad «Origen del control», nos ahorramos todo el código posterior para que la imagen se muestre y, además, de una forma más eficiente, pues siempre hubo problemas, nunca bien resueltos, de aplicaciones que se rompían cuando pasábamos deprisa los registros, imágenes que se repetían cuando no existía el origen… todo eso está ahora resuelto. Funciona tan fácil que uno se pregunta por qué no ha sido siempre así.
La solución es buena, pero son un conjunto de pequeñas novedades, seguramente ya conocidas, las que la convierten en una solución realmente grande, sobre todo con respecto a versiones anteriores:
Nuevas propiedades del objeto FileDialog de Office
Sigue siendo necesario usar código para seleccionar el archivo de imagen para poder guardar su ruta. Ya antes era sencillo usando el objeto FileDialog de Office (Debemos incluir una referencia a Office 12 Object Library), pero ahora podemos indicarle fácilmente si queremos que el diálogo muestre una vista previa o imágenes en miniatura. Sólo hay que asignar a la propiedad InitialView las constantes msoFileDialogViewPreview o msoFileDialogViewThumbnail
Podemos tener una función como ésta para llamarla cuando queramos obtener la ruta de la imagen deseada:
Public Function fArchivoImagen()
Dim fd As Office.FileDialog
On Error GoTo fArchivoImagen_Error
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
With .Filters
.Clear
.Add «Archivos de imagen», «*.jpg;*.jpeg;*.bmp;*.gif;*.png», 1
.Add «Todos», «*.*», 2
End With
.Title = «Seleccionar imagen)»
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
.InitialView = msoFileDialogViewPreview
If .Show Then
fArchivoImagen = .SelectedItems(1)
End If
End With
On Error GoTo 0
Exit Function
fArchivoImagen_Error:
MsgBox «Error » & Err.Number & » (» & Err.Description & «) in procedure fArchivoImagen of Documento VBA Form_Mi Empresa»
End Function
Más formatos de imagen admitidos
Access 2007 trabaja de forma nativa con los formatos de imagen más conocidos, no sólo con mapas de bits como en versiones anteriores, por tanto el control Imagen no depende de programas externos para mostrar las imágenes y, además, es capaz de aprovechar las características específicas de estos formatos, por ejemplo, la transparencia en los archivos PNG.
Un ejemplo de estas posibilidades lo vemos en el autoformato «Access 2007» cuando estamos diseñando un formulario: Al ser el dibujo del fondo del formulario transparente, podemos utilizar distintos colores de fondo con lo que obtendremos formularios con distinta apariencia para un mismo formato. El nuevo control de imagen también permite transparencias, sacarle partido depende de nuestra imaginación.
¡Funciona en formularios continuos!
Todavía parece lejos el momento en que podamos visualizar imágenes en formato Hoja de datos, pero ya podemos hacerlo en formularios continuos. Y tenemos dos posibilidades para elegir: un campo de Datos Adjuntos o nuestro nuevo control imagen.
Una buena alternativa al formato condicional
El formato condicional ha sido una forma sencilla de hacer algo que de otra manera era muy difícil y, de paso buscarse un montón de problemas complicados de solucionar. Controles que tiemblan, aplicaciones que se cierran de manera inexplicable… con frecuencia están ligados al uso de formato condicional en subformularios. Por otro lado, sólo admiten tres condiciones (o sea, tres formatos) distintos, cuando a menudo se necesitan más.
Aunque aún no tengamos alternativa en el formato Hoja de datos, en Formularios Continuos es muy fácil remedar el formato condicional usando controles de imagen vinculados a datos. Sólo necesitamos que en la consulta origen del formulario o informe exista un campo con una ruta de imagen para cada una de las condiciones posibles.
Es bien sencillo. Por ejemplo, a la base de datos «Northwind 2007» le hemos añadido una tabla «Cargos» con la descripción de los distintos cargos de los empleados y la ruta de la imagen que corresponde a cada uno en un campo que llamaremos «Color». En el origen del control del formulario de ejemplo, vinculamos la tabla Empleados a la nueva tabla Cargos:
SELECT Empleados.*, Cargos.Color
FROM Empleados LEFT JOIN Cargos ON Empleados.Cargo = Cargos.Cargo;
Sólo tenemos que generar automáticamente el formulario en modo Formulario Continuo y añadir un control Imagen en cuya propiedad «Origen de Datos» pongamos «Color». Para que sea «el fondo» de nuestro registro, lo ensanchamos, ocupando todo el ancho de la sección, y lo ponemos por debajo del resto de los controles utilizando en botón «Enviar al Fondo». ´
24 Responsesso far
Dices «En Access 2007, asignando la propiedad «Origen del control», nos ahorramos todo el código posterior para que la imagen se muestre »
¿Podrías poner un ejemplo?
Gracias
Aquí mismo, en «una buena alternativa al formato condicional», los colores de fondo son en realidad imágenes almacenads en sendos archivos PNG. No necesito escribir ni una línea de código para que se muestren.
Hola:
He creado un cmpo de texto para almacenar la ruta y en el formulario una imagen. Efectivamente en el nuevo «origen de control» puedes elegir tu campo de almacenamiento. Pero no funciona, no se ven las imagenes ????? que hago mal?
Perdon
Veo que hay que incluir un código lo que no se es donde hay que ponerle y no encuentro InitialView ni las constantes msoFileDialogViewPreview o msoFileDialogViewThumbnail.
Por favor dinos como
Muchas gracias
Hola, yo estoy en algo parecido y no sé: Quiero insertar 500 imágenes, o sea crear 500 records nuevos desde una carpeta donde están las fotos ¿Hay algo fácil para que un iniciado en Access lo haga? O me pueden conseguir algo que lo copie y funcione??? Gracias
pongan mas imagenes
Hola, yo al igual que fernando, tengo un campo en una base de datos que me indica la ruta donde se encuentra la imagen, mi pregunta concreta es ¿Cómo se hace para ver las imagenes con el «Visor de Imagenes» y ademas como quito el mensaje de alerta de seguridad.
Muchas gracias por la colaboración que me puedan brindar.
Hola, Yo quiero por un boton de un formulario llamado «Fotos», pincho en ese botón y se abra otro formulario o subformulario, que tenga un botón elegir la imagen, cuadro de texto en que aparesca la ruta de la imagen, 5 cuadros grandes donde colocar 5 imagenes, y otros botones que permitan borrar la imagen, agrandar la imagen, imprimir la foto
Es muy dificil hacer eso, no entiendo, no soy capaz, no puedo, si alguien puede hacerlo me lo envia a mi correo, por favor, porque no puedooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Chekar esta pagina…
http://office.microsoft.com/es-es/access/HA012138523082.aspx?pid=CH100728903082
quisiera enviar un correo masivo desde access 2007 pero en el cuerpo del mensaje me gustaria inserar una imagen, me pueden ayudar mi email es paulo.rios@hq-mi.com
En mi caso estoy realizando una tabla con diferentes columnas, y en una de ellas tengo la intención de poner «imagen». La imagen iría en cada una de las hojas del formulario, una imagen diferente en cada fila (en su apartado de imagen). ¿Es eso posible, alguien me podría ayudar?
Tengo en una tabla un campo de datos adjunto donde incluyo varias imágenes.
Quiero mostrar para el registro en curso todas las imágenes incluidas ese campo adjunto en un formulario. cómo puedo hacerlo? hay alguna forma de hacer lo que llaman un circulante de imágenes tipo inmobiliaria?
Muchas gracias msgambero@hotmail.com
Hola a todos:
Me gustaria que me ayuden para darme los pasos a seguir para que en una base de datos hecho con access 2007 pueda yo mostrar las fotos vinculadas o incrustados de los productos de una bodega.
Les agradezco por anticipado, mi correo es sigjose2006@yahoo.es
mi nombre es Jose Salas
Gracias Chea. Eres un crack!
Me ha servido estupendamente para colorear un subformulario.
hola ya puedo mandar a un informe los campos de un formulario, pero el de datos adjuntos, o sea una imagen que es parte de los datos de un gafete, no la puedo mandar me sale ne blanco, ya sea que me pasen un tip sencillo casi no se usar access tengo el 2007. o ya sea que me pasen un sistemita de gafetes gracias . . .
Hola:
Tengo una base de datos con alrededor de 3000 resgistros y unos 2000 tienen una foto adjunta. ¿es posible insertar todas las fostos en Access 2007 ocn los «datos adjuntos» o el tamaño de la BDD se me va a disparar? Si es así, ¿cuál es la solución?
Muchísimas gracias
Buenos dias, tengo un problema, tengo un formulario hecho en access 2000, en el un campo es una foto, no he tenido problemas hasta que he cambiado a access 2007, ahora quiero vincular fotos al campo propio de la foto y marco examinar, cojo la ruta que está la foto y al vincularla me pone el nombre del archivo en el cuadrito pero no me pone la foto… no sé como hacer que me salga la foto. Les agradecerìa me lo dijesen si es posible a mi correo que les pongo arriba.
Un saludo y muchas gracias
No se si estamos en tiempo todavia pues ya estamos en 2011. Utilizo el ejemplo y hago la referencia a la libreria y cuando se suscita el evento me sale un error donde dice que «No se ha definido el tipo definido por el usuario»
Gracias
Buenos días, tengo una buena cantidad de documentos escaneados en formato jpg y quisiera vincularlas en un formulario elaborado en access 2007 como medio de consulta. les agradeceria me indicaran como puedo hacer para vincular el visor de imagenes al formulario.
gracias de antmano
ver imagenes en ACCESS … please!
ver imagenes en ACCESS … please!
COMO PUEDO IMPRIMIR UNA IMAGEN ADJUNTA CON SOLO PULSAR UN BOTON DESDE EL FORMULARIO.
Hola a todos !!!!
Hace tiempo que queria hacer esto !!! por fin !!! pero… no me funciona..
Entiendo que simplemente debo insertar una imagen, y en lugar de seleccionar un archivo, en hoja de propiedades, entrar en origen de control la tabla donde tengo la dirección de la imagen verdad ??? pues no me funciona ni en un formulario ni en un informe (donde realmente me interesa)… no se que hago mal… El control que inserto es el de imagen.
Help me !!!
Rectifico !!!! si funciona !!! pero solo con un BMP !!!! con la imagen .jpg no consigo que funcione… no quedamos que aceptaba todo tipo de imagenes ???