哈哈,一举两得!1.把文件内容写到数据库中 
Const BLOCKSIZE As Long = 4096 
Sub FileToColumn(Col As ADODB.Field, DiskFile As String) 
'从一个临时文件中获取数据,并把它保存到数据库中 
'col为一个ADO字段,DiskFile为一个文件名,它可以为一个远程文件。 
Dim strData() As Byte '声明一个动态数组 
Dim NumBlocks As Long '读写块数 
Dim FileLength As Long '文件长度 
Dim LeftOver As Long '剩余字节数 
Dim SourceFile As Long ‘文件句柄  
Dim i As Long  
SourceFile = FreeFile '获得剩余的文件句柄号 
Open DiskFile For Binary Access Read As SourceFile '以二进制读方式打开源文件。 
FileLength = LOF(SourceFile) '获得文件长度  
If FileLength = 0 Then  
Close SourceFile '关闭文件  
Peedy.Speak DiskFile & " Empty or Not Found." ‘调用Msagent控件,提示信息 
Else 
NumBlocks = FileLength \ BLOCKSIZE ‘获得块数 
LeftOver = FileLength Mod BLOCKSIZE ‘最后一块的字节数 
Col.AppendChunk Null ‘追加空值,清除已有数据  
ReDim strData(BLOCKSIZE) ‘从文件中读取内容并写到文件中。  
For i = 1 To NumBlocks 
Get SourceFile, , strData 
Col.AppendChunk strData 
Next I  
ReDim strData(LeftOver) 
Get SourceFile, , strData 
Col.AppendChunk strData 
Close SourceFile 
End If 
End Sub 2.从数据库中把文件内容读出来,并写到一个文件中。 Private Sub ColumnToFile(Col As ADODB.Field, DiskFile As String, rsset As Recordset) 
'从数据库获得数据并把它们写到硬盘上的一个临时文件中。 
'快的大小以4096为单位 Dim NumBlocks As Long '注释见上文 
Dim LeftOver As Long ' 
Dim strData() As Byte Dim DestFileNum As Long 
Dim i As Long 
Dim ColSize As Long '确保你存取的不是一个空记录集 
If Not rsset.EOF And Not rsset.BOF Then 
ColSize = Col.ActualSize 
'获得列的实际大小 
'如果文件长度为零,将删除文件内容 
If Len(Dir$(DiskFile)) > 0 Then 
Kill DiskFile 
End If 
DestFileNum = FreeFile 
Open DiskFile For Binary As DestFileNum 
NumBlocks = ColSize \ BLOCKSIZE 
LeftOver = ColSize Mod BLOCKSIZE 
'把数据写到文件中 
For i = 1 To NumBlocks 
ReDim strData(BLOCKSIZE) 
strData = Col.GetChunk(BLOCKSIZE) 
Put DestFileNum, , strData 
Next i ReDim strData(LeftOver) 
strData = Col.GetChunk(LeftOver) 
Put DestFileNum, , strData 
Close DestFileNum 
End If 
End Sub