Access seleccionar archivo forzando la ruta

Mediante el código de abajo abro la ventana donde seleccionar el archivo requerido.

El problema viene en que a veces no se abre en esa carpeta especificada y necesito siempre forzar su apertura allí.

        With vDialogo
            .AllowMultiSelect = False
            .InitialView = msoFileDialogViewPreview
88          vTexto1 = LCase(fncQuitarAcentosYEspacios(Me.txtAutor.Value)) & ".*"
            .InitialFileName = Application.CurrentProject.path & "\" & vRutaDefault & "\" & vTexto1
            .Title = "Seleccionar foto de autor"
            .ButtonName = "&Seleccionar"
            .Filters.Clear
            .Filters.Add "Imágenes (GIF, JPG, PNG, BMP)", "*.gif; *.jpg; *.jpeg; *.png; *.bmp", 1
            If .Show = True Then
                vTexto0 = Replace(.SelectedItems(1), Application.CurrentProject.path & "\" & vRutaDefault & "\", "")
                Me.txtArchivo.Value = Mid(vTexto0, 1, InStr(1, vTexto0, ".", vbTextCompare) - 1)
                Me.lstFormato.Value = Mid(vTexto0, Len(vTexto0) - 3, Len(vTexto0))
                Me.imgFoto.Picture = Me.txtArchivo.Value & Me.lstFormato
            End If
        End With

¿Se podrá forzar la ruta sin excepción? ¿Con qué codigo?

2 Respuestas

Respuesta
1

¿No será mejor definir vRutaDefault como constante pública a nivel de módulo?

Public Const vRutaDefault As String = "micarpeta"

En donde micaperta es el nombre de la carpeta por Defecto. También puede almacenar el nombre de la carpeta en un archivo texto, de tal forma que se puede editar.

vRutaDefault ="micarpeta" y leer este archivo con FileSystemObject

La idea no es mala, pero el problema es que el nombre de la carpeta puede ser configurada en la propia base de datos. Por lo que vRutaDefault se obtiene desde esa configuración.

Entonces cambie vRutaDefault por "D:" u otra letra, así debe tomar el valor absoluto.

Corrijo NO me equivoque disculpe.

Respuesta
1

No sé como está construido el formulario, ni en que directorio guardas las carpetas, pero suponiendo que tengas un cuadro de texto o algo donde aparezca la carpeta

El cuadro de texto se llama Carpeta y cuando pulso el botón

Puedes ver que me ha abierto esa carpeta

Si pongo otro nombre

Al pulsar el botón

En la línea tengo puesto

.InitialFileName = "C:\users\gonza\documents\" & Carpeta

¡Gracias!
Igualmente me parece que para el resultado no cambia tenerlo en una variable, u obtener el valor del cuadro de texto.
El problema que tengo con hacerlo con mi código es que:

  • Primero se abre en la ruta correcta, pero si cambio la carpeta.
  • Después se abre en esta última carpeta en vez de la que establecí en la variable.

Por lo que puedo suponer es que con obtener la ruta de un cuadro de texto será el mismo. Quizá. No lo sé.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas