用二进制方式打开文件,全部读到一个Byte数组,赋给二进制类型的字段。

解决方案 »

  1.   

    使用appendChunk向里面写
    使用getChunk读出
      

  2.   

    Function CopyFileToField(FileName As String, fd As Field) as long 
     Dim ChunkSize As Long
     Dim FileNum As Integer
     Dim Buffer() As Byte
     Dim BytesNeeded As Long
     Dim Buffers As Long
     Dim Remainder As Long
     Dim i As Long    If Len(FileName) = 0 Then
            Exit Function
        End If
        If Dir(FileName) = "" Then
            Err.Raise vbObjectError, , "文件没找到: """ & FileName & """"
        End If
        ChunkSize = 65536
        FileNum = FreeFile
        Open FileName For Binary As #FileNum
        BytesNeeded = LOF(FileNum)
        Buffers = BytesNeeded \ ChunkSize
        Remainder = BytesNeeded Mod ChunkSize
        For i = 0 To Buffers - 1
            ReDim Buffer(ChunkSize)
            Get #FileNum, , Buffer
            fd.AppendChunk Buffer
        Next
        ReDim Buffer(Remainder)
        Get #FileNum, , Buffer
        fd.AppendChunk Buffer
        Close #FileNumEnd FunctionFunction CopyFieldToFile(fd As Field, strFileName As String) As long
     Dim FileNum As Integer
     Dim Buffer() As Byte
     Dim BytesNeeded As Long
     Dim Buffers As Long
     Dim Remainder As Long
     Dim r As Integer
     Dim i As Long
     Dim ChunkSize As Long
     ChunkSize = 65536
     BytesNeeded = fd.ActualSize
        If BytesNeeded > 0 Then
            Buffers = BytesNeeded \ ChunkSize
            Remainder = BytesNeeded Mod ChunkSize
            If Dir(strFileName) <> "" Then
                Kill strFileName
            End If
            FileNum = FreeFile
            Open strFileName For Binary As #FileNum
            For i = 0 To Buffers - 1
               ReDim Buffer(ChunkSize)
               Buffer = fd.GetChunk(ChunkSize)
               Put #FileNum, , Buffer()
            Next
            ReDim Buffer(Remainder)
            Buffer = fd.GetChunk(Remainder)
            Put #FileNum, , Buffer()
            Close #FileNum
        End If
        CopyFieldToFile = strFileName
    End Function
      

  3.   

    to sssoft(恒谦):
    恒谦兄,谢谢你的精彩回答,我还有个疑问,
    我如何在vb的窗体中显示word文档呢?
    像在窗体中显示文本一样.用ole控件吗?