Como se puede usar el CurrentProject. ¿Path con un textbox?

Tengo una carpeta OT_Trabajos y genero varias carpetas OT1, OT2, OT3, etc., dentro de ellas guardo varias fotos y documentos, esto en Access. La idea es que cuando se habrá el formulario o recorra registro a registro muestre las fotos asociadas. ¿Seria posible esto? Intente colocando en la línea de comando un Textbox que registra el nombre de la carpeta.

     RutaImagen = Application.CurrentProject.Path & "\Tools\OTClientes\Informes\Me.Carpeta\" & NombreImagen  'En esta linea agrego el textbox donde esta registrado el nombre de la carpeta a buscar imagen

2 Respuestas

Respuesta
2

Le dejo el código mejorado

Private Sub Form_Current()
    Dim RutaBase As String
    Dim RutaImagen As String
    ' Ruta base del proyecto
    RutaBase = Application.CurrentProject.Path & "\Tools\OTClientes\Informes\"
    ' Verificar que el TextBox con el nombre de la carpeta no esté vacío
    If Not IsNull(Me.Carpeta) And Not IsNull(Me.NombreImagen) Then
        ' Construir la ruta completa
        RutaImagen = RutaBase & Me.Carpeta & "\" & Me.NombreImagen
        ' Verificar si el archivo existe antes de asignarlo
        If Dir(RutaImagen) <> "" Then
            Me.ImagenControl.Picture = RutaImagen
        Else
            Me.ImagenControl.Picture = "" ' Vaciar si la imagen no existe
        End If
    Else
        Me.ImagenControl.Picture = "" ' Si el campo Carpeta o NombreImagen está vacío
    End If
End Sub

Explicación del código:

Obtiene la ruta base usando Application. CurrentProject. Path.
Toma el nombre de la carpeta desde el Textbox (Me. Carpeta).
Concatena el nombre de la imagen almacenado en Me. NombreImagen.
Verifica si el archivo existe con Dir(), evitando errores al cargar imágenes inexistentes.
Carga la imagen en un control de tipo Image (Me. ImagenControl).
Si no se encuentra la imagen, se limpia el control para evitar errores.

Requisitos:
Debe tener un control de imagen en el formulario llamado ImagenControl.
Me. Carpeta debe contener el nombre de la carpeta OT (Ej: "OT1").
Me. NombreImagen debe contener el nombre del archivo de imagen (Ej: "foto1.jpg").

¡Gracias! Don Eduardo, es un Master en esta materia y me ah enseñado bastante, a lo que me expuso yo realice unos pequeños cambios y me funciona a la perfección, así como quería.

Respuesta
1

CurrentProject Path es una variable disponible en Access que devuelve la ruta a la aplicación desde la que se utiliza.
Si la ruta de la aplicación está en el disco C: en una carpeta [bases de datos], en ella una subcarpeta [trabajos] y el nombre del aplicación es [Ventas.MDB], esto es:
C:\Bases de datos\trabajos\ventas.mdb
CurrentProject Path devuelve:
“C:\Bases de datos\trabajos”
Y CurrentProject Path. Name devuelve
“ventas.mdb”
Y ambas serán textos.
Access NO evaluara un texto, esto es, si yo utilizo un cuadro de texto para presentar un dato y el contenido (el dato) se desea utilizar como parte de un texto, hay que ‘sacarlo’ del texto para que Access lo pueda evaluar en tiempo de ejecución (o validación de la expresión)
Un ejemplo (con los datos publicados)
RutaImagen = Application.CurrentProject.Path & "\Tools\OTClientes\Informes\Me.Carpeta\" & NombreImagen
Application.CurrentProject.Path = “C:\Carpeta_1\Carpeta_2”
(Me.Carpeta es el nombre del cuadro de texto, no su contenido)
RutaImagen = “C:\Carpeta_1\Carpeta_2\Tools\OTClientes\Informes\Me.Carpeta\" & NombreImagen
Para que pueda evaluar el contenido del cuadro de texto (Me. Carpeta) se tiene que construir así:
RutaImagen = “C:\Carpeta_1\Carpeta_2\Tools\OTClientes\Informes\” & Me.Carpeta & “\" & NombreImagen
Y si en Me.Carpeta = “Cliente25” y NombreImagen= “Foto 25.jpg
RutaImagen (se supone que una variable de tipo texto) contendría:
“C:\Carpeta_1\Carpeta_2\Tools\OTClientes\Informes\cliente25\Foto25.jpg“

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas