如何在Access 2007 VBA中将传入对象转换为二进制?

时间:2010-07-28 17:13:11

标签: binary ms-access-2007

我需要导入PDF和​​XLS对象并将它们转换为二进制文件。以下代码不起作用,显然是因为“fd.SelectedItems(1)”是对象的路径而不是对象本身。

如果我将“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) 

1 个答案:

答案 0 :(得分: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)