【发布时间】:2019-10-03 06:05:22
【问题描述】:
我是访问 vba 的新手。我正在尝试找到一种将 txt 文件导入我的访问数据库的方法。我阅读了很多文章和论坛,测试了很多代码,但都没有奏效。 我能够缩小到下面列出的代码。我遇到的问题是它运行并运行,然后我关闭了我的数据库并重新开始。没有错误,只是无尽的运行。我的 txt 文件不是那么大,除非我的代码中有错误并且我不知道如何修复它,否则它不应该这样做。 请帮忙。
Dim FileName As String
Dim MostRecentFile As String
Dim MostRecentDate As Date
Dim FileSpec As String
Dim filepath As String
Dim txtStream As Object
Dim strImportRecord As String
filepath = "\\C:\"
FileSpec = "*.txt*"
FileName = Dir(filepath & FileSpec)
If FileName <> "" Then
MostRecentFile = FileName
MostRecentDate = FileDateTime(filepath & FileName)
Do While FileName <> ""
If FileDateTime(filepath & FileName) > MostRecentDate Then
MostRecentFile = FileName
MostRecentDate = FileDateTime(filepath & FileName)
End If
Loop
End If
Set txtStream = CreateObject("Scripting.FileSystemObject").OpenTextFile(MostRecentFile)
Do While Not (txtStream.atendofstream)
strImportRecord = txtStream.ReadAll
Loop
DoCmd.TransferText acImportFixed, "myspecification", "mytable", "strImportRecord", False
【问题讨论】:
-
帮助文档指出您在哪里拥有“strImportRecord”应该是文本文件的文件名。我不确定它是否可以处理文本字符串。尝试而不是循环遍历文件,只需将“strImportRecord”替换为所需文本文件的路径。另外,请提供文本文件中的数据示例和表格的当前布局。
-
您是否已单步执行代码以确保其实际定位文件?它是否陷入读取 txtStream 的循环中?你的文件是分隔的吗?您是否已手动导入文件以创建导入规范?
-
Debugging VBA Code 很有帮助。
-
我不确定我是否理解您关于用文本文件的文件名替换“strImportRecord”的评论,我需要它是一个变量名。请对此进行扩展......我之前手动导入了这个文件,它工作得很好。我也确实通过代码查看代码是否看到文件并且确实如此。我会尝试为你模拟一些文本文件和 tbl 布局。
-
DoCmd.TransferText: docs.microsoft.com/en-us/office/vba/api/…