2016-09-15 70 views
3

我有一個Microsoft Access數據庫中的表,每天從日常的性能報告導入數據。導入數據中的特定字段(指站點名稱)是大多數報表源數據中的文本字段,但是對於一個報表而言,它是文本字段(例如,站點00415)和數字字段(例如00415)之間的混合。當數據存儲在Excel中時,我強制將數字網站設爲文本,因爲其中一些網站具有前導零。自動導入到訪問 - 強制字段類型

訪問表的數據類型爲Text(格式@應該是相關的),但是當導入包含數字站點的報表時,由於它試圖導入整個列,因此在有文本條目的行上出現導入錯誤作爲數字而不是文本。

有沒有辦法強制字段作爲文本導入,即使當文件的第一行(我相信是基於字段類型的訪問)是數字?

或者,我應該將字段類型更改爲其他可以處理文本和數字的其他字段,但重要的是保留該數字而不用任何格式。

對於什麼是值得 - 我已經通過保存的導入方法,然後通過使用以下腳本腳本導入數據和經驗豐富的在這兩種導入方法這個問題:

Option Compare Database 

Sub import_test() 
    Dim strXls As String 
    strXls = "C:\Users\me\Desktop\IMPORT.xlsx" 

    DoCmd.TransferSpreadsheet acImport, , "ImportDB", _ 
    strXls, True, "A1:Z100" 

End Sub 

回答

1

默認情況下,訪問將只檢查前24行數據,以確定建議的類型的字段。

如果您的數據是前24行的全部數字,那麼Access可能會猜測您的字段的數據類型不正確。該數據類型與保存的導入一起保存,並且Access使得查看保存的字段類型變得困難。

聽起來好像您的表格是使用Short Text@格式設置的。這對您的需求非常理想。

您需要確保您的Excel文件具有文本格式的值 - 特別是前導零的值。然後,您需要再次運行「導入Excel文件嚮導」,但此時務必明確設置每列的字段類型,特別注意有問題的字段 - 您可能會發現Access假定字段應爲Double,此時它應該是Short Text

enter image description here

一旦你做到了這一點,你必須使用DoCmd.RunSavedImportExport的辦法,因爲TransferSpreadsheet方法不會讓你指定Excel文件的任何字段類型的細節。

DoCmd.RunSavedImportExport "MyImport" 

這裏是文本字段中的一些文本格式的值。

enter image description here

你應該有持續的問題,您可能需要導出Excel文件到一個文本文件格式,然後使用Access導入該文件,但我懷疑你需要做到這一點。

+0

非常感謝您的建議。我將能夠在未來幾天內審查我的流程,並會根據您的建議進行更新 – SMLBW