2016-02-23 176 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