2014-09-04 124 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