Private Sub SaveToDB(ByRef Fld As ADODB.Field, DiskFile As String)
Dim byteData() 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
    MsgBox DiskFile & "无内容或不存在!"
Else
    NumBlocks = FileLength \ BLOCKSIZE                  '得到数据块的个数
    LeftOver = FileLength Mod BLOCKSIZE                 '得到剩余字节数
    Fld.Value = Null
    ReDim byteData(BLOCKSIZE)                           '重新定义数据块的大小
    '(就是这个循环)
    For i = 1 To NumBlocks
        Get SourceFile, , byteData()                        '读到内存块中
        Fld.AppendChunk byteData()                          '写入FLD
        Close SourceFile                                    '关闭源文件
    Next
End If
End Sub
为什么循环到第二次就错了,麻烦了~
(报错误的文件名或号码)

解决方案 »

  1.   

    For i = 1 To NumBlocks
            Get SourceFile, , byteData()                        '读到内存块中
            Fld.AppendChunk byteData()                          '写入FLD
            Close SourceFile                                    '关闭源文件
        Next
    你的Close SourceFile怎么写到循环里面了,到第二个循环文件已经关闭了,当然会出错。
      

  2.   

    9494
    将Close SourceFile 放到循环外即可