2010-07-28 2 views
0

PDF 및 XLS 개체를 가져 와서 이진 파일로 변환해야합니다. 다음 코드는 "fd.SelectedItems (1)"이 개체 자체가 아닌 개체의 경로이기 때문에 분명히 작동하지 않습니다.들어오는 개체를 Access 2007 VBA에서 이진으로 변환하려면 어떻게합니까?

개체로 "fileToUpload"가 희미 해지면 "런타임 '91'Object variable 또는 With 블록 변수가 설정되지 않았습니다."라는 메시지가 나타납니다.

특히 "fileToUpload"가 희미하지 않으면 아래 마지막 줄에 "424 'Object Required"런타임이 표시됩니다.

누구나 마법의 단어를 아나요?

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'Object required"입니다. strFileToUpload는 경로이며 PDF 객체 자체가 strFileToUpload가 필요하다고 생각합니다. 내가 어떻게 그걸 얻을 수 있는지 아는가? – jrc

+0

글쎄, System.IO.File.ReadAllBytes가 무엇인지 모르겠다. 그래서 당신은 ReadAllBytes가 데이터 구조에 기대하는 바를 알아야 할 것이다. 제 생각에는 파일 시스템 객체 코드가 여기에 섞여 있고 FSO의 파일 객체가 필요할 수도 있습니다. 그러나 나는 단지 거기에서 추측하고있다. –

관련 문제