Access
  • Home

Imágenes vinculadas a datos en Access 2007

  • By chea
  • Ene-31-2008
  • Sin categoría
  • 24 Comments.

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”. ´


 


image





 

Comments

24 Responsesso far

  1. anonymous dice:
    2 febrero, 2008 a las 6:29 am

    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

    Responder
  2. chea dice:
    7 febrero, 2008 a las 11:26 pm

    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.

    Responder
  3. funkel dice:
    16 febrero, 2008 a las 12:06 pm

    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?

    Responder
  4. funkel dice:
    16 febrero, 2008 a las 12:14 pm

    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

    Responder
  5. anonymous dice:
    14 marzo, 2008 a las 5:40 am

    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

    Responder
  6. anonymous dice:
    10 abril, 2008 a las 8:44 pm

    pongan mas imagenes

    Responder
  7. anonymous dice:
    27 octubre, 2008 a las 7:28 pm

    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.

    Responder
  8. anonymous dice:
    11 diciembre, 2008 a las 9:36 pm

    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

    Responder
  9. anonymous dice:
    5 abril, 2009 a las 7:50 am

    Chekar esta pagina…

    http://office.microsoft.com/es-es/access/HA012138523082.aspx?pid=CH100728903082

    Responder
  10. anonymous dice:
    22 diciembre, 2009 a las 8:10 pm

    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

    Responder
  11. anonymous dice:
    19 enero, 2010 a las 5:39 pm

    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?

    Responder
  12. anonymous dice:
    19 marzo, 2010 a las 4:03 pm

    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

    Responder
  13. anonymous dice:
    8 mayo, 2010 a las 1:49 am

    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

    Responder
  14. anonymous dice:
    27 julio, 2010 a las 8:26 pm

    Gracias Chea. Eres un crack!
    Me ha servido estupendamente para colorear un subformulario.

    Responder
  15. anonymous dice:
    21 septiembre, 2010 a las 6:46 am

    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 . . .

    Responder
  16. anonymous dice:
    21 diciembre, 2010 a las 11:11 am

    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

    Responder
  17. anonymous dice:
    16 febrero, 2011 a las 12:00 pm

    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

    Responder
  18. anonymous dice:
    9 marzo, 2011 a las 7:59 pm

    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

    Responder
  19. anonymous dice:
    12 mayo, 2011 a las 4:30 am

    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

    Responder
  20. anonymous dice:
    23 julio, 2011 a las 10:20 am

    ver imagenes en ACCESS … please!

    Responder
  21. anonymous dice:
    23 julio, 2011 a las 10:20 am

    ver imagenes en ACCESS … please!

    Responder
  22. anonymous dice:
    18 agosto, 2011 a las 6:41 pm

    COMO PUEDO IMPRIMIR UNA IMAGEN ADJUNTA CON SOLO PULSAR UN BOTON DESDE EL FORMULARIO.

    Responder
  23. scoobytdoo dice:
    10 enero, 2012 a las 11:01 am

    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 !!!

    Responder
  24. scoobytdoo dice:
    10 enero, 2012 a las 11:10 am

    Rectifico !!!! si funciona !!! pero solo con un BMP !!!! con la imagen .jpg no consigo que funcione… no quedamos que aceptaba todo tipo de imagenes ???

    Responder

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

← Previous Post Next Post →

Categories

  • Sin categoría

Search:

Archives

  • mayo 2016
  • abril 2016
  • marzo 2016
  • enero 2016
  • diciembre 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
  • febrero 2015
  • enero 2015
  • diciembre 2014
  • noviembre 2014
  • septiembre 2014
  • agosto 2014
  • junio 2014
  • mayo 2014
  • abril 2014
  • febrero 2013
  • mayo 2011
  • octubre 2010
  • enero 2010
  • junio 2009
  • mayo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • agosto 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • enero 2008
  • octubre 2007
  • septiembre 2007
  • julio 2007
  • junio 2007
  • mayo 2007
  • abril 2007
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.