根据 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 中创建数据库,但遇到了一些问题。我目前有两张桌子,EarlyStageListResults
和 ESDailyTotals
。这些表中的每一个都有一个名为Records
的字段,ESDailyTotals
是EarlyStageListResults
中多个条目的摘要。我需要做的是让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 中另一个表的范围内
如何根据oracle中另一个表中的值更新一个表中的字段[重复]
根据表中另一个现有列的内容更改 SQL Server 中的现有列