将文件夹中的所有文件(所有 excel 文件)导入到 access 数据库中的单个表中

Posted

技术标签:

【中文标题】将文件夹中的所有文件(所有 excel 文件)导入到 access 数据库中的单个表中【英文标题】:importing all files in a folder (all excel files) into a single table in an access database 【发布时间】:2011-08-23 03:24:02 【问题描述】:

我正在尝试将一堆带有 A:H 列的 excel 2003 文件导入到 access 2003 数据库中的表中。这是访问即时通讯中的一个模块。我使用文件搜索来查找以 Format 开头的每个文件(他们都这样做)以获取文件夹路径中的所有文件。有没有更有效的方法来做到这一点?以某种方式选择文件夹中的所有文件?并将每个导入到访问中的同一个表中? 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

【讨论】:

我已经得到了我在谷歌上找到的代码,所以我没有时间尝试你的代码。但感谢您的帮助 =)

以上是关于将文件夹中的所有文件(所有 excel 文件)导入到 access 数据库中的单个表中的主要内容,如果未能解决你的问题,请参考以下文章

将不同文件中的多个excel表导入python并将它们连接到一个数据框中

将大型 .csv 文件导入 Excel,

从 Excel 工作表中查找并替换所有文本文件中的字符串

用python将两个excel文件中的所有工作表复制到一个新的excel?

将数据从(大)文件 Excel 导入 datagridview,然后导入数据库 - 为啥插入数据库需要这么长时间并且不能保存所有数据?

在文件夹中创建文件名数组 - Excel VBA