在access库中建一个ole对象类型的字段,程序中有一个ole控件,在ole控件中嵌入一个新的word文档,我通过TMP文件将ole控件中的word文档存入库中字段,反过来怎样将库中该字段显示在ole控件中?
谢谢

解决方案 »

  1.   

    用二进制存储到字段,然后读出
    Public Function LoadFile(ByVal col As ADODB.Field, ByVal FileName As String) As Boolean '获得binary数据
        On Error GoTo myerr:
         Dim arrBytes() As Byte
         Dim FreeFileNumber As Integer
         lngsize = col.ActualSize
         arrBytes = col.GetChunk(lngsize)
         FreeFileNumber = FreeFile
         Open FileName For Binary Access Write As #FreeFileNumber
         Put #FreeFileNumber, , arrBytes
         Close #FreeFileNumber
         LoadFile = True
    myerr:
         If Err.number <> 0 Then
         LoadFile = False
         Err.Clear
         End If
    End Function
    Public Function UpLoadFile(ByVal FileName, ByVal col As ADODB.Field) As Boolean '上传文件数据到数据库字段
         On Error GoTo myerr:
         Dim arrBytes() As Byte
         Dim FreeFileNumber As Integer
         FreeFileNumber = FreeFile
         Open FileName For Binary As #FreeFileNumber
         n = LOF(FreeFileNumber)
         ReDim arrBytes(1 To n) As Byte
         Get #FreeFileNumber, , arrBytes
         Close #FreeFileNumber
         col.AppendChunk (arrBytes)
         UpLoadFile = True
    myerr:
         If Err.number <> 0 Then
         UpLoadFile = False
         Err.Clear
         End If
    End Function
      

  2.   

    Public Function LoadFile(ByVal col As ADODB.Field, ByVal FileName As String) As Boolean '获得binary数据
        On Error GoTo myerr:
         Dim arrBytes() As Byte
         Dim FreeFileNumber As Integer
         lngsize = col.ActualSize
         arrBytes = col.GetChunk(lngsize)
         FreeFileNumber = FreeFile
         Open FileName For Binary Access Write As #FreeFileNumber
         Put #FreeFileNumber, , arrBytes
         Close #FreeFileNumber
         LoadFile = True
    myerr:
         If Err.number <> 0 Then
         LoadFile = False
         Err.Clear
         End If
    End Function楼上的大虾的这段程序应该只是把数据库字段读到了文件中,那么怎么再进一步显示到OLE中呢?各位邦忙,谢谢