如何用VB将word文档已二进制的形式存Access数据库里

jluwood 2004-05-06 08:32:59
1.如何用VB将word文档已二进制的形式存Access数据库里
2.如何读出来并帖回word
...全文
198 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jluwood 2004-05-06
  • 打赏
  • 举报
回复
大哥发我信箱里吧 jlulishichao@yahoo.com.cn
我这有时候接不到 内网
jluwood 2004-05-06
  • 打赏
  • 举报
回复
789193
qiaobushi@ 2004-05-06
  • 打赏
  • 举报
回复
jluwood(风云十二少) 给我你的QQ 我把源文件发给你!!!
qiaobushi@ 2004-05-06
  • 打赏
  • 举报
回复
online(龙卷风V2.0--再战江湖) 的程序我测试一下行.


'保存文件到数据库中
Sub s_SaveFile()
..........
...........
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "表", iConc, adOpenKeyset, adLockOptimistic '此处错了应改为 iConcStr

.Open "表", iConcStr, adOpenKeyset, adLockOptimistic '正确的

...........
..........
end sub
jluwood 2004-05-06
  • 打赏
  • 举报
回复
可提示错误呀 没写进去
yjplus 2004-05-06
  • 打赏
  • 举报
回复
什么叫以二进制格式存入ACCESS里?
不知道VB处理文字的UNICODE编码很麻烦吗?
不知道纯二进制和STRING之间的关系吗?
没有见过ACCESS中的数据类型的定义吗?
你可以把法直接说出来,不用搞得这么夸张吧?

online 2004-05-06
  • 打赏
  • 举报
回复
我是想把aaa.doc里的东西用2进制存在bbb.mdb的第2个字段里
你不是已经写了吗??
With iRe
.Open "kaoshi", iConc, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("content") = iStm.Read
.Update
End With
jluwood 2004-05-06
  • 打赏
  • 举报
回复
online(龙卷风V2.0--再战江湖) 哥哥
'*************************************************************************
'**
'** 使用 ADODB.Stream 保存/读取文件到数据库
'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
'**
'** ----- 数据库连接字符串模板 ---------------------------------------
'** ACCESS数据库
'** iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
'** ";Data Source=数据库名"
'**
'** SQL数据库
'** iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
'** "User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名"
'**
'*************************************************************************
'
'保存文件到数据库中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcStr As String

'数据库连接字符串
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=c:\bbb.mdb"

'读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile "c:\aaa.doc"
End With

'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "kaoshi", iConc, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("content") = iStm.Read
.Update
End With

'完成后关闭对象
iRe.Close
iStm.Close
End Sub

'从数据库中读取数据,保存成文件
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConc As String

'数据库连接字符串
iConc = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=\\xz\c$\Inetpub\zj\zj\zj.mdb"

'打开表
Set iRe = New ADODB.Recordset
iRe.Open "tb_img", iConc, adOpenKeyset, adLockReadOnly
iRe.Filter = "id=64"

'保存到文件
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe("img")
.SaveToFile "c:\test.doc"
End With

'关闭对象
iRe.Close
iStm.Close
End Sub

Private Sub Command1_Click()
Call s_SaveFile
End Sub
这样后 一点command1 提示“运行时错误‘3001’参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突”
我编译通过了
我是想把aaa.doc里的东西用2进制存在bbb.mdb的第2个字段里
bbb.mdb格式如下
ID content
自动编号 aaa.doc的内容
online 2004-05-06
  • 打赏
  • 举报
回复
如果是access2000,使用Provider=Microsoft.Jet.OLEDB.4.0;
如果是access97,使用Provider=Microsoft.Jet.OLEDB.3.51;
jluwood 2004-05-06
  • 打赏
  • 举报
回复
Unrecognized database format "....\XX.mdb"
对数据库的格式有什么要求么?
还有怎么对存入哪个字段控制
对不起 我是刚学的
麻烦您说清楚点
jluwood 2004-05-06
  • 打赏
  • 举报
回复
To easydone(利钢护城) 哥哥
实时错误 -2147467259(80004005)
jluwood 2004-05-06
  • 打赏
  • 举报
回复
测试ing...
online 2004-05-06
  • 打赏
  • 举报
回复
*************************************************************************
'**
'** 使用 ADODB.Stream 保存/读取文件到数据库
'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
'**
'** ----- 数据库连接字符串模板 ---------------------------------------
'** ACCESS数据库
'** iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
'** ";Data Source=数据库名"
'**
'** SQL数据库
'** iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
'** "User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名"
'**
'*************************************************************************
'
'保存文件到数据库中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcStr As String

'数据库连接字符串
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=F:\My Documents\客户资料1.mdb"

'读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile "c:\test.doc"
End With

'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "表", iConc, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("保存文件内容的字段") = iStm.Read
.Update
End With

'完成后关闭对象
iRe.Close
iStm.Close
End Sub

'从数据库中读取数据,保存成文件
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConc As String

'数据库连接字符串
iConc = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
";Data Source=\\xz\c$\Inetpub\zj\zj\zj.mdb"

'打开表
Set iRe = New ADODB.Recordset
iRe.Open "tb_img", iConc, adOpenKeyset, adLockReadOnly
iRe.Filter = "id=64"

'保存到文件
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe("img")
.SaveToFile "c:\test.doc"
End With

'关闭对象
iRe.Close
iStm.Close
End Sub

easydone 2004-05-06
  • 打赏
  • 举报
回复
'一段精简的读写"大字段"的代码,使用 ADODB.Stream
'Objects: Form1
'引用 Microsoft ActiveX Data Objects 2.5 Libary
'或 Microsoft ActiveX Data Objects 2.6 Libary
Dim TempFileName As String
TempFileName = App.Path & "\TempFile.doc"
Dim adoConnection As New ADODB.Connection
Dim adoRecordset As New ADODB.Recordset
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\mmxdb97.mdb"
adoRecordset.Open "SELECT * FROM bmp", adoConnection, adOpenKeyset, adLockOptimistic ', adCmdTable
Debug.Print adoRecordset.Fields(1).Type '大字段
adoRecordset.AddNew
Dim adoStream As New ADODB.Stream
adoStream.Type = adTypeBinary
adoStream.Open
adoStream.LoadFromFile CommonDialog1.FileName
'将二进制文件写入大字段:
adoRecordset.Fields.Item(1).AppendChunk adoStream.Read

'================================
'从大字段读取二进制数据:
adoStream.Write adoRecordset.Fields.Item(1).GetChunk(adoRecordset.Fields.Item(1).ActualSize)
adoStream.SaveToFile TempFileName, IIf(Len(Trim(Dir(TempFileName, vbNormal + vbHidden))) > 0, adSaveCreateOverWrite, adSaveCreateNotExist)

ShellExcute(...TempFileName...)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧