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

Entradas populares de este blog

Importación de archivos de texto (log) a una base de datos Access

Introducción A partir de la pregunta de un usuario de todoexpertos.com, voy a intentar poner en limpio un método para hacer importaciones de datos log. Se trata de leer un archivo de texto con información, tratarla y escribirla en una base de datos. En este caso voy a hacerlo con Access, por dos motivos: El usuario lo pregunta en este lenguaje Es lo más rápido y cómodo que tengo a mano Cada caso es distinto, es decir, cada archivo es distinto, porque cada archivo contiene una información determinada, y quien diseñó la exportación a log, decidió la estructura de datos que quería exportar y el formato en que se escribiría tal exportación. Por tanto, lo primero que hay que hacer es estudiar esa estructura de datos y ver como plasmarla en una o más tablas de datos. Lo segundo es crear las tablas correspondientes. Siempre puede haber errores en la estructura, porque siempre pueden aparecer datos imprevistos que no existen en los primeros archivos log vistos, por tanto, hay qu...