Access - Explorar subcarpetas

 
Vista:

Explorar subcarpetas

Publicado por Santi (33 intervenciones) el 27/07/2003 22:54:21
Hola a todos...

Estoy trabajando en un visualizador de documentos. Le doy la ruta de una carpeta y me almacena en una tabla todos los documentos que encuentra (.doc; .pdf; . txt). Posteriormente puedo visualizarlos por medio del control WebBrowser.

Hasta aquí todo bien. Sin embargo, lo que quiero, es que al darle la ruta de una carpeta no sólo me saque los documentos de esa carpeta únicamente, sino los de todas sus subcarpetas.

¿Alguna idea? ¿Alguien puede indcarme algún ejemplo de código?

Gracias de antemano.
Un saludo.
Santi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Explorar subcarpetas

Publicado por Alejandro (4142 intervenciones) el 02/05/2023 20:05:15
Sí Santy, es posible explorar subcarpetas en Access usando VBA. Puedes hacer uso de la función Dir() para obtener la lista de archivos y carpetas dentro de una ruta determinada. Luego, puedes utilizar un bucle recursivo para recorrer todas las subcarpetas.

Aquí te dejo un ejemplo de código que puedes adaptar a tus necesidades:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub ExplorarSubcarpetas(ruta As String)
 
    Dim archivo As String
    Dim carpeta As String
    Dim rutaCompleta As String
 
    ' Recorrer archivos en la ruta actual
    archivo = Dir(ruta & "\*.*")
    Do While Len(archivo) > 0
        rutaCompleta = ruta & "\" & archivo
        If (GetAttr(rutaCompleta) And vbDirectory) = 0 Then
            ' Es un archivo, guardar en la tabla o procesar de alguna forma
            Debug.Print rutaCompleta
            ' Aquí puedes guardar la información en la tabla
        End If
        archivo = Dir()
    Loop
 
    ' Recorrer subcarpetas
    carpeta = Dir(ruta & "\*", vbDirectory)
    Do While Len(carpeta) > 0
        If carpeta <> "." And carpeta <> ".." Then
            rutaCompleta = ruta & "\" & carpeta
            ExplorarSubcarpetas rutaCompleta ' Llamada recursiva
        End If
        carpeta = Dir()
    Loop
 
End Sub

Este código recorre la ruta que se le pasa como parámetro y guarda en la tabla los nombres de todos los archivos que encuentra. Luego, hace una llamada recursiva a la función ExplorarSubcarpetas para cada subcarpeta que encuentra.

Espero que te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar