【问题标题】:MS Access Formula to Update one field in a table based on the amount "between" two other fieldsMS Access 公式根据“之间”两个其他字段的数量更新表中的一个字段
【发布时间】:2017-11-13 18:00:06
【问题描述】:

我希望有人可以帮助我。我希望我可以在 MS Access 中进行更新查询,该查询将根据另一个字段“品牌储蓄”是否等于或介于我拥有的一组美元范围来更新我称为“按财政年度的物质性”的字段在另一张桌子上。第一张表如下,也就是主表:

+----------+------------+---------------+----------------------------+
|  Brand   | Project ID | Brand Savings | Materiality by Fiscal Year |
+----------+------------+---------------+----------------------------+
| aBS Corp |        121 | $110,000.00   |                            |
| aBS Corp |        151 | $17,640.67    |                            |
| aBS Corp |        152 | $5,682.37     |                            |
| aBS Corp |        154 | $564,669.58   |                            |
| aBS Corp |        157 | $5,097.00     |                            |
| aBS Corp |        159 | $33,798.00    |                            |
| aBS Corp |        190 | $200,000.00   |                            |
| aBS Corp |        193 | $250,000.00   |                            |
| aBS Corp |        194 | $366,666.67   |                            |
| aBS Corp |        197 | $90,799.00    |                            |
| aBS Corp |         20 | $14,000.00    |                            |
| aBS Corp |        219 | $2,800.00     |                            |
| aBS Corp |        222 | $132.58       |                            |
| aBS Corp |         23 | $2,068.30     |                            |
| aBS Corp |        233 | $32,908.60    |                            |
| aBS Corp |         25 | $9,143.18     |                            |
| aBS Corp |         34 | $11,674.85    |                            |
| aBS Corp |         35 | $11,615.60    |                            |
| aBS Corp |         36 | $14,959.28    |                            |
| aBS Corp |         39 | $35,000.00    |                            |
| aBS Corp |         40 | $100,000.00   |                            |
| aBS Corp |         60 | $55,000.00    |                            |
| aBS Corp |         61 | $250,094.72   |                            |
| aBS Corp |         64 | $925,000.00   |                            |
| aBS Corp |         69 | $400,000.00   |                            |
| aBS Corp |         75 | $14,625.00    |                            |
+----------+------------+---------------+----------------------------+

第二个表是参考表:

+------------+-------------------+--------------------+----------------+
| FiscalYear |     Low Range     |     High Range     |     Result     |
+------------+-------------------+--------------------+----------------+
|       2016 |  (100,000,000.00) |         24,999.00  | 0-24.9K        |
|       2016 |  25,000.00        |         49,999.00  | 25-49.9K       |
|       2016 |  50,000.00        |         99,999.00  | 50-99.9K       |
|       2016 |  100,000.00       |  1,000,000,000.00  | 100K or Higher |
+------------+-------------------+--------------------+----------------+

我希望能够参考第二张表,以便根据“品牌储蓄”中的值是否介于“低范围”和“高范围”之间来更新“会计年度的重要性”字段字段。然而我想不通,这让我发疯。相反,我有 4 个不同的查询将更新“会计年度的重要性”字段(查询中使用的公式示例如下:)

IIf(([Brand Savings]>=0) And ([Brand Savings]

基本上我要问的是是否有一个公式可以用来引用参考表中的“低范围”和“高范围”字段,以确定主表中的“品牌储蓄”值是否为在这两个金额之间,如果是,请使用参考表中的“结果”字段填充“会计年度的材料”字段?

对不起,这有点“罗嗦”,只是不知道该怎么解释。

谢谢大家!

【问题讨论】:

标签: ms-access formula between


【解决方案1】:

您可以在更新查询中使用DLookUp 来查找适当的值:

DLookUp("Result", "SecondTable", CDbl([Brand Savings]) & " Between [Low Range] And [High Range]")

对于SELECT 查询,您也可以使用连接,但我怀疑这是否适用于UPDATE 查询。

【讨论】:

  • 如果这回答了您的问题,请将答案标记为已接受。请参阅what should I do when someone answers my question,了解有关接受答案以及如何操作的更多信息。
  • 我认为我正确地“接受”了它。如果没有,请告诉我。谢谢!
  • 好的,谢谢。您可能会注意到您也通过接受答案获得了 2 个代表 :)
【解决方案2】:

假设包含 Brand Savings 的表称为 tblBrandSavings,包含范围的表称为 tblRanges。 然后你可以使用这个 UPDATE 语句:

UPDATE tblBrandSavings, tblRanges
SET [Materiality by Fiscal Year] = tblRanges.Result 
WHERE  tblBrandSavings.[Brand Savings] BETWEEN tblRanges.[Low Range] AND tblRanges.[High Range];

问题是您为什么要在多个表中存储相同的日期。 我建议一个简单的 SELECT 语句:

SELECT tblBrandSavings.Brand, tblBrandSavings.[Project ID], tblBrandSavings.[Brand Savings], ( 
SELECT tblRanges.Result 
FROM tblRanges 
WHERE  tblBrandSavings.[Brand Savings] BETWEEN tblRanges.[Low Range] AND tblRanges.[High Range]
 ) AS [Materiality by Fiscal Year]
FROM tblBrandSavings;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2014-02-20
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多