datafield是二进制字段,其它字段操作和普通方法一样就可以了。Private Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vSaveAs As String, ByVal vFileExpendName As String) As String
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
    On Error GoTo ErrHandleDatabaseToFile
        
    fnum = FreeFile
    Open (DatabaseToFile) For Binary As fnum
    bytesleft = DataField.ActualSize
    
    lSumSize = CLng(bytesleft / 8192)
    
    Do While bytesleft
        bytes = bytesleft
        If bytes > 8192 Then bytes = 8192
        tmp = DataField.GetChunk(bytes)
        Put #fnum, , tmp
        bytesleft = bytesleft - bytes
        lNowSize = lNowSize + 1
    Loop
    Close #fnum
    Exit Function
ErrHandleDatabaseToFile:
    DatabaseToFile = ""
    Err.Clear
End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
    On Error GoTo ErrHandleFileToDatabase
    
    fnum = FreeFile
    Open vFileName For Binary As fnum
    bytesleft = LOF(fnum)
    lSumSize = CLng(bytesleft / 8192)
    Do While bytesleft
        bytes = bytesleft
        If bytes > 8192 Then bytes = 8192
        ReDim tmp(1 To bytes) As Byte
        Get #fnum, , tmp
        vDataField.AppendChunk tmp
        bytesleft = bytesleft - bytes
        lNowSize = lNowSize + 1
        DoEvents
    Loop
    
    Close #fnum
    
    Exit Function
ErrHandleFileToDatabase:
    Err.Clear
End Function