Extraer ruta de un path en un .selecteditems de access 2016

Estoy realizando un formulario de una base de datos de access 2016. He creado una función para poder buscar un archivo en el equipo, he creado un modulo, y dentro el código es el siguiente:

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = "\\******\******\" '---> Aqui esta indicada la ruta inicial del cuadro de dialogo
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All Files", "*.*"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <CANCELAR>."
End If
End With
End Function

Funciona perfectamente, la variable buscaArchivo recoge el valor entero, por ej. "c:\documentos\prueba\imagen.jpg"

Pero sucede que para mi formulario necesito extraer solo la ruta donde esta el archivo, por ej: "c:\documentos\prueba\". Y asignarle este valor a una variable.

1 respuesta

Respuesta
2

Es más sencillo hacer una función que te devuelva la ruta de la carpeta, en vez de extraerla del archivo (que luego te diré cómo puedes hacerlo), simplemente cambiando

Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

por:

Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)

Para extraer la ruta puedes combinar las funciones Left()e InStrRev(), por ejemplo (escrito "al vuelo" sin probar):

Left(buscaArchivo, InStrRev(buscaArchivo, "\"))-1

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas