首页 > 解决方案 > VBA MS ACCESS 如何打开在特定时间范围内创建的文件?

问题描述

我有多个 CSV 文件需要打开,如果可能,所有文件都导入到一个表中......标准是创建日期,即在所选日期范围之间创建的打开文件。贝娄是从其他帖子借来的测试代码并对其进行了一些调整,但遇到代码问题并且无法通过错误: 编辑:如果有更好/更快的方法来完成此任务,它将是非常感谢 下面更新的代码,没有产生错误;但是,什么都没有发生,没有创建表,没有导入文件......非常感谢您的帮助

Dim oFile
Dim FSO As Object 'FileSystemObject
Set oFile = CreateObject("Scripting.FileSystemObject")
Dim Directory As String
Dim FileName As String
Dim varCellvalue As Long

Directory = "E:\Op60\"
If Right(Directory, 1) <> "\" Then
   Directory = Directory & "\"
End If

FileName = Dir(Directory & "*.CSV")

''''''''''''''''''''''''
Dim DateEarliest As Date
Dim EarliestDate As Date

EarliestDate = txt_Start_Date
DateEarliest = CDate(EarliestDate)

Dim DateLatest As Date
Dim LatestDate As Date

LatestDate = txt_Start_Date2
DateLatest = CDate(LatestDate)

 Do While FileName <> ""
 '**-*-*-*-*-*-*-*-*
 'Debug.Print oFile.getFile(Directory & FileName).DateCreated, EarliestDate, LatestDate
 '**************
 If oFile.getFile(Directory & FileName).DateCreated >= DateEarliest And oFile.getFile(Directory & FileName).DateCreated <= DateLatest Then
    DoCmd.TransferText TransferType:=acLinkDelim, TableName:="CsvTbl", FileName:=Directory & FileName, HasFieldNames:=True
End If
 
FileName = Dir

 Loop

标签: vbams-access

解决方案


插入一行来调试您的条件:

Debug.Print oFile.getFile(Directory & FileName).DateCreated, EarliestDate, LatestDate
         
if oFile.getFile(Directory & FileName).DateCreated >= EarliestDate and oFile.getFile(Directory & FileName).DateCreated <= LatestDate
<snip>

此外,请使用正确的语法TransferText

If oFile.getFile(Directory & FileName).DateCreated >= DateEarliest And oFile.getFile(Directory & FileName).DateCreated <= DateLatest Then
    DoCmd.TransferText TransferType:=acLinkDelim, TableName:="CsvTbl", FileName:=Directory & FileName, HasFieldNames:=True
End If

推荐阅读