2014-09-04 58 views
1

我正在使用VBA和模式文件将制表符分隔的文本文件导入MS Access。除了结果访问表中第一条记录的第一个字段始终为空(即使它在文本文件中包含一个值)之外,所有事情都应该如其工作。文本文件导入到MS Access缺少第一个值

的代码非常简单:

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 
    ... 

我这样做成功了很多次,但从来没有遇到过这个问题。究竟是什么导致表中的第一个值等于空?

+0

是否可能在文本文件的开头有一个流氓制表符?我打赌你已经检查过,但如果你没有,它是值得的,以防万一。 – Blackhawk 2014-09-04 15:46:55

+0

是的,我也这么认为,虽然没有一个。 – whistler 2014-09-04 16:38:52

回答

2

当“data.txt”文件使用BOM(字节顺序标记)编码为UTF-8时,我能够重新创建您的问题。在记事本中打开该文件,执行File > Save As...,将“编码”从UTF-8更改为ANSI,然后覆盖现有文件。这应该解决它。

+0

啊,优秀! SQL Server导出必须编码为UTF-8。谢谢Gord,改变编码完美无缺。 – whistler 2014-09-04 16:41:56

相关问题