第5章 宏与VBA自动化


第 5 章 · 宏与 VBA 自动化

本章要回答的三个问题:哪些重复劳动可以让系统自己干,从哪一档工具下手?VBA 这门"老语言"该怎么入门,它和 Excel 里那个 VBA 是什么关系?保存一张订单时想让系统自动扣库存、发提醒——事件驱动的代码到底怎么写?

为什么会有这一章

第 4 章验收后的第一次月度复盘会上,华彩团队列了一张 wish 清单:希望保存订单时系统自己检查库存够不够;希望低库存货品每天早上自动生成提醒;希望维修单完工后自动通知采购归档;希望按业务员生成提成报表不再手工选择月份。清单上的每一项,界面点选都做不到——它们需要逻辑。

这就到了 Access 的第三层(回顾 1.1 的三层结构):自动化。这一层有两件武器,定位截然不同:

宏是积木式的无代码自动化。你从一个下拉动作列表里挑指令(打开窗体、刷新数据、弹消息、跑查询),填几个参数,积木就搭好了。优点是不用学语法、坏不了大事;天花板也很明显——它擅长"做一系列固定动作",不擅长"看情况办事"。

VBA(Visual Basic for Applications)是全功能的编程语言,Office 全家桶共用一门。当你的需求出现"如果……那么……""对每一条记录……""等用户确认后再……"这类句式时,就该请它出场了。第 5 章到第 8 章的几乎所有进阶能力——数据访问、错误处理、对接外部组件——全部由 VBA 承载。

两者的分工纪律先立在这:能宏则宏,宏穷则码。 每一段宏都是可视化、可审计、不惧改动的资产;代码是重武器,只在逻辑真正复杂时投入。这个原则会让你的系统始终保持"半个懂行的人也能维护"的状态。

读完能解决什么

  • 判断一个自动化需求该走宏还是走 VBA,避免用错兵器;
  • 独立编写带条件、带嵌入式宏的窗体按钮行为(比如分级审批式的按钮);
  • 掌握 VBA 的最小语法集:变量与类型、If 与 Select Case 分支、For 与 Do 循环、过程与函数的封装;
  • 理解 DAO 对象模型——Tabledef、Recordset 这些概念是操作数据的正规军路线;
  • 在正确的事件里挂正确的代码:BeforeUpdate 做校验、AfterUpdate 做联动、出错事件做人话提示;
  • 用 SQL 语句在 VBA 中动态干活:拼条件、取单值、执行批量动作,并配好错误处理安全网。

各节怎么分工

节号 回答哪个问题 关键产出
5.1 宏 不写代码能自动化到什么程度 宏的动作地图与安全边界
5.2 VBA 编程基础 第一次写代码该练哪些块 一套最小但完整的语法骨架
5.3 数据访问与事件 代码怎么读写表、挂在哪 Recordset 操作与事件挂钩规范
5.4 SQL 携手 VBA 动态查询怎么做才优雅 四种组合拳模板与排错习惯

注意学习顺序不可倒置:宏建立的"动作 - 参数"心智会让你学 VBA 时事半功倍,因为很多 VBA 方法就是宏动作的程序版。学完本章还有一个立竿见影的副产品:你会获得一套阅读别人系统的解码器——看到控件、双击事件属性表里的嵌入宏或事件过程,一个陌生系统改装的逻辑就摊开在你面前了。

先决条件

  • 第 4 章的导航主控台可运行(本章会往那些按钮里装真本事);
  • 华彩五表加字典的结构细节在手边备查;
  • 心理准备:第一天面对代码报错的挫败感人人都有,5.2 会专门教你读懂错误框。

往下走到哪

自动化做完,单个系统的功能已经完整。第 6 章视野向外:数据怎么从别的系统流进来(Excel、文本、SharePoint),又怎么流出去喂给 Word、Outlook、Power BI——Access 作为办公室数据枢纽的真价值在那里展开。

进本章前的最后一次自检:你能不能说清一个按钮从被点击到数据落库之间发生了哪几步?说不全也没关系,这正是接下来四节要逐层拆开的黑箱——宏讲动作怎么排、VBA 讲逻辑怎么写、DAO 讲数据怎么碰、SQL 讲弹药怎么供,四层拆完这只黑箱对你再无秘密。唯一的前置提醒是调整预期:本章的目标不是把你练成程序员,而是让你在业务现场遇到"软件不会做的事"时,有胆量自己动手补上那一块。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U