Access - FileSeach por FileSystemObject

   
Vista:
Imágen de perfil de Enrique Ramírez

FileSeach por FileSystemObject

Publicado por Enrique Ramírez (617 intervenciones) el 11/03/2015 18:55:17
En access XP hago búsquedas de libros de Excel en carpetas con el FileSearch, pero access 2007 ya no lo soporta, según la ayuda debo usar FileSystemObject.
De esta forma solo estoy obteniendo UN libro a la vez y eso tecleando el nombre de este, pero necesito que por medio de un bucle For obtener todos los libros de Excel que existan en cualquier carpeta que seleccione y guardalos en una lista.

con este código obtengo libro por libro pero debo teclear el nombre de cada uno y el bucle For que busco debe darme todos sin importar el nombre de cada libro

1
2
3
4
5
6
7
8
Dim objFS, objFile
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile("C:\HojasExcel\2015\Nominas\Quincena01.xls")
Me.listaNominas.AddItem (objFile.Name)
Set objFile = objFS.GetFile("C:\HojasExcel\2015\Nominas\Quincena02.xls")
Me.listaNominas.AddItem (objFile.Name)
Set objFile = objFS.GetFile("C:\HojasExcel\2015\Nominas\Quincena03.xls")
Me.listaNominas.AddItem (objFile.Name)

¿Alguién ya ha solucionado esto?


con el FileSearch lo hacía así:

1
2
3
4
For i = 1 To .FoundFiles.Count
        varchivo = .FoundFiles(i)
        Me.listacampos.AddItem (varchivo)
Next i
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 Enrique Ramírez

FileSeach por FileSystemObject

Publicado por Enrique Ramírez (617 intervenciones) el 11/03/2015 20:56:28
Solucionado....
Les paso el código espero les sea de utilidad

'=========[CODIGO PARA ACCESS 2007] 11/03/2015 ===========
'1) Declar variables
1
2
3
4
5
6
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strPath As String
Dim objFSO As FileSystemObject
Dim objFolder As Folder
Dim objFile As File

'2) obtener la ruta de la tabla configuracion en la cual se van a buscar los libros de excel
el campo de la ruta es dir_nominas
1
2
3
4
5
6
Set db = CurrentDb
Set rs = db.OpenRecordset("configuracion", dbOpenDynaset)
rs.MoveFirst
strPath = Trim(rs!dir_nominas)
rs.Close
db.Close

'3) Crear instancia de FileSystemObject
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
'Obtener la carpeta
Set objFolder = objFSO.GetFolder(strPath)
 
'Si la carpeta no contiene archivos, muestra mensaje y se sale de la rutina
If objFolder.Files.Count = 0 Then
   MsgBox "No hay libros de excel a procesar...", vbExclamation
   Exit Sub
Else
   'Si la carpeta SI contiene archivos, lee uno por uno y lo guarda en la lista
   For Each objFile In objFolder.Files
       Me.listacampos.AddItem (objFile.Name)
   Next objFile
End If
Me.listacampos.Requery
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
Imágen de perfil de xve

FileSeach por FileSystemObject

Publicado por xve (114 intervenciones) el 11/03/2015 22:49:00
Gracias por compartirlo Enrique.
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