我正在使用DoCmd.TransferText
从.cvs文件导入数据。我需要向导入的信息添加另一个包含当前日期的列。有什么简单的方法可以做到这一点吗?
发布于 2011-09-05 05:49:49
您可以使用以下几种方法:
通过VBA而不是使用TransferText来插入文件和create -Parse语句。
-If表已经存在,您正在将数据附加到现有表中,并且有一个自动编号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
-If每次导入时都会创建一个新表,您可以使用ALTER语句添加列,然后使用UPDATE语句输入当前日期:
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
发布于 2015-02-08 17:56:33
您可以使用schema.ini代替transfer text方法。
请查看以下博客,其中描述了有关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
发布于 2011-09-05 08:29:43
另一种方法是为.csv文件创建一个链接表(在创建新的链接表时,从打开对话框弹出表单中选择正确的文件类型),并创建一个附加查询,其中附加字段将Date()
或Now()
作为默认值。
https://stackoverflow.com/questions/7300167
复制相似问题