我有大约 600 个带有标题的文本文件,我真的不想将它们一一手动导入到 MS Access 中。
我不想将文本文件附加到一张 Access 表中。如果我有 600 个文本文件,我希望结果是 600 个 Access 表。
我对此进行了大量搜索,我得到的最接近的是一些代码,它将获取我的文本文件并将它们附加到一个访问表中。我不想要这样。
考虑使用 For/Loop VBADoCmd.TransferText命令迭代文件夹目录中的所有文本文件并使用表示 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
在 TransferText 的空参数中,您可以使用在手动导入文本文件期间创建的预定义规范对象。这允许您命名导入的文本文件的字段、定义数据类型等。
最后,如果所有文件的结构相同,请考虑再次导入到一个表中,并根据需要使用相关字段的查询来分解为 600 个分组。要使用一张表,只需替换"File_" & i
上面的参数带有表字符串名称:"dataFiles"
。您可以节省表命名空间,减少数据库对象的存储,总体上有助于更好的组织和关系模型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)