Ir al contenido principal

Uso de ventanas del Sistema para operaciones con archivos

Introducción

En el transcurso del desarrollo de aplicaciones, a menudo nos encontramos con que nuestro programa tiene que poder interactuar con el sistema para gestionar archivos o carpetas.
Este pequeño tutorial trata precisamente de enseñar a abrir una ventana de sistema para localizar archivos y/o carpetas, del mismo modo que lo hace cualquier otro programa cuando escogemos la opción de menú Archivo/Abrir.
Vaya por delante que el código no es mío. Lo único que hago es tomarlo de una aplicación en que lo usé y explicarlo.

Copio y pego el código y lo explico después:

Public Function importaB() As Variant
    Dim respuesta As Long
    Dim dlgAbrir As FileDialog
    Dim vrtSelected As Variant
    Dim narchivo As String
    
    Set dlgAbrir = Application.FileDialog(msoFileDialogFilePicker)
    With dlgAbrir
        .AllowMultiSelect = False
        .title = "Titulo de la ventana"
        .InitialFileName = Application.CurrentProject.Path
        .ButtonName = "Abrir"
        If .Show = -1 Then
            For Each vrtSelected In .SelectedItems
                narchivo = vrtSelected
            Next
        End If
    End With
End Function

Análisis del código


  • La función se declaró como pública por necesidades del programa, así podía llamar a la función desde cualquier parte del mismo.
  • El objeto dlgAbrir (no es una variable) es de un tipo especial, FileDialog, que es un tipo de clase del sistema, en este caso es un FileDialog de tipo msoFileDialogFilePicker, es decir, un cuadro de diálogo del sistema para elegir archivos.
  • Los parámetros configurados en este caso son:
    • AllowMultiSelect = False: no se pueden seleccionar varios archivos, sólo uno
    • Title: es el título de la ventana que se mostrará.
    • InitialFileName: la carpeta en la que se abrirá la ventana
    • CurrentProject.Path: la carpeta en la que está el archivo de Access que abre la ventana
    • ButtonName: la etiqueta del botón Abrir
  • Show = -1 significa que ya se ha elegido el archivo y se ha clicado el botón por defecto.
  • El bucle For Each ... Next recorre la lista de archivos marcados. Como en este caso sólo hay uno marcado, almacena el nombre completo (con ruta) del archivo en la variable narchivo
  • Una vez acaba el End With hay que especificar las órdenes correspondientes para ver que se hace con el archivo.
Espero que sea útil.
Saludos



Comentarios