根据 Access DB 中另一个表中的多条记录计算字段的值

Posted

技术标签:

【中文标题】根据 Access DB 中另一个表中的多条记录计算字段的值【英文标题】:Calculate a field's value based on multiple records in another table in Access DB 【发布时间】:2016-04-22 22:19:28 【问题描述】:

我正在尝试在 Access 2010 中创建数据库,但遇到了一些问题。我目前有两张桌子,EarlyStageListResultsESDailyTotals。这些表中的每一个都有一个名为Records 的字段,ESDailyTotalsEarlyStageListResults 中多个条目的摘要。我需要做的是让ESDailyTotals 中的Records 字段成为EarlyStageListResults 中多个Records 字段的总和。例如,给定EarlyStageListResults中的以下记录:

Date          Records
4/22/16       2000
4/22/16       3000
4/22/16       1500
4/21/16       1200
4/21/16       2700

ESDailyTotals 中的记录应该是:

Date          Records
4/22/16       6500
4/21/16       3900

我知道这可以稍后通过 VBA 和表单事件来计算,但我希望能够在 EarlyStageListResults 中的任何 Records 字段发生更改时立即更新它。看起来可能有一种方法可以使用 Access Macro Editor 来执行此操作(不确定名称,但是您可以通过一系列组合框而不是通过 VBA 创建宏的工具),但我从来没有得到了解使用该工具,因此一直依赖 Forms 和 VBA。基本上,如果有一个在更新字段时触发的事件,以及一种将 VBA 代码输入到该事件处理程序中的方法,就像使用 Access Forms 一样,那么我可以使用 DLookup 或我认为的 SQL 语句来完成,但我没有不知道如何获取该事件处理程序。

这一切都需要在 Access 本身内完成,我不能使用外部程序来更新 Access 数据库文件中的记录。这是为了工作,并且(至少正式地)任何自定义程序都是一个很大的禁忌。 :)

提前谢谢大家!

【问题讨论】:

【参考方案1】:

你把这种方法弄得太复杂了。您只需要一个表和一个定义为

的数据库视图(我认为在 Access 中称为查询)
select Date, sum(Records) as Records from EarlyStageListResults
group by Date

将查询命名为ESDailyTotals

【讨论】:

那不会更新字段,对吧?我需要将它们总计的原因是需要使用每天的总数进行计算。我以前曾以不同的形式工作过,我想做的是简化它。以前的版本将这两个表合并为一个表,它就是这样工作的,但是每个列表我需要大约 10 个字段,如果列表名称发生更改,那么我必须进入并更改字段,这意味着以前数据更难访问。我正在努力使其更易于更新以适应未来的变化。 That won't update the field though right? 我不知道这是什么意思,也不知道你指的是什么领域。这是一个查询,每次访问ESDailyTotals 时都会即时计算总数。 我需要将计算结果存储在ESDailyTotals Report 字段中,以便在以后的计算中访问它。有一个名为PercentTotal 的字段存储特定列表每天包含的所有帐户的百分比。如果某一天总共有 6000 个帐户,而列表 A 包含其中的 2000 个,那么列表 A 的 PercentTotal 字段将为 33%。 (续) 为了计算,我需要一个字段来显示列表 A 中的帐户数量,以及列表 A、B、C 和 D 中的帐户总数。所以我需要添加所有 @要添加给定日期的 987654329@ 字段,并将该值存储在 ESDailyTotals.Records 中。 查询的行为与表完全一样——您可以将其用作报表源,将其连接到其他表/查询等。唯一的区别是您(通常)不能编辑查询。您可以将查询的内容转储到表中,但为什么要给出上述内容?但是您现在正在询问其他问题并引用原始问题中从未提及的表/字段,而 cmets 不是这样做的好地方。

以上是关于根据 Access DB 中另一个表中的多条记录计算字段的值的主要内容,如果未能解决你的问题,请参考以下文章

检查一个表中的日期是不是出现在 Access 中另一个表的范围内

2万3千多条英文名言名句精选集ACCESSEXCEL数据库

如何根据oracle中另一个表中的值更新一个表中的字段[重复]

根据表中另一个现有列的内容更改 SQL Server 中的现有列

根据 Kohana 中另一个表中的数据对 mysql 结果进行排序

将一个表中的值链接到另一个表,并根据 sql 中另一个表中的列对一个表进行切片