Joe*_*oel 0 ms-access vba access-vba text-files ms-access-2013
我有大约600个带有标题的文本文件,我真的不想将它们逐个手动导入MS Access.
我不想将文本文件附加到一个Access表中.如果我有600个文本文件,我希望结果是600个访问表.
我为此搜索了高低,我最接近的是一些代码,它将获取我的文本文件并将它们附加到一个访问表中.我不希望这样.
考虑使用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"
.您可以节省表名称空间,从较少的数据库对象存储,总体上有助于更好的组织以及关系模型.
归档时间: |
|
查看次数: |
9035 次 |
最近记录: |