我在 MS Access 2007 中有一个包含 4 个字段的表。

  • 人工成本
  • 工时
  • 增值税
  • 全部的

如何将“工时”乘以“人工成本”并添加“增值税”并在“总计”中显示答案

我应该在哪里放置任何公式?在表单、查询或表格中?

非常感谢您的帮助

斯科特

有帮助吗?

解决方案

还有一种虚拟的(即不是 SQL 的)方法可以做到这一点:首先从表中删除总计列,并在本练习中假设表的名称是“Labour”。

现在创建一个新查询并在设计视图中查看它,添加“人工”表中的所有字段(以便您可以检查一切是否正常),选择一个空字段,右键单击并从下拉列表中选择“构建”。您现在应该有一个表达式生成器窗口。

输入计算字段的名称,例如labourTotal,后面跟一个冒号“:”,然后从“表达式生成器”窗口左下角的“表”中选择要添加的字段名称,然后双击每个字段名称。每个字段将出现在表达式生成器中的“总计:”之后。现在用“+”替换每个“«Expr»”。您应该在表达式生成器中看到这一点:“劳动力总计:[人工]![人工成本] + [人工]![工时] + [人工]![增值税]”。单击“确定”并运行查询 - 如果一切顺利,总计列将显示结果。

其他提示

您很可能不需要“总计”列。

您的查询或报告可能类似于以下内容:

SELECT [Total] = [Labour Cost] * [Labour Hours] + [VAT]

您可以在表单或报表的控件中使用相同类型的公式。

如果您确实需要更新 Total 列中的数据:

UPDATE YourTableName SET [Total] = [Labour Hours] * [Labour Cost] + [VAT]


A 很多 然而,更好的方法是从表中完全删除 Total 列并创建一个查询:

SELECT [Labour Cost], 
       [Labour Hours], 
       [VAT], 
       [Labour Hours] * [Labour Cost] + [VAT] AS [Total]
FROM YourTableName

首选此方法的原因是它可以防止您意外地将错误信息放入“总计”列中。一般来说,如果您不小心,数据很容易被损坏,并且修复起来非常痛苦(如果不是不可能的话)。我建议你用谷歌搜索“数据库规范化”并阅读一些相关内容 - 这将对你有很大帮助。

  1. 关于您的增值税百分比,我希望我没有说明显而易见的内容,但您应该输入小数,例如.175 是 17.5%

  2. 你不能只加一个百分比,它必须乘以一些东西。并且您必须包含原始金额的 100%。因此,如果要加 17.5%,则需要乘以 1.175。所以,假设:i) 您希望自动包含 100%(即您只需要输入 .175) 并且 ii) 增值税应添加到全部金额中,并且 iii) 通过“指定”表示您希望在每次运行查询时提示您输入增值税;那么你的公式应该是:

全部的:([一般费用]![人工成本]*[一般费用]![工时]+[材料成本]) * (1+ [以小数形式输入增值税?])

创建一个新查询。

添加您的桌子

将三个非总计字段添加到查询中

在新字段中输入:

total: [VAT] + [Labour Hours] * [Labour Cost]

运行查询

斯科特说:

基本上只是想进行计算,以便我可以在屏幕和报告中显示总数。

正如一些人所建议的,您可以在保存的查询中进行计算,并用作报告和表单的记录源。

但我建议你不要这样做。我建议您尽可能晚地进行计算。对于报表,这意味着您可以对报表进行控制,该控件将您要执行的计算作为其控制源。这样,它仅对在页面格式化时打印的行执行。

我建议对表格做同样的事情 除了 如果您想对总计字段进行排序或过滤。表单上的计算字段不能用于排序/过滤,并且在某些情况下显示速度很慢,这可能会令人烦恼。在这种情况下,您将忽略我的建议,避免将它们放入查询/记录源中,因为您有充分的理由在实际显示数据之前为所有行计算它。

但一般来说,不要将计算放入不打算作为组进行操作(过滤、排序、分组)的记录源中。

您可以将其作为计算字段放入查询或表单中。只要有意义,就简单并且具有适当的可重用性。如果计算特定于数据的表单或视图,请在其中或在查询中进行。

在这种情况下,您可以预见总计将是一个经常使用的值并在逻辑上应用于该行,因此将其设置为计算字段是合适的。计算字段的优点是(在大多数系统中,不确定 MSAccess)它们可以设置为仅在数据更改时重新计算。

如果您正在计算数量与交货提前期的比率,那么我会在特定表格/报告的查询中放入更多的内容,因为它永远不会被重复使用,并且可能是一个更繁重的计算。

我通常会选择在查询中进行计算,除非它依赖于另一个计算的结果,然后在查询中进行计算可能会变得有点混乱,所以在表单/代码中进行。

总之,只要适合该计算即可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top