大数跨境
0
0

Access中帕累托图的完整技术实现

Access中帕累托图的完整技术实现 Access开发
2025-12-12
1
导读:今天,我们接着来讲新式图表!在工业控制、质量管理(QC)及 ERP 系统开发中,帕累托图(Pareto Chart)是必不可少的分析工具。

hi,大家好!

今天,我们接着来讲新式图表!

在工业控制、质量管理(QC)及 ERP 系统开发中,帕累托图(Pareto Chart)是必不可少的分析工具。


虽然 Excel 制作帕累托图很方便,但在 Access 开发的业务系统中,我们需要图表能动态响应数据库的变化(如按日期筛选、按产线过滤),而无需人工干预。


本文将从SQL 数据处理和图表控件配置两个核心维度,详细拆解如何在 Access 中实现动态帕累托图。


什么是帕累托图?

帕累托图(Pareto Chart),又叫排列图或主次图,是一种将柱状图和折线图结合在一起的统计图表。

它是质量管理(QC)七大手法之一,核心目的是为了“抓主要矛盾”


帕累托图基于著名的“二八法则”(80/20 Rule):80% 的结果通常源于 20% 的原因。

它由两部分组成:

柱状图:按频率降序排列,展示每个问题的大小。

折线图:展示累计百分比,帮助你找到那“关键的少数”。


今天我将从SQL 数据处理和图表控件配置两个核心维度,详细拆解如何在 Access 中实现动态帕累托图。

数据源准备
01

假设我们有一张缺陷记录表,具体字段如下图,表名我们就保存为帕累托图。自己在表中适当的放入一些数据。



核心难点:构建查询
02

Access 的 SQL 语法不支持窗口函数(如 SUM() OVER()),因此计算“累计值”通常有两种方案:子查询或 DSum 函数。为了在查询设计器中更易维护,我们推荐分步查询法。

第一步:基础聚合

先将原始数据按缺陷类型进行汇总,并按数量降序排列。新建一个查询,查询名称为:帕累托图总计

SELECT    缺陷,    Sum(次数) AS 总次数FROM    帕累托图GROUPBY    缺陷ORDERBY    Sum(次数) DESC;

第二步:计算累计占比

这是最关键的一步。我们需要基于帕累托图总计查询, 计算三个指标:总数量、累计数量、累计占比。

新建一个查询,保存查询为帕累托图查询,SQL 逻辑如下:

-- 1. 计算总数量 (作为分母)-- 2. 计算累计数量 (Running Sum)-- 逻辑:计算所有数量大于等于当前行数量的记录之和-- 3. 计算累计百分比SELECT    A.缺陷,    A.总次数,    (        SELECT            Sum(总次数)        FROM            帕累托图总计    ) AS GrandTotal,    DSum ("总次数", "帕累托图总计", "总次数 >= " & [A].[总次数]) AS RunningSum,    Format([RunningSum] / [GrandTotal], "Percent") AS CumulativePctFROM    帕累托图总计 AS AORDERBY    A.总次数 DESC;

运行结果:


注意:这个查询就是模拟了帕累托图的计算。这个数据源就可以放到老式的图表中了,但这里我们是用新式图表,不需要这个查询,我们接着往下。

新建图表控件
03

还是一样,我创建一个新的窗体,在窗体上放置一下新的图表控件。


添加数据源
04

到这里我们就可以来添加数据源了,具体如下图:


注:我们这里的数据源用的是第一个查询,不要添加错了。

运行
05

最后,我们运行看一下效果。


OK,到这步你就完成了一个完美的帕累托图。

在 Access 中开发帕累托图,本质上是 SQL 数据处理能力 与 可视化能力 的结合。


喜欢这篇文章吗?欢迎点赞、在看、转发,让更多 Access 爱好者看到!



【声明】内容源于网络
0
0
Access开发
面向Access爱好者与Access专业开发人员的技术服务平台,日常分享Access开发学习与实践中的点滴。
内容 187
粉丝 0
Access开发 面向Access爱好者与Access专业开发人员的技术服务平台,日常分享Access开发学习与实践中的点滴。
总阅读250
粉丝0
内容187