Access - Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

 
Vista:
sin imagen de perfil

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por J T (12 intervenciones) el 06/09/2023 20:27:55
Hola.
Tengo un directorio (C:\Borrar) del que cuelgan varios subdirectorios cada uno con unos cuantos archivos, algunos .jpg y otros de otras extensiones. Utilizando Access 2007 quiero que apretando un botón de un formulario, se genere en la tabla Lista_Fotos un registro en el que en el campo RUTA guarde la ruta completa de cada uno de los archivos .jpg existentes en el directorio y en todos los subdirectorios.
Para ello tengo este código pero tengo el problema de que solo me guarda en la tabla la ruta de los archivos .jpg existente en el directorio c:\Borrar, pero no los que hay en los subdirectorios existentes.
A ver si por favor me podeis decir cómo puedo modificarlo para que lo haga.
Gracias.



Private Sub Command0_Click()
Dim strPath As String
Dim strFile As String
Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset

strPath = "C:\Borrar\" 'Ruta del directorio que contiene las imágenes
strFile = Dir(strPath & "*.jpg", vbNormal)

Set db = CurrentDb()
Set rs = db.OpenRecordset("Fotos_Lista", dbOpenTable)

Do While strFile <> ""
strSQL = "INSERT INTO Fotos_Lista (Ruta) VALUES ('" & strPath & strFile & "')"
rs.AddNew
rs!Ruta = strPath & strFile
rs.Update
strFile = Dir()
Loop

rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

End Sub
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

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por Anonimo (3316 intervenciones) el 07/09/2023 04:34:42
No se esta utilizando la variable StrSQL que si se ejecutase como una consulta (con el método RunSQL o mejor EXECUTE) ya no seria necesario el recordset.

Para recorrer todas las subcarpetas hay que utilizar recursividad se tendrá que verificar si el nombre obtenido es un subdirectorio y de serlo añadirlo a strPath y reiniciar el bucle .... se puede complicar bastante si hay muchos niveles pues habrá subir y bajar por todos ellos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por J T (12 intervenciones) el 07/09/2023 10:47:18
Gracias por responder.
Si, tienes razón. Lo de la variable StrSQL se me olvidó eliminar de pruebas anteriores.
En cuanto a lo de los subdirectorios, hay 3 niveles de subdirectorios por debajo del directorio que indico.
La verdad es que no tengo muy claro cómo hacerlo. ¿Me podrías ayudar?
Gracias nuevamente.
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

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por Anonimo (3316 intervenciones) el 07/09/2023 19:16:37
Tenia pensado hacer algo similar para hacer un poco de limpieza (así 'la nueva maquina' no soportara los recuerdos obsoletos).

Tres niveles no parecen muchos, pero dado que todos pueden tener contenido o no existir, habrá que planificar el método y todo depende de la urgencia del caso.

La primera idea va en la línea de crear una tabla temporal que guarde los nombres de las carpetas (obtener los diferentes Path) y finalizada la búsqueda se recorren para obtener el contenido final.

Sobre la variable ¿porqué no se aplica en lugar de abrir la tabla?, es tan sencillo como (en lugar del manejo del recordset) :

CurrentDb.Execute strSQL (vericar que no falte una barra separadora en el aparatado Values.
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
sin imagen de perfil

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por J T (12 intervenciones) el 07/09/2023 19:29:06
Hola.
Si, me parece bien. Igual es más sencillo utilizar la variable, sobre todo aprovechando que ya la tengo.
En cuanto a la urgencia, pues como todo: no me va la vida en ello, pero cuanto antes, mejor.
Gracias.
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
sin imagen de perfil

Crear tabla en Access 2007 con ruta ficheros jpg en carpeta y subcarpetas

Publicado por J T (12 intervenciones) el 07/09/2023 20:34:39
Bueno, al final haciendo pruebas ya lo he conseguido.
Gracias de todas formas.
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