这是一个查询在d:\jpg下某个时间段内图片文件的代码,窗体上使用了两个DTPicker控件来选择时间段,为什么在运行时没有反应,神啦!救救我吧!
Private Sub Command1_Click()
    Dim oFSO As Object
    Dim oFolder As Object
    Dim oFile   As Object
   
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists("d:\jpg") Then
        Set oFolder = oFSO.GetFolder("d:\jpg")
        With oFolder
            For Each oFile In .Files
                If oFile.DateLastModified > CDate(DTPicker1.Value) And oFile.DateLastModified < CDate(DTPicker2.Value) Then
                   List1.AddItem oFile.Name
                End If
            Next
           
        End With
        Set oFolder = Nothing
        Set oFile = Nothing
    Else
        MsgBox "目录不存在!", vbInformation, "Error"
    End If
    Set oFSO = Nothing
End Sub

解决方案 »

  1.   

    代码没有问题跟踪检查 oFile.DateLastModified和DTPicker1.Value的值
      

  2.   

    另外,CDate(DTPicker1.Value)中的CDate多余,DTPicker1.Value就是日期型。
      

  3.   

    这样就行了Option ExplicitPrivate Sub Command1_Click()
        Dim oFSO As Object
        Dim oFolder As Object
        Dim oFile   As Object
       
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        If oFSO.FolderExists("d:\jpg") Then
            Set oFolder = oFSO.GetFolder("d:\jpg")
            With oFolder
                For Each oFile In .Files
                    If Format(oFile.DateLastModified, "yyyy-mm-dd") >= CDate(DTPicker1.Value) And Format(oFile.DateLastModified, "yyyy-mm-dd") <= CDate(DTPicker2.Value) Then
                       List1.AddItem oFile.Name
                    End If
                Next
               
            End With
            Set oFolder = Nothing
            Set oFile = Nothing
        Else
            MsgBox "目录不存在!", vbInformation, "Error"
        End If
        Set oFSO = Nothing
    End Sub
      

  4.   

    1.在修改日期上加 format 
    2.比较时要用 <=  >=因为oFile.DateLastModified返回的是带日期和时间的