我已经将一篇带表格、图像的word文档用程序写入了数据库中的OLE字段中,也可以把它读出来并存放在一个临时文件中,然后想把临时文件的内容用OLE对象来显示,用下面的函数时提示“文件加载错误”,不知哪里出错:
'---- 下 面 的 函 数 将OLE 字 段 中 的 内 容 写 到 临 时 文 件 中。
Function FieldToFileStream(iFileNumber As Integer, fdObject As Field) As Integer
Dim sChunkHolder As String
Dim lChunkCount As Long
Dim lChunkRemainder As Long
Dim i As Long
lChunkCount = fdObject.FieldSize() \ CHUNK_SIZE '获得文件的块数
lChunkRemainder = fdObject.FieldSize() Mod CHUNK_SIZE '整块后余下的数据
For i = 0 To lChunkCount - 1
  sChunkHolder = fdObject.GetChunk(i * CHUNK_SIZE, CHUNK_SIZE) '取一块
  Put iFileNumber, , sChunkHolder '将块写入临时文件
Next
If lChunkRemainder > 0 Then
  sChunkHolder = fdObject.GetChunk(lChunkCount * CHUNK_SIZE, lChunkRemainder) '取余下的数据
  Put iFileNumber, , sChunkHolder '将其写入临时文件
End If
FieldToFileStream = 0 '返回
End Function'---- 下 面 的 函 数 将OLE 数 据 库 字 段 的 内 容 取 出 并 插 入OLE2 控 件 中。
Function FieldToOLE(oleObject As Control, fdObject As Field)
Dim eError As Integer
Dim iFileNumber As Integer
Dim aa As String
iFileNumber = FreeFile '获取文件号
Open App.Path & "\OLE.TMP" For Binary As iFileNumber '创建临时文件
eError = FieldToFileStream(iFileNumber, fdObject) '将字段的内容写到临时文件中
Seek iFileNumber, 1  '到 object的起始位置
oleObject.ReadFromFile iFileNumber
oleObject.FileNumber = iFileNumber 'OLE控件指向临时文件
oleObject.Action = OLE_LOAD_FROM_FILE '从文件中取出 OLE object ***出错的是这条语句***
Close iFileNumber '关闭临时文件
Kill App.Path & "\OLE.TMP" '删除临时文件
FieldToOLE = 0 '返回
End Function

解决方案 »

  1.   

    上面,常量OLE_LOAD_FROM_FILE=12已定义,并且
    'oleObject.ReadFromFile iFileNumber
    oleObject.FileNumber = iFileNumber 'OLE控件指向临时文件
    oleObject.Action = OLE_LOAD_FROM_FILE '从文件中取出 OLE object ***出错的是这条语句***
    上面这三条语句实际是两种方法,都不行!
    应该去掉其中的某一种方法的,呵呵。
      

  2.   

    不是吧,系统会自动指定FileNumber的值为1啊
      

  3.   

    不会吧!!!
    将OLE数据字段中的内容读出并显示在OLE对象中 就这麽麻烦!!!
     哪位 大虾 有更好的方法呢??让小弟 也开开眼界呀!!!
      

  4.   

    将OLE数据字段中的内容读出并显示在OLE对象中 就这麽麻烦吗???有更好的吗?