说起 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 的核心区别

维度ExcelAccess
本质电子表格 / 计算器关系型数据库 / 管理系统
数据规范灵活自由,格子里想放什么放什么结构严格,每个字段有固定数据类型
数据量百万行以内(实际几万行就开始卡)单表可达数百万行,效率更高
数据关系平铺在一张表里,表之间很难关联支持多表关联,一对多、多对多关系
数据冗余容易出现大量重复数据通过表关系减少冗余,数据一致性好
用户界面直接在单元格里操作可以做专业的窗体界面,用户看不到底层表
学习门槛低,打开就能用稍高,需要理解数据库概念

简单说: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 表的创建

创建表的几种方式:

  1. 数据表视图直接建表:直接输入字段名和数据,最简单但不够规范
  2. 设计视图建表(推荐):手动设计每个字段的名称、类型、属性,最灵活
  3. 表模板:Access 内置了联系人、任务、事件等模板,快速建表
  4. SharePoint 列表:和 SharePoint 集成时用

设计视图是核心,一定要熟练掌握:

  • 上半部分:字段名称、数据类型、说明
  • 下半部分:字段属性(格式、输入掩码、有效性规则、默认值等)

5.2 字段数据类型

Access 提供了多种数据类型,选对类型很重要:

数据类型用途示例
短文本文字,最多 255 个字符姓名、地址、电话
长文本大量文字,最多 65535 个字符备注、说明、简历
数字数值计算数量、年龄、分数
日期/时间日期和时间生日、订单日期
货币金额,精确到小数点后 4 位工资、价格、金额
自动编号自动递增的整数主键 ID
是/否布尔值,真或假是否在职、是否完成
附件存储文件(图片、文档等)产品图片、合同扫描件
超链接网页链接、邮件地址个人主页、邮箱
计算根据其他字段计算得出总价 = 单价 × 数量
查阅向导从其他表或列表选择值部门、职位、类别
📌 选择原则:能用数字的不用文本,能用短文本的不用长文本,选最合适的类型。数据类型不对,后面的查询、计算、排序都会出问题。

5.3 字段属性

每个字段都有很多属性可以设置,用好属性能让数据更规范:

  • 格式:数据的显示方式(比如日期显示为“2026-09-01”还是“2026年9月1日”)
  • 输入掩码:规定输入格式(比如电话号码、身份证号的格式)
  • 标题:显示时用的名字,可以和字段名不同
  • 默认值:新增记录时自动填入的值
  • 有效性规则:数据必须满足的条件,否则不让输入
  • 有效性文本:输入错误时的提示信息
  • 必填字段:是否允许为空
  • 允许空字符串:文本字段是否允许填“”
  • 索引:是否建立索引,提高查询速度

5.4 主键与索引

主键(Primary Key):

  • 唯一标识表中的每一条记录
  • 主键值不能重复,不能为空
  • 设计视图 → 选中字段行 → 点工具栏上的“主键”按钮(小钥匙图标)
  • 推荐用“自动编号”类型做主键,简单可靠

索引(Index):

  • 类似书的目录,提高查找和排序的速度
  • 主键自动建立索引
  • 经常用来查询、排序、关联的字段应该建索引
  • 但索引不是越多越好——太多索引会降低插入和更新的速度

5.5 表关系

这是数据库和电子表格最本质的区别。表和表之间不是孤立的,它们通过关系连接在一起。

三种关系类型:

  1. 一对多(最常见)

    • 一个客户可以有多个订单,一个订单只属于一个客户
    • “一”的一方是主键,“多”的一方是外键
    • 客户表(客户编号,主键) ←→ 订单表(客户编号,外键)
  2. 一对一

    • 一个员工对应一份工资档案
    • 用得不多,一般是为了拆分大表或权限控制
  3. 多对多

    • 一个学生可以选多门课,一门课有多个学生
    • 需要中间表(选课表)来拆解成两个一对多关系

建立关系的步骤:

  1. 数据库工具 → 关系
  2. 显示表 → 把要关联的表加进来
  3. 拖动主键字段到另一个表的外键字段上
  4. 编辑关系 → 勾选“实施参照完整性”(推荐)

    • 级联更新相关字段:主键变了,外键跟着变
    • 级联删除相关记录:删了主键记录,关联的外键记录也一起删
⚠️ 注意:建立关系之前,先确保两个表的数据是对得上的。如果订单表中有客户编号在客户表里找不到,关系就建不上。

5.6 数据库设计三范式

设计表结构有一套经典的规范,叫“范式(Normal Form)”。新手了解前三范式就够了:

第一范式(1NF):字段不可再分

  • 每个字段只存一个东西
  • 反例:“联系方式”字段里同时存了电话和邮箱
  • 正例:拆成“电话”和“邮箱”两个字段

第二范式(2NF):所有字段都和主键有关

  • 一张表只描述一个主题
  • 反例:订单表里既存订单信息,又存客户的详细地址、电话
  • 正例:订单表只存订单数据,客户信息单独放客户表

第三范式(3NF):字段和主键直接相关,不间接相关

  • 表中不能有可以由其他字段推导出来的字段
  • 反例:学生表里同时有“班级”和“班主任”,班主任由班级决定
  • 正例:班级信息单独建一张班级表
💡 实用建议:范式是指导原则,不是铁律。实际开发中可以根据性能和复杂度适当“反规范化”,但新手还是先老老实实按范式来,避免数据混乱。

六、第三阶段:查询与 SQL(3-4 周)

查询是 Access 的核心功能之一。如果说表是存数据的,那查询就是“问问题”的——你想从数据里找什么,写一个查询就行。

6.1 查询的类型

Access 的查询有很多种:

  • 选择查询:最常用,从表里筛选出符合条件的数据
  • 参数查询:运行时让用户输入参数,动态查询
  • 交叉表查询:行和列交叉统计,类似 Excel 的数据透视表
  • 操作查询:不仅查数据,还能修改数据

    • 生成表查询:把查询结果存成一张新表
    • 追加查询:把查询结果追加到另一张表
    • 更新查询:批量修改数据
    • 删除查询:批量删除数据
  • SQL 特定查询:直接写 SQL 语句

6.2 选择查询基础

创建选择查询的步骤:

  1. 创建 → 查询设计
  2. 显示表对话框 → 添加要查询的表 → 关闭
  3. 把需要的字段拖到下方网格中(或双击字段)
  4. 设置排序、条件、是否显示
  5. 点击“运行”按钮(!)查看结果

查询条件设置:

  • 文本条件:"销售部"(等于销售部),"张*"(张开头的)
  • 数字条件:>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 创建窗体的几种方式

  1. 窗体按钮:选中一张表 → 创建 → 窗体,一键生成,最快
  2. 窗体设计:完全手动设计,最灵活
  3. 窗体向导:一步步引导你选择字段、布局、样式
  4. 多个项目:一次显示多条记录,类似数据表视图
  5. 分割窗体:上面是单条记录的详细视图,下面是列表视图
  6. 数据透视表 / 数据透视图:交互式分析

7.3 窗体视图

  • 窗体视图:正常使用时的样子,能看数据能操作
  • 设计视图:编辑窗体布局和控件的地方
  • 布局视图:可以边看数据边调整布局,所见即所得
  • 数据表视图:像表格一样显示

7.4 常用控件

控件是窗体上的“零件”,Access 提供了丰富的控件:

控件用途典型场景
标签显示静态文字标题、说明文字
文本框显示和输入文字、数字、日期姓名、金额、日期
组合框下拉选择,可以输入也可以选部门、省份、类别
列表框列表选择,只能选不能输入产品列表、客户列表
按钮点击执行操作保存、查询、打印、关闭
复选框是/否选择是否在职、是否启用
选项按钮 / 选项组单选一组选项性别、状态
选项卡分页显示内容信息太多,分成几页
子窗体/子报表在窗体里嵌入另一个窗体订单+订单明细、主从表
图像显示图片Logo、产品照片
直线 / 矩形装饰和分隔分组、边框

7.5 控件的属性

每个控件都有大量属性可以设置,设计时在属性表中调整:

  • 格式属性:标题、字体、颜色、边框、对齐方式
  • 数据属性:控件来源(绑定到哪个字段)、输入掩码、默认值、是否锁定
  • 事件属性:单击、双击、更新前、更新后……(用来触发宏或 VBA)
  • 其他属性:名称、可见性、是否可用、Tab 键顺序

7.6 主/子窗体

主/子窗体是 Access 最经典的功能之一,用来展示一对多的关系:

  • 比如一个订单窗体(主窗体)显示订单的基本信息(订单号、客户、日期)
  • 里面嵌一个子窗体显示这条订单的明细(产品、数量、单价)
  • 主窗体和子窗体通过“主字段链接”和“子字段链接”关联

创建主子窗体的方法:

  • 方法一:窗体向导中选择“通过 订单”查看,选“带有子窗体的窗体”
  • 方法二:设计视图中,从导航窗格把子窗体拖到主窗体里
  • 方法三:用子窗体控件,按向导设置

7.7 窗体美化

好的界面不仅好用,还要好看:

  • 对齐排列:选中多个控件 → 排列 → 对齐、大小、间距
  • 格式刷:复制格式,和 Word/Excel 的格式刷一样用
  • 主题:设计 → 主题,一键换配色和字体
  • 合理分区:用选项卡、矩形、直线把功能分区
  • Tab 键顺序:按 Tab 时光标跳转的顺序要符合操作习惯

八、第五阶段:报表设计(2 周)

报表用来把数据整理成可以打印或导出的格式。Access 的报表功能非常强大,可以做分组、汇总、计算。

8.1 创建报表

创建报表的几种方式:

  1. 报表按钮:选中表/查询 → 创建 → 报表,一键生成
  2. 报表向导:一步步选择字段、分组、排序、样式
  3. 报表设计:完全手动设计,最灵活
  4. 空白报表:从空白开始,字段拖进去

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 Function

10.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 = Nothing

10.4 窗体和 VBA

VBA 最常用的场景就是和窗体配合:

  • 按钮的单击事件
  • 文本框的更新后事件
  • 窗体的加载、关闭事件
  • 数据验证(更新前事件中检查数据合法性)
  • 动态控制控件的可见性、可用性
' 按钮单击事件示例
Private Sub 保存按钮_Click()
    ' 数据验证
    If IsNull(Me.姓名) Then
        MsgBox "请输入姓名!"
        Me.姓名.SetFocus
        Exit Sub
    End If

    ' 保存记录
    Me.Dirty = False
    MsgBox "保存成功!"
End Sub

10.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 的大门 🚀


感谢阅读,如果觉得有用,欢迎分享给更多人。

延伸阅读

发表评论

验证码图片,点击可更换