Skip to content

Access 入门、表设计与数据关系 ​

Access 适合学习关系数据、表单录入和固定报表,也可用于经过评估的小型桌面业务系统。本篇以 Windows 桌面版为例;Access 不包含在所有 Office 套件中,也不是 Mac 或浏览器中的同等桌面应用。

图示跟练建立有约束的客户与订单关系

点击步骤切换图示,再到 Office 中跟做;每一步都可跳到下方详细说明。

Access练习文件 · 界面示意
③ 表设计操作 / 设置示意

Customers:自动编号主键

Orders:客户编号为长整型

详细输入与检查见本步正文 ↓
简化示意,非软件截图。以 Windows 中文界面为主,实际按钮位置与功能取决于版本;可在应用搜索框查找命令。

何时从 Excel 转向数据库 ​

Excel 适合计算、分析和灵活试算;当相同客户信息在大量订单行中重复、需要统一录入界面和明确关系时,可考虑关系数据库。不是数据一多就必须用 Access,长期多人写入、高可用或互联网服务需要进一步评估其他数据库方案。

一个 Access 文件中可以包含表、查询、窗体、报表、宏和模块。表存数据,查询筛选和组合数据,窗体帮助输入,报表负责输出。不能把不同用途都塞进同一张巨大表里。微软表与关系介绍

创建客户与订单表 ​

新建空白数据库 订单练习.accdb,在表设计视图建立:

表字段类型与用途
CustomersCustomerID自动编号,主键
CustomersCustomerName短文本,必填
CustomersPhone短文本,保留前导零和符号
OrdersOrderID自动编号,主键
OrdersCustomerID数字,字段大小为长整型,引用客户
OrdersOrderDate日期/时间
OrdersAmount货币
OrdersStatus短文本

金额字段是否允许负数取决于退货等业务规则,本练习只录入非负订单。电话、证件和编码通常应按文本保存,不因内容都是数字就设为数值。主键用于唯一识别记录,客户名称可能重复,不适合直接当作本练习的主键。

建立一对多关系 ​

先录入两位虚构客户并记下实际生成的 CustomerID,再在订单中引用对应 ID。打开“数据库工具 → 关系”,添加两张表,把 Customers.CustomerID 拖到 Orders.CustomerID,检查连接字段类型和方向,按练习需要启用参照完整性。

参照完整性可防止订单引用不存在的客户。启用前已有的孤立记录会导致失败,应先核对数据。级联删除会把相关记录一起删除,不能为了省事随意勾选;订单需要保留历史时,通常应采用停用客户等业务处理方式,而不是直接删除。

导入 Excel 数据 ​

从“外部数据”选择相应 Excel 来源,根据需要导入为新表、追加或建立链接。导入是一次复制,链接依赖外部源;列名、类型、主键与重复值必须在向导中检查,完成后比对行数和金额。

导入失败时查看错误表或提示,重点检查字段类型、长度、日期格式和唯一键冲突。不要为消除错误把所有列都改成长文本,否则只是把问题推迟到查询和计算阶段。

练习与验收 ​

为两位客户各建立订单,总共三笔金额 100、200、300,总额 600。查询客户订单时应能正确显示每笔归属;尝试输入一个不存在的 CustomerID,在参照完整性生效时应被阻止。不要删除练习主表来测试正式数据,先保留数据库副本。

下一篇使用查询、窗体与报表完成录入和输出。

图示跟做:建立有约束的客户与订单关系 ​

按上方图示切换三个关键步骤;下面保留完整操作和检查结果,便于跟做与回查。请先使用练习副本。

第 1 步:按字段用途建两张表 ​

定位:创建 → 表设计。

创建练习 accdb,在表设计中按正文建立 Customers 和 Orders。CustomerID 在客户表为自动编号主键,在订单表为数字且字段大小是长整型。电话用短文本,金额用货币。保存两表后录入两位虚构客户,记下实际生成的编号,不假设一定从 1 开始。

第 2 步:建立一对多并检查方向 ​

定位:数据库工具 → 关系。

打开关系窗口,加入两张表,将客户主键拖到订单的 CustomerID。确认两端字段与类型,启用参照完整性并创建关系,观察一端和多端标记。不要为了消除提示随意勾级联删除;已有孤立订单要先修正,关系才可能成功建立。

第 3 步:用有效与无效记录验收 ​

定位:开始 → 视图。

在订单表输入三条练习记录,金额为 100、200、300,客户编号引用已存在的两位客户,总额为 600。再尝试不存在的客户编号,应被完整性约束阻止;取消这条失败输入。关闭并重开数据库,确认有效三条记录仍存在。

没有得到预期结果时 ​

能画出关系线不等于已启用约束。验收必须包括无效外键被阻止;字段类型不匹配时先修正模型,不要放弃完整性后继续录入。

继续阅读