说起 Office 三件套,大家都知道 Word、Excel、PowerPoint。但很多人不知道,Office 家族里还有一位深藏不露的高手——Access。
你可能会问:现在都什么年代了,还有人用 Access?答案是:不仅有,而且很多。从中小企业的数据管理到学校的成绩系统,从人事档案到库存管理,Access 至今仍是许多人高效办公的秘密武器。
如果你觉得 Excel 处理几万行数据越来越卡,或者想做一个自己能用的小型管理系统,Access 可能就是你要找的答案。这份学习路径指南,带你从零开始,系统掌握 Access 数据库。
信息核验时点:2026-09(正文所载最新节点:级联组合框属性自 2026 年 8 月起可用,圆角控件属性预计 2026 年 9 月起推送)
本文要点
- 一句话定义:Access 是微软 Office 套件中的关系型数据库管理系统,用于在小团队场景里存储、管理并跟踪数据。
- 与 Excel 的分工:Excel 擅长计算和分析,Access 擅长管理和存储;单表可达数百万行,支持一对多、多对多表关联。
- 六大核心对象:表、查询、窗体、报表、宏、模块,学习路径就是逐个掌握再集成为一套完整应用。
- 七阶段路线:入门 1-2 周、表与关系 2-3 周、查询与 SQL 3-4 周、窗体 2-3 周、报表 2 周、宏 2-3 周,VBA 按需学习。
- 2026 年新变化:移除约 22.75 英寸窗体宽度限制、无代码级联组合框、CornerRadius 圆角控件、缩放下限从 50% 放宽到 10%。
- 版本与时效:Access 2021 支持期到 2026 年 10 月 13 日,2024 版到 2029 年 10 月,Access 365 持续更新。
- 门槛与适用人群:需要先理解数据库概念,学习门槛高于 Excel;适合不想买服务器、不靠程序员也能自建系统的中小团队。
一、为什么要学习 Access?
Access 是微软 Office 套件中的关系型数据库管理系统(RDBMS)。和 Excel 一样,它也是一个表格软件,但它们的定位完全不同。
1.1 Access 与 Excel 的核心区别
| 维度 | Excel | Access |
|---|---|---|
| 本质 | 电子表格 / 计算器 | 关系型数据库 / 管理系统 |
| 数据规范 | 灵活自由,格子里想放什么放什么 | 结构严格,每个字段有固定数据类型 |
| 数据量 | 百万行以内(实际几万行就开始卡) | 单表可达数百万行,效率更高 |
| 数据关系 | 平铺在一张表里,表之间很难关联 | 支持多表关联,一对多、多对多关系 |
| 数据冗余 | 容易出现大量重复数据 | 通过表关系减少冗余,数据一致性好 |
| 用户界面 | 直接在单元格里操作 | 可以做专业的窗体界面,用户看不到底层表 |
| 学习门槛 | 低,打开就能用 | 稍高,需要理解数据库概念 |
简单说:Excel 擅长计算和分析,Access 擅长管理和存储。当你的数据量越来越大、关系越来越复杂、需要多人协作时,Access 的优势就体现出来了。
1.2 Access 能做什么?
Access 的应用场景非常广泛:
- 小型管理系统:库存管理、客户管理、订单管理、人事管理、资产管理……
- 数据录入工具:用窗体做录入界面,比直接在表里填数据友好得多
- 报表生成:自动生成各类统计报表,一键打印或导出 PDF
- 数据清洗与整合:从 Excel 导入数据,清洗整理后再导回去
- 快速原型开发:用 Access 快速搭建一个能用的系统,验证业务逻辑
1.3 学习 Access 的价值
- 效率提升:用数据库管理数据,比 Excel 高效得多
- 思维升级:学习数据库的过程,也是培养结构化思维和数据建模能力的过程
- 低成本开发:不需要专业程序员,普通人也能做出能用的管理系统
- 为 SQL 打基础:Access 的 SQL 和主流数据库(MySQL、SQL Server)语法基本一致,学了 Access 再学其他数据库事半功倍
1.4 关于“Access 是不是过时了”
这是很多人心里的疑问,值得正面回答。
首先明确一个事实:Access 2021 的支持期到 2026 年 10 月 13 日结束,但这不意味着 Access 被废弃。“End of Support”的含义是 Microsoft 不再为该版本提供安全更新和技术支持,而已安装的 Access 仍然可以继续运行、打开和编辑数据库文件。
更重要的是,Access 本身仍在持续演进:
- Access 2024 已发布,支持期到 2029 年 10 月;
- Access 365 仍在持续更新,2026 年还迎来了一批新功能;
- Microsoft 明确表示没有停止 Access 的计划。
换句话说,Access 不是“过时的老东西”,而是一款仍在维护、且最近刚获得重要更新的工具。
二、2026 年 Access 的新变化
如果你对 Access 的印象还停留在几年前,那 2026 年的这波更新值得了解一下。这是 Access 社区多年呼吁的结果,也是近年来最集中的一次功能更新。
2.1 移除 22 英寸窗体宽度限制
这是 Access 社区呼声最高的功能请求,也是 2026 年最受关注的更新。
Access 窗体长期以来存在一个约 22.75 英寸(32767 twips)的宽度限制,源自 CRT 显示器时代的设计约束。随着双屏、超宽屏和 4K 显示器成为标配,这个限制越来越让人头疼。
现在这个限制已经被移除。开发者可以把控件放到更宽的位置、设计更大的布局,而不必把信息拆到多个屏幕上。Microsoft 表示,这不仅能减少滚动、提升数据录入效率,还带来了无障碍方面的改善——更大的布局允许增加控件间距、使用更大字号,对有放大内容需求的用户更友好。
2.2 无代码级联组合框 / 列表框
过去做级联下拉框(比如选了“国家”之后,“城市”列表只显示该国家的城市),几乎必须写 VBA 代码。
2026 年 8 月起,Access 为组合框和列表框新增了 LinkMasterFields / LinkChildFields 属性,不需要写任何代码就能实现级联效果。这两个属性与主子窗体链接时用的属性同名、用法也类似:
LinkMasterFields:指定窗体上提供筛选值的字段或控件;LinkChildFields:指定控件行来源中用于匹配的字段。
这个特性支持绑定和未绑定控件,也适用于单一窗体、连续窗体、数据表窗体和分割窗体。
2.3 圆角控件属性
通过新增的 CornerRadius 属性,可以为窗体控件添加圆角,让界面看起来更现代。预计 2026 年 9 月开始推送。
2.4 缩放功能扩展
Access 的缩放功能在 2026 年分阶段扩展:Stage 1 支持单一窗体和数据表,Stage 2 进一步支持连续窗体、弹出窗体和报表视图,缩放范围从 50%-500% 扩展到 10%-500%。
三、学习路径总览
Access 的学习应该遵循从概念到实操、从基础对象到系统集成的路线。推荐的学习顺序如下:
基础入门 → 表与关系 → 查询SQL → 窗体设计 → 报表设计 → 宏自动化 → VBA高级
↓ ↓ ↓ ↓ ↓ ↓ ↓
界面认识 表结构设计 选择查询 窗体创建 报表创建 独立宏 VBA基础
数据库概念 字段属性 多表查询 常用控件 分组排序 嵌入宏 DAO/ADO
数据导入 主键索引 操作查询 主子窗体 统计计算 AutoKeys 类模块
保存导出 表关系 SQL基础 窗体美化 打印导出 AutoExec 系统集成Access 的核心是“六大对象”——表、查询、窗体、报表、宏、模块。学习路径就是逐个掌握这六大对象,最后把它们整合起来,形成一个完整的应用系统。
四、第一阶段:零基础入门(1-2 周)
4.1 认识 Access 界面
打开 Access,先把界面的各个区域摸清楚:
- 后台视图(文件菜单):新建、打开、保存、打印、选项设置
- 功能区与选项卡:开始、创建、外部数据、数据库工具
- 导航窗格:左侧显示数据库中所有对象(表、查询、窗体、报表、宏、模块)
- 对象工作区:中间的大区域,打开的对象以选项卡形式显示
- 状态栏:底部显示当前状态和视图模式切换按钮
- 快速访问工具栏:左上角,常用按钮(保存、撤销、重做)
六种数据库对象:
- 📋 表(Table):存储数据的地方,是数据库的基础
- 🔍 查询(Query):从表中筛选、计算、整合数据
- 🪟 窗体(Form):用户和数据交互的界面
- 📑 报表(Report):格式化打印输出
- ⚡ 宏(Macro):自动化操作,不用写代码
- 📦 模块(Module):VBA 代码,实现高级功能
4.2 数据库基本概念
在动手之前,先搞懂几个核心概念,否则后面会越学越懵:
什么是数据库?
数据库就是“存放数据的仓库”。但不是随便乱放,而是按照一定的结构组织起来,方便查找和管理。
表、记录、字段:
- 表(Table):一个二维表格,存放一类数据。比如“员工表”“产品表”“订单表”
- 记录(Record):表里的一行,代表一个具体的实体。比如员工表里的“张三”
- 字段(Field):表里的一列,代表实体的一个属性。比如“姓名”“年龄”“入职日期”
打个比方:一张员工表就像一个花名册,每一行是一个人(记录),每一列是这个人的一项信息(字段)。
主键(Primary Key):
- 每条记录的唯一标识符,相当于身份证号
- 每个表都应该有主键,用来唯一确定一条记录
- 常用的主键:自动编号、员工编号、订单号等
关系(Relationship):
- 表和表之间通过共同的字段关联起来
- 比如“订单表”里有“客户编号”,对应“客户表”里的“客户编号”
- 有了关系,就不用在订单表里重复存客户的所有信息了
4.3 创建第一个数据库
新建数据库:
- 打开 Access → 空白桌面数据库 → 选择保存位置 → 命名 → 创建
- Access 数据库文件的扩展名是
.accdb(2007 以后版本) - 旧版本是
.mdb格式
数据库的保存与备份:
Ctrl + S保存- 定期备份数据库文件(直接复制一份就行)
- 数据库工具 → 压缩和修复数据库(定期使用,减小文件体积、修复损坏)
4.4 数据的导入导出
Access 不是孤立的,它可以和其他软件交换数据:
导入数据:
- 从 Excel 导入(最常用)
- 从其他 Access 数据库导入
- 从文本文件(CSV、TXT)导入
- 从 SharePoint、Outlook、SQL Server 等导入
- 外部数据选项卡 → 选择导入来源 → 按向导操作
导出数据:
- 导出为 Excel
- 导出为 PDF / XPS
- 导出为文本文件
- 导出到其他 Access 数据库
- 选中对象 → 外部数据 → 选择导出格式
💡 小贴士:很多人学 Access 都是从 Excel 转过来的。建议先把自己常用的 Excel 表导入 Access,一边用一边学,最有动力。
五、第二阶段:表的设计与关系(2-3 周)
表是数据库的基石。表设计得好不好,直接决定了整个数据库的质量。
5.1 表的创建
创建表的几种方式:
- 数据表视图直接建表:直接输入字段名和数据,最简单但不够规范
- 设计视图建表(推荐):手动设计每个字段的名称、类型、属性,最灵活
- 表模板:Access 内置了联系人、任务、事件等模板,快速建表
- SharePoint 列表:和 SharePoint 集成时用
设计视图是核心,一定要熟练掌握:
- 上半部分:字段名称、数据类型、说明
- 下半部分:字段属性(格式、输入掩码、有效性规则、默认值等)
5.2 字段数据类型
Access 提供了多种数据类型,选对类型很重要:
| 数据类型 | 用途 | 示例 |
|---|---|---|
| 短文本 | 文字,最多 255 个字符 | 姓名、地址、电话 |
| 长文本 | 大量文字,最多 65535 个字符 | 备注、说明、简历 |
| 数字 | 数值计算 | 数量、年龄、分数 |
| 日期/时间 | 日期和时间 | 生日、订单日期 |
| 货币 | 金额,精确到小数点后 4 位 | 工资、价格、金额 |
| 自动编号 | 自动递增的整数 | 主键 ID |
| 是/否 | 布尔值,真或假 | 是否在职、是否完成 |
| 附件 | 存储文件(图片、文档等) | 产品图片、合同扫描件 |
| 超链接 | 网页链接、邮件地址 | 个人主页、邮箱 |
| 计算 | 根据其他字段计算得出 | 总价 = 单价 × 数量 |
| 查阅向导 | 从其他表或列表选择值 | 部门、职位、类别 |
📌 选择原则:能用数字的不用文本,能用短文本的不用长文本,选最合适的类型。数据类型不对,后面的查询、计算、排序都会出问题。
5.3 字段属性
每个字段都有很多属性可以设置,用好属性能让数据更规范:
- 格式:数据的显示方式(比如日期显示为“2026-09-01”还是“2026年9月1日”)
- 输入掩码:规定输入格式(比如电话号码、身份证号的格式)
- 标题:显示时用的名字,可以和字段名不同
- 默认值:新增记录时自动填入的值
- 有效性规则:数据必须满足的条件,否则不让输入
- 有效性文本:输入错误时的提示信息
- 必填字段:是否允许为空
- 允许空字符串:文本字段是否允许填“”
- 索引:是否建立索引,提高查询速度
5.4 主键与索引
主键(Primary Key):
- 唯一标识表中的每一条记录
- 主键值不能重复,不能为空
- 设计视图 → 选中字段行 → 点工具栏上的“主键”按钮(小钥匙图标)
- 推荐用“自动编号”类型做主键,简单可靠
索引(Index):
- 类似书的目录,提高查找和排序的速度
- 主键自动建立索引
- 经常用来查询、排序、关联的字段应该建索引
- 但索引不是越多越好——太多索引会降低插入和更新的速度
5.5 表关系
这是数据库和电子表格最本质的区别。表和表之间不是孤立的,它们通过关系连接在一起。
三种关系类型:
一对多(最常见)
- 一个客户可以有多个订单,一个订单只属于一个客户
- “一”的一方是主键,“多”的一方是外键
- 客户表(客户编号,主键) ←→ 订单表(客户编号,外键)
一对一
- 一个员工对应一份工资档案
- 用得不多,一般是为了拆分大表或权限控制
多对多
- 一个学生可以选多门课,一门课有多个学生
- 需要中间表(选课表)来拆解成两个一对多关系
建立关系的步骤:
- 数据库工具 → 关系
- 显示表 → 把要关联的表加进来
- 拖动主键字段到另一个表的外键字段上
编辑关系 → 勾选“实施参照完整性”(推荐)
- 级联更新相关字段:主键变了,外键跟着变
- 级联删除相关记录:删了主键记录,关联的外键记录也一起删
⚠️ 注意:建立关系之前,先确保两个表的数据是对得上的。如果订单表中有客户编号在客户表里找不到,关系就建不上。
5.6 数据库设计三范式
设计表结构有一套经典的规范,叫“范式(Normal Form)”。新手了解前三范式就够了:
第一范式(1NF):字段不可再分
- 每个字段只存一个东西
- 反例:“联系方式”字段里同时存了电话和邮箱
- 正例:拆成“电话”和“邮箱”两个字段
第二范式(2NF):所有字段都和主键有关
- 一张表只描述一个主题
- 反例:订单表里既存订单信息,又存客户的详细地址、电话
- 正例:订单表只存订单数据,客户信息单独放客户表
第三范式(3NF):字段和主键直接相关,不间接相关
- 表中不能有可以由其他字段推导出来的字段
- 反例:学生表里同时有“班级”和“班主任”,班主任由班级决定
- 正例:班级信息单独建一张班级表
💡 实用建议:范式是指导原则,不是铁律。实际开发中可以根据性能和复杂度适当“反规范化”,但新手还是先老老实实按范式来,避免数据混乱。
六、第三阶段:查询与 SQL(3-4 周)
查询是 Access 的核心功能之一。如果说表是存数据的,那查询就是“问问题”的——你想从数据里找什么,写一个查询就行。
6.1 查询的类型
Access 的查询有很多种:
- 选择查询:最常用,从表里筛选出符合条件的数据
- 参数查询:运行时让用户输入参数,动态查询
- 交叉表查询:行和列交叉统计,类似 Excel 的数据透视表
操作查询:不仅查数据,还能修改数据
- 生成表查询:把查询结果存成一张新表
- 追加查询:把查询结果追加到另一张表
- 更新查询:批量修改数据
- 删除查询:批量删除数据
- SQL 特定查询:直接写 SQL 语句
6.2 选择查询基础
创建选择查询的步骤:
- 创建 → 查询设计
- 显示表对话框 → 添加要查询的表 → 关闭
- 把需要的字段拖到下方网格中(或双击字段)
- 设置排序、条件、是否显示
- 点击“运行”按钮(!)查看结果
查询条件设置:
- 文本条件:
"销售部"(等于销售部),"张*"(张开头的) - 数字条件:
>1000、Between 100 And 500 - 日期条件:
#2026-01-01#、Between #2026-1-1# And #2026-12-31# - 逻辑运算:
And(并且)、Or(或者)、Not(非) - 空值判断:
Is Null(为空)、Is Not Null(不为空)
💡 小技巧:条件写在同一行是 “And” 的关系,写在不同行是 “Or” 的关系。
6.3 计算与汇总
计算字段:
- 在查询中新增一列,由其他字段计算得来
- 写法:
新字段名: 表达式 - 例如:
总价: [单价]*[数量]、年龄: Year(Date())-Year([出生日期])
常用函数:
- 日期函数:
Date()(今天)、Year()、Month()、Day()、DateDiff() - 文本函数:
Left()、Right()、Mid()、Len()、&(连接) - 数学函数:
Round()、Int()、Abs() - 逻辑函数:
IIf(条件, 真值, 假值)
汇总查询(总计查询):
- 点击“总计”按钮(Σ),网格中多出一行“总计”
常用的汇总函数:
Sum:求和Avg:平均值Count:计数Max:最大值Min:最小值Group By:分组依据
- 可以按部门分组求平均工资、按月份统计销售额等
6.4 多表查询
表之间建立了关系之后,查询就可以跨表取数了:
- 把多张表添加到查询设计中
- 关系会自动显示(连线)
- 字段可以来自不同的表
- 比如从订单表取订单号、订单日期,从客户表取客户名称,从产品表取产品名称
连接类型:
- 内连接(默认):只显示两边都匹配的记录
- 左连接:显示左边表的全部记录,右边匹配不到的显示空
- 右连接:显示右边表的全部记录
- 双击表之间的连线 → 选择连接属性
6.5 SQL 基础
查询设计视图本质上就是一个“可视化 SQL 编辑器”。你在设计视图里拖拖拽拽,Access 在后台自动生成 SQL 语句。
什么是 SQL?
SQL(Structured Query Language,结构化查询语言)是操作数据库的标准语言。几乎所有数据库都支持 SQL。
最常用的 SQL 语句:
-- 查询数据
SELECT 字段名 FROM 表名 WHERE 条件 ORDER BY 字段
-- 例子:查询销售部所有员工,按工资从高到低排序
SELECT 姓名, 部门, 工资 FROM 员工表
WHERE 部门 = "销售部"
ORDER BY 工资 DESC
-- 多表查询
SELECT 订单.订单号, 客户.客户名, 订单.金额
FROM 客户 INNER JOIN 订单 ON 客户.客户ID = 订单.客户ID
-- 分组统计
SELECT 部门, AVG(工资) AS 平均工资
FROM 员工表
GROUP BY 部门为什么要学 SQL?
- 有些复杂查询,设计视图做不出来,必须手写 SQL
- 学会了 Access 的 SQL,再学 MySQL、SQL Server 等数据库非常容易
- 面试、进阶必备技能
🌟 学习建议:先用设计视图做查询,然后切换到 SQL 视图看看生成的 SQL 语句是什么样的。看多了、写多了,SQL 自然就会了。不用死记硬背,在实战中学最快。
七、第四阶段:窗体设计(2-3 周)
表是给数据看的,窗体是给人看的。好的窗体让用户根本感觉不到自己在操作数据库。
7.1 窗体的作用
- 数据录入:比直接在表里填数据更友好,可以控制输入格式
- 数据浏览:翻页查看、搜索定位
- 系统界面:把各种功能组织起来,做成一个完整的应用
- 流程控制:通过按钮和宏/VBA实现业务流程自动化
7.2 创建窗体的几种方式
- 窗体按钮:选中一张表 → 创建 → 窗体,一键生成,最快
- 窗体设计:完全手动设计,最灵活
- 窗体向导:一步步引导你选择字段、布局、样式
- 多个项目:一次显示多条记录,类似数据表视图
- 分割窗体:上面是单条记录的详细视图,下面是列表视图
- 数据透视表 / 数据透视图:交互式分析
7.3 窗体视图
- 窗体视图:正常使用时的样子,能看数据能操作
- 设计视图:编辑窗体布局和控件的地方
- 布局视图:可以边看数据边调整布局,所见即所得
- 数据表视图:像表格一样显示
7.4 常用控件
控件是窗体上的“零件”,Access 提供了丰富的控件:
| 控件 | 用途 | 典型场景 |
|---|---|---|
| 标签 | 显示静态文字 | 标题、说明文字 |
| 文本框 | 显示和输入文字、数字、日期 | 姓名、金额、日期 |
| 组合框 | 下拉选择,可以输入也可以选 | 部门、省份、类别 |
| 列表框 | 列表选择,只能选不能输入 | 产品列表、客户列表 |
| 按钮 | 点击执行操作 | 保存、查询、打印、关闭 |
| 复选框 | 是/否选择 | 是否在职、是否启用 |
| 选项按钮 / 选项组 | 单选一组选项 | 性别、状态 |
| 选项卡 | 分页显示内容 | 信息太多,分成几页 |
| 子窗体/子报表 | 在窗体里嵌入另一个窗体 | 订单+订单明细、主从表 |
| 图像 | 显示图片 | Logo、产品照片 |
| 直线 / 矩形 | 装饰和分隔 | 分组、边框 |
7.5 控件的属性
每个控件都有大量属性可以设置,设计时在属性表中调整:
- 格式属性:标题、字体、颜色、边框、对齐方式
- 数据属性:控件来源(绑定到哪个字段)、输入掩码、默认值、是否锁定
- 事件属性:单击、双击、更新前、更新后……(用来触发宏或 VBA)
- 其他属性:名称、可见性、是否可用、Tab 键顺序
7.6 主/子窗体
主/子窗体是 Access 最经典的功能之一,用来展示一对多的关系:
- 比如一个订单窗体(主窗体)显示订单的基本信息(订单号、客户、日期)
- 里面嵌一个子窗体显示这条订单的明细(产品、数量、单价)
- 主窗体和子窗体通过“主字段链接”和“子字段链接”关联
创建主子窗体的方法:
- 方法一:窗体向导中选择“通过 订单”查看,选“带有子窗体的窗体”
- 方法二:设计视图中,从导航窗格把子窗体拖到主窗体里
- 方法三:用子窗体控件,按向导设置
7.7 窗体美化
好的界面不仅好用,还要好看:
- 对齐排列:选中多个控件 → 排列 → 对齐、大小、间距
- 格式刷:复制格式,和 Word/Excel 的格式刷一样用
- 主题:设计 → 主题,一键换配色和字体
- 合理分区:用选项卡、矩形、直线把功能分区
- Tab 键顺序:按 Tab 时光标跳转的顺序要符合操作习惯
八、第五阶段:报表设计(2 周)
报表用来把数据整理成可以打印或导出的格式。Access 的报表功能非常强大,可以做分组、汇总、计算。
8.1 创建报表
创建报表的几种方式:
- 报表按钮:选中表/查询 → 创建 → 报表,一键生成
- 报表向导:一步步选择字段、分组、排序、样式
- 报表设计:完全手动设计,最灵活
- 空白报表:从空白开始,字段拖进去
8.2 报表的节(Band)
报表是按“节”来组织的,每个节有不同的作用:
- 报表页眉:整个报表的页眉,只在第一页顶部出现(封面、大标题)
- 页面页眉:每一页的顶部都显示(列标题)
- 组页眉:每个分组的开头显示(分组标题)
- 主体:每条记录的内容,重复显示
- 组页脚:每个分组的结尾显示(分组小计)
- 页面页脚:每一页的底部都显示(页码、日期)
- 报表页脚:整个报表的页脚,只在最后一页底部出现(总计)
💡 理解节的概念是报表的关键。数据放在哪里、小计放在哪里、总计放在哪里,都是由节决定的。
8.3 分组与排序
分组:
- 设计 → 分组和排序
- 添加分组字段(比如按部门分组、按月份分组)
- 设置组页眉和组页脚
- 组页脚里放文本框,用
Sum()、Avg()等函数做分组小计
排序:
- 同样在“分组和排序”里设置
- 可以按多个字段排序
- 升序或降序
8.4 报表中的计算
报表里可以用表达式做各种计算:
=Sum([金额]) ' 求和
=Avg([工资]) ' 平均值
=Count(*) ' 记录数
=Now() ' 当前日期时间
="第" & [Page] & "页" ' 页码- 放在主体节里计算当前记录的字段
- 放在组页脚里计算当前组的汇总
- 放在报表页脚里计算整个报表的总计
8.5 报表美化与打印
- 主题和样式:和窗体一样,可以套用主题
- 线条和矩形:装饰和分隔
- 页面设置:纸张大小、页边距、方向(横向/纵向)
- 打印预览:提前看看打印效果
- 导出 PDF:外部数据 → PDF 或 XPS
📌 实战经验:报表是 Access 的特色功能之一。很多人用 Access 就是为了做报表——数据存在表里,查询筛选好,报表一键生成,比 Excel 做报表高效得多。
九、第六阶段:宏与自动化(2-3 周)
宏(Macro)是 Access 的自动化工具,不用写代码,就能让数据库自己干活。
9.1 宏的作用
- 打开/关闭窗体和报表
- 执行查询
- 弹出消息框
- 查找记录、筛选记录
- 保存数据、打印
- 运行其他宏或 VBA 过程
- 数据导入导出
- 错误处理
简单说:凡是你手动点击的操作,几乎都能用宏来自动化。
9.2 宏的类型
独立宏:
- 独立存在的宏对象,在导航窗格中能看到
- 任何地方都能调用
- 适合放公共的、通用的操作
嵌入宏:
- 嵌在窗体、报表或控件的事件属性里
- 是所属对象的一部分,跟着对象走
- 导航窗格里看不到
- 安全性更高(默认可信)
- 向导生成的按钮代码就是嵌入宏
宏组:
- 一个宏文件里包含多个宏
- 每个宏有自己的名字
- 用
宏组名.宏名的方式调用 - 方便管理和组织宏
9.3 常用宏操作
| 宏操作 | 功能 |
|---|---|
| OpenForm | 打开窗体 |
| OpenReport | 打开报表 |
| CloseWindow | 关闭窗口 |
| MessageBox | 弹出消息框 |
| RunQuery | 运行查询 |
| FindRecord | 查找记录 |
| ApplyFilter | 应用筛选 |
| Requery | 刷新数据 |
| GoToRecord | 跳到指定记录 |
| SetProperty | 设置控件属性 |
| RunMacro | 运行另一个宏 |
| RunCode | 运行 VBA 函数 |
| SaveRecord | 保存记录 |
| PrintOut | 打印 |
| TransferSpreadsheet | 导入/导出 Excel |
| QuitAccess | 退出 Access |
9.4 宏的条件与循环
条件宏:
- 给宏操作加条件,满足条件才执行
- 用
If...Else...End If结构 - 比如:如果金额大于 10000 就弹提示,否则直接保存
子宏(Submacro):
- 在一个宏里定义多个子宏
- 每个子宏是一组操作
- 用
RunMacro调用指定的子宏
临时变量(TempVar):
- 在宏之间传递数据
SetTempVar设置,RemoveTempVar移除- 用
[TempVars]![变量名]引用
9.5 特殊用途的宏
AutoExec 宏:
- 名字叫 “AutoExec” 的宏
- 打开数据库时自动运行
- 适合做初始化:打开登录窗体、设置环境变量等
AutoKeys 宏:
- 名字叫 “AutoKeys” 的宏组
- 用来定义全局快捷键
- 子宏的名字就是快捷键(比如
{F5}代表 F5 键) - 按指定快捷键就执行对应的宏操作
⚠️ 宏 vs VBA:宏简单但功能有限,VBA 强大但学习成本高。一般建议:简单操作用宏,复杂逻辑用 VBA。宏操作的是整个记录集,而 VBA 可以逐条处理记录——这是两者一个很实用的区别。很多时候两者搭配使用效果最好。
十、第七阶段:VBA 高级编程(按需学习)
如果宏已经满足不了你的需求,那就该学 VBA 了。VBA(Visual Basic for Applications)是 Access 内置的编程语言。
10.1 什么时候需要 VBA?
- 复杂的业务逻辑和计算
- 操作数据库对象(动态创建表、修改结构)
- 文件操作(读写文本文件、遍历文件夹)
- 调用 Windows API 或其他程序
- 错误处理和调试
- 性能要求高的场景
- 宏实现不了的功能
10.2 VBA 基础
VBA 开发环境(VBE):
- 按
Alt + F11打开 VBA 编辑器 - 工程资源管理器(左侧):管理所有模块
- 属性窗口(左下):查看和修改属性
- 代码窗口(右侧):写代码的地方
- 立即窗口:调试用,
Ctrl + G显示/隐藏
基本语法:
' 声明变量
Dim 姓名 As String
Dim 年龄 As Integer
Dim 工资 As Double
' 赋值
姓名 = "张三"
年龄 = 30
' 条件判断
If 年龄 >= 60 Then
MsgBox "已退休"
ElseIf 年龄 >= 18 Then
MsgBox "成年人"
Else
MsgBox "未成年人"
End If
' 循环
For i = 1 To 10
Debug.Print i ' 在立即窗口输出
Next i
' 数组
Dim arr(1 To 10) As String
arr(1) = "第一个"
' 过程和函数
Sub 打招呼()
MsgBox "你好!"
End Sub
Function 加一(x As Integer) As Integer
加一 = x + 1
End Function10.3 用 VBA 操作数据库
DAO vs ADO:
- DAO(Data Access Objects):Access 原生的数据访问对象,操作本地数据库最方便
- ADO(ActiveX Data Objects):通用的数据访问接口,支持各种数据库
DAO 常用操作:
' 打开当前数据库
Dim db As DAO.Database
Set db = CurrentDb
' 打开记录集
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("SELECT * FROM 员工表 WHERE 部门='销售部'")
' 遍历记录
Do While Not rs.EOF
Debug.Print rs!姓名, rs!工资
rs.MoveNext
Loop
' 添加记录
rs.AddNew
rs!姓名 = "新员工"
rs!部门 = "技术部"
rs.Update
' 关闭
rs.Close
Set rs = Nothing
Set db = Nothing10.4 窗体和 VBA
VBA 最常用的场景就是和窗体配合:
- 按钮的单击事件
- 文本框的更新后事件
- 窗体的加载、关闭事件
- 数据验证(更新前事件中检查数据合法性)
- 动态控制控件的可见性、可用性
' 按钮单击事件示例
Private Sub 保存按钮_Click()
' 数据验证
If IsNull(Me.姓名) Then
MsgBox "请输入姓名!"
Me.姓名.SetFocus
Exit Sub
End If
' 保存记录
Me.Dirty = False
MsgBox "保存成功!"
End Sub10.5 VBA 学习建议
- 从宏转 VBA:先用宏把逻辑搭出来,然后用“将宏转换为 Visual Basic 代码”功能看看 VBA 怎么写
- 从录制学:虽然 Access 不能像 Excel 那样录制宏,但可以参考宏生成的代码
- 多模仿:找现成的示例代码,看懂、改改、跑通
- 善用帮助:按
F1查帮助文档,遇到问题先查帮助
🌟 进阶路线:掌握了 VBA 之后,你就不只是“用 Access 的人”,而是“能用 Access 开发软件的人”。很多小公司的业务系统,都是 Access + VBA 搭出来的,成本低、开发快、用得好。
十一、学习方法与资源推荐
11.1 学好 Access 的四个方法
1. 从实际需求出发
不要为了学而学。找一个真实的场景——比如你自己的项目管理、客户跟踪、库存记录——边做边学。有了具体的目标,学习才有动力,学了也记得牢。
2. 先模仿再创造
- 找一个现成的 Access 示例数据库(比如罗斯文示例),研究它的表结构、查询、窗体
- 照着做一个一样的
- 然后根据自己的需求去改
- 最后完全自己从零开始做
3. 动手实操
Access 是实践性极强的技能。看教程只能懂 30%,动手做才能学会另外 70%。每学一个新功能,找一组数据亲自操练。
4. 善用搜索和社区
遇到问题很正常。Access 发展了几十年,几乎所有问题都有人问过、解决过。善用搜索引擎和技术社区,很多时候答案就在一搜之间。
11.2 推荐学习资源
书籍:
- 《Access 宝典》—— 大部头,内容最全,当工具书用
- 《Access 数据库开发从入门到精通》—— 适合初学者,有实战案例
- 《Access VBA 编程》—— 专门讲 VBA 的书
在线教程:
- B 站:搜索“Access 教程”,有很多免费系统课程
- 微软官方文档:docs.microsoft.com/zh-cn/access/
社区与论坛:
- Access 中国论坛 / Office 中国
- 知乎 Access 话题
- Excel Home 论坛的 Access 板块
示例数据库:
- 罗斯文(Northwind):微软官方的示例数据库,经典中的经典
- 可以在新建数据库时搜索模板找到
十二、不同人群的学习侧重点
| 使用人群 | 学习重点 | 建议深度 |
|---|---|---|
| 数据管理员 / 文员 | 表设计、查询、报表、数据导入导出 | 学完前五个阶段 |
| 业务人员 / 管理人员 | 表设计、查询、窗体(浏览用)、报表 | 学完前五个阶段 |
| 从 Excel 转来的用户 | 表设计、查询、数据导入导出、交叉表 | 重点学查询和关系 |
| Access 爱好者 / 进阶 | 全部六大对象 + VBA + 系统集成 | 全套学完 |
| 想转行做开发的 | SQL、VBA、数据库设计原理 | Access 当跳板,后续学 MySQL / Python |
十三、写在最后
最后,想聊一聊 Access 的“定位”问题。
很多人会问:“现在都什么年代了,还学 Access 干什么?”
确实,今天有 MySQL、有云数据库、有低代码平台、有各种 SaaS 系统。但 Access 依然有它不可替代的价值——
- 它是最便宜的数据库开发工具:几乎零成本,人人都能上手
- 它是最好的数据库入门工具:可视化 + SQL 兼顾,学习曲线平缓
- 它依然是解决小团队数据管理问题的最快方案:很多中小企业,一个 Access 数据库就能管好整个业务
更重要的是,Access 并没有停在原地。2026 年的这波更新——移除 22 英寸窗体限制、无代码级联下拉框、圆角控件、缩放扩展——说明 Microsoft 仍在认真维护这款产品,社区的呼声也确实被听到了。
Access 不是“过时的老东西”,而是“被低估的利器”。它不需要你是程序员,不需要你买服务器,不需要你部署环境。打开就能用,几天就能做出一个能用的小系统。
工具没有高低之分,只有适合不适合。 在对的场景用对的工具,才是真的高效。
希望这份学习路径指南,能帮你打开 Access 的大门 🚀
感谢阅读,如果觉得有用,欢迎分享给更多人。