使用MS Access导入多个文本文件

Joe*_*oel 0 ms-access vba access-vba text-files ms-access-2013

我有大约600个带有标题的文本文件,我真的不想将它们逐个手动导入MS Access.

我不想将文本文件附加到一个Access表中.如果我有600个文本文件,我希望结果是600个访问表.

我为此搜索了高低,我最接近的是一些代码,它将获取我的文本文件并将它们附加到一个访问表中.我不希望这样.

Par*_*ait 5

考虑使用DoCmd.TransferText命令的For/Loop VBA,该命令迭代文件夹目录中的所有文本文件,并使用后缀导入它们以表示1-600.

Dim FSO as Object, objFolder As Object, objFile as Object

Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = FSO.GetFolder("C:\Path\To\TextFiles")

i = 1
For each objFile in objFolder.Files
  If Right(objFile.Name, 3) = "txt" Then
    DoCmd.TransferText acImportDelim, , "File_" & i, objFolder & "\" & objFile.Name, True
  End if
  i = i + 1
Next objFile

Set objFile = Nothing
Set objFolder = Nothing
Set FSO = Nothing
Run Code Online (Sandbox Code Playgroud)

在TransferText的空参数中,您可以使用在手动导入文本文件期间创建的预定义规范对象.这允许您命名导入的文本文件的字段,定义数据类型等.

最后,如果所有文件的结构都相同,请考虑再次导入到一个表中,并根据需要使用相关字段的查询来分解600个分组.要使用一个表,只需"File_" & i使用表字符串名称替换上面的参数:"dataFiles".您可以节省表名称空间,从较少的数据库对象存储,总体上有助于更好的组织以及关系模型.