2010-07-28 26 views
0

我需要導入PDF和​​XLS對象並將它們轉換爲二進制。下面的代碼不起作用,顯然是因爲「fd.SelectedItems(1)」是對象的路徑而不是對象本身。如何在Access 2007 VBA中將傳入對象轉換爲二進制文件?

如果我把「fileToUpload」作爲一個對象調暗,我會得到一個「運行時間」91'對象變量或者塊變量未設置「。

如果我沒有特別昏暗「fileToUpload」,當我到達最後一行時,我得到「運行時間」424'所需的對象「。

任何人都知道魔法字嗎?

Dim fd As FileDialog 
    Dim ImageToBytes() As Byte 
    Dim ImageCode As String 

    FilePickerControl = False 
    Set fd = Application.FileDialog(msoFileDialogFilePicker) 
    fd.AllowMultiSelect = False 
    If fd.Show = -1 Then 
    FileToUpload = fd.SelectedItems(1) 
    End If 

    ImageToBytes = System.IO.File.ReadAllBytes(FileToUpload) 

回答

0

FileToUpload應該是什麼?如果你把它作爲一個對象變暗,你需要設置它,即SET FileToUpload = fd.SelectedItems(1),但我不認爲這必然是正確的事情,就我所知,fd.SelectedItems(1 )將返回一個具有文件名/路徑的字符串值,而不是實際的文件對象。在我看來,它應該是一個字符串。

也許這將工作:

Dim fd As FileDialog 
    Dim strFileToUpload As String 
    Dim ImageToBytes() As Byte 
    Dim ImageCode As String 

    FilePickerControl = False 
    Set fd = Application.FileDialog(msoFileDialogFilePicker) 
    fd.AllowMultiSelect = False 
    If fd.Show = -1 Then 
    strFileToUpload = fd.SelectedItems(1) 
    End If 

    ImageToBytes = System.IO.File.ReadAllBytes(strFileToUpload) 
+0

大衛,爲響應千恩萬謝。當我到達最後一行時,我得到了「運行時間」424'所需對象'。 strFileToUpload是路徑,我想我需要strFileToUpload是PDF對象本身。任何想法我怎麼能得到那個? – jrc 2010-07-29 13:46:07

+0

嗯,我不知道System.IO.File.ReadAllBytes是什麼,所以你必須看看ReadAllBytes的數據結構。我的懷疑是你在這裏混入了文件系統對象代碼,你可能需要FSO的文件對象。但我只是在那裏猜測。 – 2010-07-30 18:01:56

相關問題