ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8021|回复: 14

[已解决] Image图片控件存取access数据库图片问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-12-3 15:56 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
各位老师,小的做一个档案录入的窗件,但是没有接触过图片控件,麻烦各位帮我看下文件功能如何实现。谢谢各位了

求助.zip

40.88 KB, 下载次数: 47

TA的精华主题

TA的得分主题

发表于 2013-12-3 17:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
再插入一个按钮导入相片:
  1. Dim strFile

  2. Private Sub CommandButton3_Click() '打开相片
  3.     strFile = Application.GetOpenFilename(FileFilter:="图像文件(*.jpg), *.jpg")
  4.     If strFile = False Then Exit Sub
  5.     Image1.Picture = LoadPicture(strFile)
  6.     Image1.PictureSizeMode = 1
  7. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-3 17:41 | 显示全部楼层
  1. Private Sub CommandButton1_Click() '保存相片
  2. '引用Microsoft ActiveX Data Objects 2.x Library
  3.     If strFile = False Or TextBox1.Text = "" Then Exit Sub
  4.     Dim cnn As New ADODB.Connection
  5.     Dim rs As New ADODB.Recordset
  6.     Dim srm As New ADODB.Stream
  7.     On Error GoTo ErrMsg
  8.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\档案.mdb"
  9.     srm.Mode = adModeReadWrite
  10.     srm.Type = adTypeBinary
  11.     srm.Open
  12.     srm.LoadFromFile strFile
  13.     SQL = "select * from 档案 where 编号='" & TextBox1.Text & "'"
  14.     rs.Open SQL, cnn, adOpenDynamic, adLockOptimistic
  15.     If rs.RecordCount = 0 Then rs.AddNew Else rs.Fields("编号").Value = TextBox1.Text
  16.     rs.Fields("相片").Value = srm.Read()
  17.     rs.Update
  18.     MsgBox "相片已存入数据库", vbInformation
  19.     Set rs = Nothing
  20.     rs.Close
  21.     Set srm = Nothing
  22.     Set cnn = Nothing
  23.     cnn.Close
  24.     Exit Sub
  25. ErrMsg:
  26.     MsgBox Err.Description, , "错误报告"
  27. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-3 20:42 | 显示全部楼层

  1. Private Sub CommandButton2_Click() '查询相片
  2. '引用Microsoft ActiveX Data Objects 2.x Library
  3.     If TextBox1.Text = "" Then Exit Sub
  4.     Dim cnn As New ADODB.Connection
  5.     Dim rs As New ADODB.Recordset
  6. '    On Error GoTo ErrMsg
  7.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\档案.mdb"
  8.     Set srm = New ADODB.Stream
  9.     srm.Mode = adModeReadWrite
  10.     srm.Type = adTypeBinary
  11.     srm.Open
  12.     SQL = "select * from 档案 where 编号='" & TextBox1.Text & "'"
  13.     rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
  14.     If rs.RecordCount Then
  15.         srm.Write (rs.Fields("相片").Value)
  16.         srm.SaveToFile ThisWorkbook.Path & "" & "1.jpg", adSaveCreateOverWrite
  17.         Image2.Picture = LoadPicture(ThisWorkbook.Path & "" & "1.jpg")
  18.         Image2.PictureSizeMode = 1
  19.     End If
  20.     rs.Close
  21.     Set rs = Nothing
  22.     Set srm = Nothing
  23.     cnn.Close
  24.     Set cnn = Nothing
  25.     Exit Sub
  26. ErrMsg:
  27.     MsgBox Err.Description, , "错误报告"
  28. End Sub

  29. Private Sub UserForm_Terminate() '退出窗体时删除临时图片
  30.     On Error Resume Next
  31.     Kill ThisWorkbook.Path & "\1.jpg"
  32. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-3 20:43 | 显示全部楼层
本帖最后由 zhaogang1960 于 2013-12-4 12:36 编辑

请看附件
新建文件夹.rar (52.39 KB, 下载次数: 279)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-4 11:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢版主!还给了一个实例!我看了附件,不知道为什么,保存图片时总是提示错误信息,不清楚为什么,还有,如果查询相片时能否先清除之前查询到的图片,谢谢了(错误报告:bof 或eof 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录)

TA的精华主题

TA的得分主题

发表于 2013-12-4 11:32 | 显示全部楼层
24555 发表于 2013-12-4 11:03
谢谢版主!还给了一个实例!我看了附件,不知道为什么,保存图片时总是提示错误信息,不清楚为什么,还有, ...

按照下图引用Microsoft ActiveX Data Objects 2.x Library 捕获.JPG

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-4 12:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
查看了引用,是引用的了,我看了一下,如果编号在数据库是存在记录的,就可以存入相片(即修改了原有编号的相片),可能是我的表述有问题,我是想增加数据,即加入新的编号、相片,应该怎么改

TA的精华主题

TA的得分主题

发表于 2013-12-4 12:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
24555 发表于 2013-12-4 12:03
查看了引用,是引用的了,我看了一下,如果编号在数据库是存在记录的,就可以存入相片(即修改了原有编号的 ...

是有点问题,修改如下:
  1. Private Sub CommandButton1_Click() '保存相片
  2. '引用Microsoft ActiveX Data Objects 2.x Library
  3.     If strFile = False Or TextBox1.Text = "" Then Exit Sub
  4.     Dim cnn As New ADODB.Connection
  5.     Dim rs As New ADODB.Recordset
  6.     Dim srm As New ADODB.Stream
  7.     On Error GoTo ErrMsg
  8.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\档案.mdb"
  9.     srm.Mode = adModeReadWrite
  10.     srm.Type = adTypeBinary
  11.     srm.Open
  12.     srm.LoadFromFile strFile
  13.     SQL = "select * from 档案 where 编号='" & TextBox1.Text & "'"
  14.     rs.Open SQL, cnn, adOpenDynamic, adLockOptimistic
  15.     If rs.RecordCount <= 0 Then
  16.         rs.AddNew
  17.         rs.Fields("编号").Value = TextBox1.Text
  18.     End If
  19.     rs.Fields("相片").Value = srm.Read()
  20.     rs.Update
  21.     MsgBox "相片已存入数据库", vbInformation
  22.     rs.Close
  23.     Set rs = Nothing
  24.     Set srm = Nothing
  25.     cnn.Close
  26.     Set cnn = Nothing
  27.     Exit Sub
  28. ErrMsg:
  29.     MsgBox Err.Description, , "错误报告"
  30. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-4 12:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请测试附件
新建文件夹.rar (52.39 KB, 下载次数: 448)

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-16 12:20 , Processed in 0.038711 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表