Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉。2022年到来了,祝大家一切安好!

今天是新年的第一天,在本期的职场应用案例分享之前,我想分享一个真实发生过的故事。(不感兴趣的同学可以直接跳到分隔线之后看案例)

前几天有个我印象中很努力向上的老学员跟我说:“陈老师,我觉得努力没用。”我问他为什么有这样的想法,他反问我:“你努力了,口袋里有想要的东西吗?”

这个问题要较真回复,需要从多个维度去阐述,比如努力的方向和目标、努力的方法和策略、成功的定义和衡量标准等。在这里我就不去花大篇幅陈述别人的研究成果,仅分享一下个人体会。

因为个人家庭原因,我在2017-2019年三年都荒废度日,到2019年底的时候,终于有机会回到职场,但是三年的时间消磨完了我的自信。

我打算从零开始,先给自己充一下电,学点东西再去投简历。就这样碰到了吴老师的课程(纯粹是因为当时更的少,学习压力小),老师讲课逻辑清晰、直白易懂,很大程度上提升了我的自信心。

到了2020年3月中旬的时候,遇到了对我影响巨大的课程—《思维导图》,似乎思路一下子被打通了。我很激动,照着画了一张自我分析图,然后发给了老师,得到了老师的肯定和鼓励。我有勇气去更新简历准备找工作了。

3月底,突然收到了老师的私聊,他说注意到我的自我分析图上写了最近要找工作,问我有没有兴趣来做答疑老师。然后就一直做到了现在,再过3个月我在这个职位上就要干满2年了。

答疑老师这份工作可以简单的做,只回复课程里的内容。认真做所面临的压力是巨大的,在VBA编程课和Access数据库刚上线时,零基础开始的我曾经压力大到失眠,怀疑自己是否能胜任。

困难终会过去,成功如期到来,大家对我的反馈让我知道我的工作有创造社会价值。

十分感谢所有给过我支持的学员们,你们的反馈是我保持学习和进步的最大动力。

因着这份工作,我不得不持续努力了近两年,很累。收入一般,如果“口袋里的”以金钱来衡量,我确实没有获得很多。但是这两年,我状态很好。荒废的三年,让我严重怀疑自己的社会价值,看不到未来。而现在,我收获了积极向上的心态,充满希望的生活,还有在市场上具有竞争力的技能水平,最重要的是养成了学习的习惯。

不管未来我到哪里,这两年的经历都会让我终身受益,人会因为虚度光阴而遗憾,却不会因为努力过而后悔。

以上就是我对那位同学问题的答复,希望能对有同样疑问的同学们有所帮助。



接下来进入今天的主题,无论是Excel还是Access,批量处理图片都是一个常见问题。今天我将教大家三种在Access中的解决方案。

把图片放在指定文件夹中,在数据库中保存图片路径:

  1. 根据商品名称给商品样图命名,并将所有图片放在一个指定的文件夹

2. 使用SQL批量更新样品图片字段的图片路径

3. 在窗体中展示商品图片

方案小结:分开存放图片和商品数据是实际应用中最常用的方法,简单易懂,学完了Access课程的同学都可以自己实现;路径是文本格式,不会占用太多数据库体积,但需要注意维护图片和路径的对应关系,不能轻易改变其中任何一方。

借助窗体和表的关联关系,使用窗体编程实现批量上传图片程序包到表中:

  1. 根据表自动生一个窗体,删除ID、商品名称控件,在窗体上添加一个文本框,一个按钮,用来选择待上传图片的路径

2.给上传图片添加click事件,实现图片的上传操作,代码如下:

Option Compare Database
Option Explicit
'需引用Microsoft Scripting Runtime库
Dim FSO As New FileSystemObjectPrivate Sub Command17_Click()uploadPics
End Sub'选择图片所在文件夹
Sub uploadPics()Dim fd As FileDialog, selectedFile As String'选择图片所在文件夹Set fd = FileDialog(msoFileDialogFolderPicker)If (fd.Show) Then'用户点确定按钮selectedFile = fd.SelectedItems.Item(1)Me.filepath = selectedFileupdateTablePics (selectedFile)Else'用户点取消,清空上传图片的路径Me.filepath = ""End If
End Sub'将图片上传到窗体控件并保存到表里
Function updateTablePics(selectedFile As String)Dim picFile As String, successCount As IntegerpicFile = Dir(selectedFile & "\")Do While picFile <> ""If (picFile Like "*.jpg") ThenDim picName As StringpicName = VBA.Replace(picFile, ".jpg", "")'出错则跳过这张图On Error GoTo ErrorHandlerDoCmd.SearchForRecord acForm, "商品表_保存图片程序包窗体", acFirst, "商品名称='" & picName & "'"Me.样品图片.SourceDoc = selectedFile & "\" & picFileMe.样品图片.OLETypeAllowed = acOLEEmbedded'要求控件是可见状态Me.样品图片.Action = acOLECreateEmbedDoCmd.Save acForm, "商品表_保存图片程序包窗体"successCount = successCount + 1End If
ErrorHandler:picFile = DirLoopMsgBox "上传成功" & successCount & "张图片"
End Function

3.使用演示效果图:

方案小结:这种方案是直接将图片以程序包的方式插入数据库里,可以直接从表里打开图片查看,后续删除本地文件夹的图片也不影响数据库里图片的使用,但会占用较多的数据库体积,数据量大时不建议使用。

不经过窗体直接使用VBA编码将图片数据以长二进制数据保存到OLE字段中

1.新建一个模块,修改模块名称为“批量上传图片”

2. 在模块中编写如下代码:

Option Compare Database
Option Explicit'需引用Microsoft Scripting Runtime库
Dim FSO As New FileSystemObject
Sub uploadPics()Dim fd As FileDialog, selectedFile As String'选择图片所在文件夹Set fd = FileDialog(msoFileDialogFolderPicker)If (fd.Show) Then'用户点确定按钮selectedFile = fd.SelectedItems.Item(1)updateTablePics (selectedFile)End If
End Sub'将图片数据以二进制流方式保存进表里
Function updateTablePics(selectedFile As String)Dim rs As RecordsetDim db As Database' 需引用Microsoft ActiveX Data Objects Library库Dim adoStream As ADODB.StreamSet db = Application.CurrentDbSet adoStream = New ADODB.StreamSet rs = db.OpenRecordset("商品表_保存图片Blob", dbOpenDynaset, dbSeeChanges)rs.MoveFirstDim n As IntegerDo Until rs.EOFIf FSO.FileExists(selectedFile & "\" & rs("商品名称") & ".jpg") ThenDim picFile As String, pic As ObjectpicFile = selectedFile & "\" & rs("商品名称") & ".jpg"adoStream.Type = adTypeBinaryadoStream.OpenadoStream.LoadFromFile picFilers.Editrs("样品图片") = adoStream.Readrs.Updaten = n + 1adoStream.CloseEnd Ifrs.MoveNextLooprs.Clonedb.CloseSet adoStream = NothingSet rs = NothingSet db = NothingMsgBox "成功上传" & n & "张图片"
End Function
3. 执行子程序uploadPics,执行后表中数据如下图:

4. 使用表默认生成一个窗体,删除窗体上默认的绑定对象框,换成图像控件

5. 在窗体的Current时间中添加给图像控件赋值的代码:

6. 窗体的显示结果如下图:

方案总结:这种方案是直接将图片以二进制数据的方式插入数据库里,无法直接从表里打开图片查看,需要通过窗体或报表去展示;删除本地文件夹的图片不影响数据库里图片的使用,但同第二种方案一样会占用较多的数据库体积,数据量大时不建议使用。

所需技能分析:

  • 需要对数据库的窗体和控件使用非常熟悉

  • 会用简单的SQL

  • 需要查阅API的能力

  • 需要一定的编码和调试能力

案例文档获取方式:

打开以下链接,拖到文章末尾,找到文档下载路径

https://mp.weixin.qq.com/s?__biz=MzkwNTI5NTg5NQ==&mid=2247483934&idx=1&sn=47db451e36354bff2a5b48a7cd861226&chksm=c0f8a366f78f2a700bcca97efe7299b6e6eb510d7be3d28fa3b13de566e97e8bbeee5ede129a&token=1912678604&lang=zh_CN#rd

准时下班系列_Access合集之第2集—三种方案批量上传图片到数据库,你会几种?相关推荐

  1. 准时下班系列_Access合集之第6集—多个项目窗体实现全选和反选功能

    Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉. 当我们使用access默认生成的列表格式的窗体时,如何添加自定义的全选和反选功能呢? 本文将通过演示全选和反选功能的实现,教会大家如何在软件预设窗体 ...

  2. 准时下班系列_Excel合集之第9集—VBA导入文本文档数据

    Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉.祝大家一切顺利,平安快乐! 工作场景描述: 前几天有位同学说,他们公司需要分析系统产生的日志文件(.LOG格式,Ps. TXT格式文档解决方式与log ...

  3. 准时下班系列_Excel合集之第6集—如何拆分和统计单据金额

    Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉.祝大家一切顺利,平安快乐! 上周有个Excel学员给我截了如下一张图: 老板要求她把公司收到的所有单据录入到Excel中整理好,并核对金额准确性. 她 ...

  4. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  5. MyBatis 源码分析系列文章合集

    1.简介 我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章.起初,我只是打算通过博客的形式进行分享.但在写作的过程中,发现要分析的代码太多,以至于文章篇幅特别大.在这7篇文章 ...

  6. Arturia V Collection 9 for mac - Arturia系列合成器合集

    Arturia V Collection 9为大家收录了33种完美的音频合成器,在原先的系列合集的基础之上新增了KORG MS-20 V,SQ80 V,Augmented STRINGS,Augmen ...

  7. 统计案例 | 系列文章合集

    统计案例 | 系列文章合集 1 背景 2 统计案例系列文章合集(持续更新中) 1 背景 [统计案例] 系列文章,目的是通过一系列的实际案例(经典统计案例+小编实际参与的数据分析项目)来洞悉这些案例背后 ...

  8. 孤岛危机简体中文版 机器人_孤岛危机系列1-3合集|孤岛危机游戏全系列1-3合集简体中文版_ - 极光下载站...

    孤岛危机游戏全系列1-3合集中文版下载."孤岛危机"是一款科幻第一人称射击类的游戏.相信不少朋友都在玩这款"孤岛危机"的游戏.以下,小编为大家收集整理了&quo ...

  9. Audition 入门系列(合集)_MediaTea的博客-CSDN博客

    Audition 入门系列(合集)_MediaTea的博客-CSDN博客 https://photoshoptea.blog.csdn.net/article/details/108211969?sp ...

最新文章

  1. 10分钟零基础带你入门Ribbon小项目-啥?小白都能看懂?
  2. 松下伺服esi文件_松下贴片机操作教程
  3. 深入理解Kafka(1)
  4. 小型Hadoop集群的Ganglia配置和一些故障排除
  5. 前端学习(1743):前端调试值之调试元素的hover样式
  6. 下列哪个不是python元组的定义方式_Python基础知识笔试
  7. Oracle学习 第18天 .NET连接Oracle
  8. Performance --- 前端性能监控
  9. 统计学基本概念(及辨异)
  10. 【CCCC】L3-011 直捣黄龙 (30分),Dijkstra维护点权,节点数,路径条数等+路径打印
  11. PHP 5.6 已结束安全支持,你升级到 PHP 7 系列了吗?
  12. mysql 的基本用法_mysql命令行基本用法
  13. Spring Cloud随记----远程配置文件资源库的建立-涉及一些简单的git操作
  14. 初探ASP.NET Mvc5+EF7的美妙旅程
  15. 计算机键盘上删除,电脑键盘删除键是哪一个
  16. Excel如何将数据上下调换位置
  17. 利用python制作动态二维码
  18. My Thirty-fifth Page - 最大二叉树 - By Nicolas
  19. 二次线性插值实现图像放大(计算机视觉)
  20. 互联网没有基业长青?(转)

热门文章

  1. java wap_JAVA和WAP移动学习技术
  2. 根本无心工作,只想尽快为祖国母亲庆生
  3. YOLOv7半自动标注
  4. 我们都进入了一个误区,其实面试官 “ 回去等通知 ” 不等于没戏....
  5. 利用metaphlan2结果计算alpha多样性
  6. 字节跳动大数据研发面试——自我反省
  7. hr/标签的属性及样式
  8. 国标GB28181-2022主要技术变化
  9. 选择数字IC行业,就一定要读研吗?
  10. 02-ROS的工程结构