本帖最后由 xueban69 于 2009-11-11 16:42:43 编辑

解决方案 »

  1.   

    我也碰到这个问题,将一个Word(或图片)文件装入对象Adodb.Stream后,另一个Word(或图片)怎么装入呢?
      

  2.   

    不太明白lz的意思,如题库是sql server,还是access?
    无论从题库里取题目,还是向题库里存题目,都是用的二进制,
    Adodb.Stream对象声明2个,一个取(或存)题目,一个取(或存)答案
      

  3.   

    Dim rsWd As New ADODB.Recordset
    Dim lb_Word题目()  As Byte
    Dim lb_Word内容()  As Byte'读取word文件内容
    Open "word文件名" For Binary Access Read As #1
    lb_Word题目 = InputB(LOF(1), #1)
    Close #1Open "word文件名" For Binary Access Read As #1
    lb_Word内容 = InputB(LOF(1), #1)
    Close #1rsWd.AddNew
    '设置其他字段值
    rsWd.Fields("题目").AppendChunk lb_Word题目
    rsWd.Fields("内容").AppendChunk lb_Word内容
    rsWd.Update'清除动态数组内容
    Erase lb_Word题目
    Erase lb_Word内容'为了清晰,直接将变量名命名为中文,你自己修改吧
      

  4.   

    回复5楼:数据库是access。请问Adodb.Stream对象同时声明2个,我也这样想过,但不知怎么声明,您试过吗?能告诉我这部分代码吗?
    同时谢cuizm,您的代码我还需学习,不知我能否学会。
      

  5.   

    给你个从数据库读取的方法吧
    Public Function ReadObj(mes_id As String) As Boolean
        Dim rs As New ADODB.Recordset
        Dim sql As String
        Dim stm1 As New ADODB.Stream
        Dim stm2 As New ADODB.Stream
        sql = "select 题目,答案 from 表 where mes_id='" & mes_id & "'"
        rs.Open sql, cn, adOpenKeyset, adLockOptimistic
        stm1.Type = adTypeBinary
        stm1.Open
        If Not IsNull(rs.Fields("题目")) Then
            stm1.Write rs!题目
            stm1.SaveToFile App.Path & "\题目.doc", adSaveCreateOverWrite
        End If
        
        stm2.Type = adTypeBinary
        stm2.Open
        If Not IsNull(rs.Fields("答案")) Then
            stm2.Write rs!答案
            stm2.SaveToFile App.Path & "\答案.doc", adSaveCreateOverWrite
        End If
        rs.Close
        stm1.Close
        stm2.Close
    End Function
      

  6.   

    非常感谢asftrhgjhkjlkttttttt,受您提供代码的启发,我的问题已成功解决!
    再次感谢cuizm!因时间关系,我先尝试了asftrhgjhkjlkttttttt提供的方法(他的代码与我原有代码接近),明天再来学习您的方法。
    哈哈,终于可以开心的结贴了!