我使用DoCmd.TransferText
導入從.cvs文件數據。我需要添加具有當前日期的另一列來導入信息。有沒有簡單的方法來做到這一點?的Microsoft Access DoCmd.TransferText附加列
3
A
回答
3
有可以使用幾種方法:
-Parse該文件並創建通過VBA,而不是使用TransferText INSERT語句。
- 如果表格已經存在,您將數據附加到現有表格,並且您有自動編號ID字段或其他方式來區分新數據和舊數據,則可以在導入後添加當前日期通過UPDATE語句:
Dim latestID As Long
latestID = DMax("yourIDField", "yourTable")
DoCmd.TransferText acImportDelim, , "yourTable", "c:\import.csv", True
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE yourTable SET importedDate = #" & Date & "# WHERE yourIDField > " & latestID
DoCmd.SetWarnings True
- 如果正在每次導入時創建一個新的表,你可以使用ALTER語句添加列,而更新輸入當前日期:
DoCmd.TransferText acImportDelim, , "yourTable", "c:\import.csv"
DoCmd.SetWarnings False
DoCmd.RunSQL "ALTER TABLE yourTable ADD COLUMN importDate DATE"
DoCmd.RunSQL "UPDATE yourTable SET importDate = #" & Date & "#"
DoCmd.SetWarnings True
0
另一種方法是爲.csv文件創建一個鏈接的表(se創建新鏈接表時從「打開」對話框彈出窗體中選取正確的文件類型),並創建附加字段爲Date()
或Now()
作爲默認值的附加查詢。
1
您可以使用schema.ini代替傳輸文本方法。
檢查下列博客也介紹了更多關於SCHEMA.INI https://officeaccelerators.wordpress.com/2015/02/08/exporting-text-file-from-access/
Set cn = CreateObject("ADODB.Connection")
Set cn = CurrentProject.Connection
sSQL = "insert into TanleName(Field1,Field2,Date) select tab1.Field1,tab1.Field2,date() from "
sSQL = sSQL & "[text;database=FilePath\;HDR=Yes].[Test.csv] as Tab1"
cn.Execute sSQL
相關問題
- 1. Docmd.TransferText question
- 2. Databound Microsoft Access的CheckBoxList
- 3. Microsoft Access查詢
- 4. Microsoft Access問題
- 5. 在Microsoft Access
- 6. Microsoft Access引擎
- 7. 導入附加vba MS-Access
- 8. 帶條件列的Microsoft Access 2007報告
- 9. 使用不同列的Microsoft Access搜索
- 10. 的Microsoft Access問題
- 11. 的Microsoft Access合計
- 12. Scope_Identity()in Microsoft Access
- 13. PDO Microsoft Access
- 14. Microsoft Access和SharePoint
- 15. 在Microsoft Access
- 16. 的Microsoft Access串解析
- 17. Microsoft Access /計數字
- 18. Microsoft Access TransferText功能:代碼頁問題
- 19. 的Microsoft Access - 案例查詢
- 20. 特定記錄的顯示附件Microsoft Access
- 21. C#Microsoft Access Connection Pooling
- 22. Microsoft Access VBA INSERT SQL語句
- 23. 將文件添加附件列在Access數據庫
- 24. Microsoft Access列表框帶到前面
- 25. Microsoft Access追加Querydef備忘錄字段
- 26. Microsoft Access自動增加小數點
- 27. Microsoft Access中按Enter鍵添加記錄
- 28. Microsoft Access 2010追加查詢錯誤
- 29. 可以將System.Security.Cryptography添加到Microsoft Access
- 30. AES通過VBA加密Microsoft Access字段
如果該表已經存在,是沒有問題的,因爲日期和時間的默認值可以在現場進行設置。 – Fionnuala
您可能會考慮使用currentdb.execute而不是docmd.runsql,您不需要使用SetWarnings語句和此方法 – ChrisPadgham