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

Binary 如何在Access 2007 VBA中将传入对象转换为二进制?,binary,ms-access-2007,Binary,Ms Access 2007,我需要导入PDF和XLS对象并将它们转换为二进制文件。下面的代码不起作用,显然是因为fd.SelectedItems1是对象的路径,而不是对象本身 如果将fileToUpload设置为对象,则会得到一个运行时“91”对象变量或未设置块变量 如果我没有特别调暗fileToUpload,当我到达下面的最后一行时,我会得到所需的运行时“424”对象 有人知道这些神奇的词语吗 Dim fd As FileDialog Dim ImageToBytes() As Byte Dim ImageC

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

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

FileToUpload应该是什么?如果将其暗显为对象,则需要对其进行设置,即将FileToUpload=fd.SelectedItems1,但我认为这不一定是正确的,据我所知,fd.SelectedItems1将返回一个具有文件名/路径的字符串值,而不是实际的文件对象。在我看来,它应该是一根绳子

也许这会奏效:

  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) 

大卫,非常感谢你的回复。当我到达最后一行时,我得到了所需的运行时'424'对象。strFileToUpload是路径,我想我需要strFileToUpload作为PDF对象本身。我不知道System.IO.File.ReadAllBytes是什么,所以您必须了解ReadAllBytes对其数据结构的期望。我怀疑这里混合了文件系统对象代码,您可能需要来自FSO的文件对象。但我只是在猜测。