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内容'为了清晰,直接将变量名命名为中文,你自己修改吧
给你个从数据库读取的方法吧 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
无论从题库里取题目,还是向题库里存题目,都是用的二进制,
Adodb.Stream对象声明2个,一个取(或存)题目,一个取(或存)答案
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内容'为了清晰,直接将变量名命名为中文,你自己修改吧
同时谢cuizm,您的代码我还需学习,不知我能否学会。
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
再次感谢cuizm!因时间关系,我先尝试了asftrhgjhkjlkttttttt提供的方法(他的代码与我原有代码接近),明天再来学习您的方法。
哈哈,终于可以开心的结贴了!