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

时间:2016-02-26 15:17:51

标签: vba ms-access import access-vba

我导入了从Excel导出的txt文件,最终采用通用格式,即42408等。

将其导入Access时,我不会在导入时遇到问题。 (我将数据类型设置为Date等,它可以工作 - >没有导入错误。)

但是,当我尝试使用下面的代码多次导入时,所有内容都会导入除了"类型转换错误"

现在,我认为问题出在导入规范上。 [见图像]

是否有人知道导入规范的配置会使其有效?

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

2 个答案:

答案 0 :(得分:0)

您可以手动导入带有日期列的表作为日期,并将导入和代码保存为DoCmd.RunSavedImportExport"您的导入名称"

答案 1 :(得分:0)

如果可以避免使用字符串,请不要使用字符串。

42408只是日期值的数值。您可以轻松地将其转换为数据类型Date with CDate:

Host

要避免以后的更新和/或字段,请不要导入文件,而是链接它。然后创建一个查询链接表并执行所需的任何转换的查询。

现在使用此查询作为导入或进一步处理的来源。