Импортировать все файлы в папке (все файлы Excel) в одну таблицу в базе данных доступа
Я пытаюсь импортировать несколько файлов Excel 2003 со столбцами A:H, которые находятся под одинаковыми заголовками и т. Д., В таблицу базы данных Access 2003. Это модуль в доступе я делаю. Я использую поиск файлов для поиска каждого файла, который начинается с формата (что они все делают), чтобы получить все файлы в пути к папке. Есть ли более эффективный способ сделать это? как-то выделить все файлы в папке? и импортировать каждый в одну и ту же таблицу в доступе? DoCmd. TransferSpreadsheet позволяет выбрать каждый путь к файлу отдельно, поэтому я не уверен, как получить имя каждого файла в папке для его импорта.
Если вы можете решить эту проблему, или если у вас есть какие-либо рекомендации относительно лучшего способа сделать это или что-нибудь, что было бы здорово! заранее спасибо =)
У меня есть это на данный момент:
Sub Import()
Dim db As Database
Set db = CurrentDb
Dim appendtbl As Recordset
Set appendtbl = db.OpenRecordset("sampletbl", dbOpenDynaset)
Dim FilePathString As String
Dim folderString As String
folderString = "C:blahblahblah"
Dim lngFileNumber As Long
With Application.FileSearch
.NewSearch
.LookIn = folderString
.FileType = xls
.Filename = "Format"
If .Execute > 0 Then
For lngFileNumber = 1 To .FoundFiles.Count
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "sampletbl", FilePathString, True, "A:H"
Next lngFileNumber
End If
End With
End Sub
Я немного погуглил после того, как попытался написать код, и нашел несколько более эффективных способов поиска, таких как:
strFileName = Dir("somepath\*.XLS")
Do Until strFileName = ""
'import from file "somepath\" & strFileName
strFileName = Dir()
Loop
Я попробую это и посмотрю, как это пойдет
1 ответ
Вы можете сделать это с помощью FileSystemObject.
Dim oFs As New FileSystemObject
Dim oFolder As Folder
Dim oFile As File
If oFs.FolderExists(FullPath) Then
Set oFolder = oFs.GetFolder(FullPath)
For Each oFile In oFolder.Files
//oFile contain the file information
Для получения дополнительной информации о FSO ознакомьтесь с документами MSDN: http://msdn.microsoft.com/en-us/library/6tkce7xa%28v=VS.85%29.aspx