Access - ¿Cómo puedo especificar la ruta de una fotografía?

Al crear un formulario dónde tengo asignado un campo texto en el que busco la ruta de una fotografía para después convertirla en imagen, me gustaría que en el botón que he creado para buscar la ruta de la imagen me la abriera por un directorio especifico, es de decir, dónde está ubicada la base de datos, en la subcarpeta imágenes. Para que así al mover la base de datos en otro servidor no perdiera el link.

2

2 Respuestas

662.200 pts. No responderé preguntas de usuarios que no valoren las...

La respuesta de Icue, si bien es correcta, te soluciona solo la primera parte de tu consulta, porque si cambias la BD de carpeta (o de ordenador) dejarás de visualizar las imágenes en tu formulario (a no ser que tengas la misma estructura de capetas)

Eso es así porque la función propuesta devuelve la ruta absoluta del fichero (por ejemplo D:\Pruebas Access\Proyectos\Logo.jpg)

En mi opinión, tu mejor opción es guardar solo el nombre y extensión del archivo y crear por código la ruta completa, que será la ruta en la que tengas la BD (que sabes con Application. CurrentProject. Path) y le añades la carpeta imágenes, que siempre estará donde la BD. De esta forma no importa si mueves la BD y carpeta de ubicación en tu ordenador, la abres desde un pen o la llevas a otro ordenador, te funcionará siempre que la BD y la carpeta imagenes estén juntas.

El código es fácil de modificar a partir del que te propone Icue:

El código del botón lo cambias por:

Dim elArchivo As String
elArchivo = buscaArchivo()
Me.Archivo = Right(elArchivo, Len(elArchivo) - InStrRev(elArchivo, "\"))
Me.Foto.Picture=Application.CurrentProject.Path & "\Imagenes\" & Me.Archivo

Y en del Form_Current por este:

If IsNull(Archivo) Then
Me.Foto.Picture=""
Else
Me.Foto.Picture=Application.CurrentProject.Path & "\Imagenes\" & Me.Archivo
End If

Un saludo.


488.200 pts. Si no valoras las respuestas, no esperes que te...

Te digo lo que haría. Supongamos que el campo donde guardas la ruta de la foto se llama Archivo. En el formulario poner un control imagen y ponerle en sus propiedades-otras-nombre ponle Foto.

En l editor de VB pon lo de la imagen

Como verás, en initialfilename le digo que empiece abriendo la carpeta de la base de datos.

Luego en el botón y en el evento Al activar el registro

O sea, al pulsar el botón se abre un explorador, seleccionas la foto que quieras. Al hacerlo, en el cuadro de texto Archivo te pone la ruta a esa foto, y en el control imagen te la muestra. Si luego te desplazaras por registros y volvieras, como en el evento Al activar registro le has dicho que Foto.picture=Archivo te seguirá mostrando la imagen original.

Eso, si en el editor de VB tienes que pulsar Herramientas-referencias y activar Microsoft Office XX.X  Object Library. El xx es por la versión que tengas del Office.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas