我使用VBA和架构文件将制表符分隔的文本文件导入MS Access。一切都按预期工作,除非生成的访问表中第一个记录的第一个字段始终为null,即使它在文本文件中包含值。
代码非常简单:
sqlCmd = "SELECT * INTO [tblTemp] FROM [Text; Database=" & sDeskPath & ";].[" & Replace(sFileName, ".", "#") & "]"
CurrentDb.Execute sqlCmd, dbFailOnError
架构是正确的:
[data.txt]
ColNameHeader=False
Format=TabDelimited
CharacterSet=ANSI
DateTimeFormat=YYYY-MM-DD
Col1=IssueID Long Width 10
Col2=Month Text Width 10
Col3=Year Long Width 5
...
我已多次成功完成此操作,但从未遇到过此问题。究竟是什么导致表中的第一个值等于null ??
答案 0 :(得分:2)
当“data.txt”文件编码为带有BOM(字节顺序标记)的UTF-8时,我能够重新创建您的问题。在记事本中打开该文件,执行File > Save As...
,将“编码”从UTF-8
更改为ANSI
,然后覆盖现有文件。那应该解决它。