vba 列表框 滚动条:vb编程问题,请教大侠,我用adodc控件连数据库里面的图片,如何保存

来源:百度文库 编辑:高校问答 时间:2024/04/28 17:14:33
我用data连接access数据库里面的图片就可以保存
但是当我用adodc连接access数据库里面的图片就保存不了了,有什么方法可以保存?

我只选adodc了! 不用data

答得好加30分
比如我的access数据库里面有个表1 表1里面有n个字段 其中有个 字段X 的数据类型为:OLE 对象

我希望用vb实现:打开硬盘某文件存入到这字段x里面

给你个ADO对象操作的例子,你仿照着做就是了:

'使用ADODB.Stream来保存/读取文件到数据库
'引用Microsoft ActiveX Data Objects 2.5 Library及以上版本

'保存文件到数据库中
Sub SaveFile()
Dim Stm As New ADODB.Stream
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCnn As String

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & _
App.Path & "\DB1.mdb"
Cnn.Open strCnn

'读取文件到内存(二进制模式)
With Stm
.Type = adTypeBinary
.Open
.LoadFromFile App.Path + "\Image1.bmp"
End With

With rs
.Open "SELECT * FROM TABLE1", Cnn, 1, 3
.AddNew
.Fields("IMAGE") = Stm.Read
.Update
End With

rs.Close
Stm.Close
Set rs = Nothing
Set Cnn = Nothing
Set Stm = Nothing
End Sub

Sub ReadFile()
Dim Stm As New ADODB.Stream
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCnn As String

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & _
App.Path & "\DB1.mdb"
Cnn.Open strCnn
rs.Open "SELECT IMAGE FROM TABLE1 WHERE ID = 18", Cnn, adOpenKeyset, adLockReadOnly

'保存到文件
With Stm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write rs("IMAGE")
.SaveToFile App.Path + "\Image2.bmp"
End With

'显示图片
Picture1.Picture = LoadPicture(App.Path + "\Image2.bmp")

rs.Close
Stm.Close
Set rs = Nothing
Set Cnn = Nothing
Set Stm = Nothing
End Sub