使用VBA导入Access中txt文件 - 日期格式问题 - 进口规格

使用VBA导入Access中txt文件 - 日期格式问题 - 进口规格

问题描述:

我进口已经从Excel导出并在通用形式结束即42408等使用VBA导入Access中txt文件 - 日期格式问题 - 进口规格

当将它导入到访问txt文件,作为一种进口,我没有任何问题。 (我设置的数据类型为日期等,和它的作品 - “没有输入错误。)

然而,当我尝试多进口使用下面的代码,一切进口除了日期,我得到一个“类型转换错误”

现在,我相信这个问题是与进口规范。 [见图片]

有谁知道进口规范,将使其工作的配置?

Database file here (also I have included the import txt file)

enter image description here

Sub import_multiple_files() 
On Error GoTo bImportFiles_Click_Err 

Dim objFS As Object, objFolder As Object 
Dim objFiles As Object, objF1 As Object 
Dim strFolderPath As String 

strFolderPath = "s:\downloads\import_files\" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strFolderPath) 
Set objFiles = objFolder.files 

For Each objF1 In objFiles 
    If Right(objF1.Name, 3) = "txt" Then 
     DoCmd.TransferText acImportDelim, "TextImportSpecs", "tblImportedFiles", strFolderPath & objF1.Name, False 
     Name strFolderPath & objF1.Name As "s:\downloads\Archived Files\" & objF1.Name 'Move the files to the archive folder 
    End If 
Next 

Set objF1 = Nothing 
Set objFiles = Nothing 
Set objFolder = Nothing 
Set objFS = Nothing 

bImportFiles_Click_Exit: 
Exit Sub 

bImportFiles_Click_Err: 
MsgBox Err.Number & " " & Err.Description 
Resume bImportFiles_Click_Exit 

End Sub 

如果可以避免的话,千万不要使用字符串。

42408只是日期值的数值。您可以轻松地转换CDATE这个数据类型日期:

RealDate: CDate(NumericDate) 

42408 -> 2016-02-08 

为了避免以后的更新和/或领域,不导入该文件,但联系起来。然后创建一个查询来读取链接表并执行所需的任何转换。

现在使用该查询作为源为您导入或进一步处理。

+0

YH这会工作,但问题是我不希望添加任何额外的字段。如果我能够将导入规范配置为可行,那将是最佳解决方案。 – yusufzub

+0

然后链接文件。请参阅编辑。 – Gustav

+0

或者,OP可以导入临时表并使用任何所需的转换/计算将附加查询迁移到最终表中。 – Parfait

,您可以手动导入带有日期列日期表,并保存导入,并从代码中调用的DoCmd.RunSavedImportExport“你导入名称”

+0

这不会但是做我想要的所有文件(txt文件),而不管文件的数量或名称中的哪一个输入从特定的文件夹 – yusufzub

+0

我的坏。这是我使用的工作。导入日期作为字符串。后来添加一列的日期时间和更新新列DoCmd.RunSQL“更新表名” “设置[开始_ = DATEVALUE(开始日期)” – Slubee