2016-02-23 130 views
0

我正在使用一些excel文件。这个想法是只采取那些已被修改。但在这里我遇到了问题。当我执行所有程序包时,Excel连接器正在用系统小时修改“修改日期”。这些文件没有“只读”属性,我无法做任何事情,因为我只是从特定文件夹读取文件。Excel连接器修改文件的“修改日期”属性 - SSIS

面对这个问题最好的办法是什么?

+0

您可以打开为只读本工作簿:'Workbooks.Open名:= file_name,只读:= TRUE; –

+0

嗨Elbert.Could请你解释多一点?或者你可以参考任何一个例子的链接。谢谢 – d2907

+0

那么,我只是谈论VBA,不考虑SSIS,现在我不确定自己是否正确......但是,从EXCEL中的VBA开始,您可以以只读方式打开工作簿,只需使用该行代码,其中'file_name'是您想要以只读方式打开的文件的名称。 [Workbooks.Open](https://msdn.microsoft.com/en-us/library/office/ff194819.aspx),在这里你可以找到一些帮助。 –

回答

0

通过这种方式,您可以在不打开它的情况下阅读文件的修改日期,全部来自excel。

Sub test() 
    Dim FD As FileDialog 
    Dim i 

    Set FD = Application.FileDialog(msoFileDialogFilePicker) 

    With FD 
     If .Show = -1 Then 
      For Each i In .SelectedItems 
       MsgBox FileLastModified(i) 
      Next i 
     End If 
    End With 
End Sub 

Function FileLastModified(ByVal strFullFileName As String) 
    Dim fs As Object 
    Dim f As Object 
    Dim s As String 

    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set f = fs.GetFile(strFullFileName) 

    s = UCase(strFullFileName) & vbCrLf 
    s = s & "Last Modified: " & f.DateLastModified 
    FileLastModified = s 

    Set fs = Nothing: Set f = Nothing 
End Function 
+0

嗨Elbert。通过阅读文件的“修改日期”我没有问题。这里的问题是,当我执行包时,Excel连接器会修改该值。这就是我需要停止发生的事情。因为我会一直在读错误的日期。 – d2907