【问题标题】:How to create a calculated field that calls the same calculated field in MS ACCESS如何在 MS ACCESS 中创建调用相同计算字段的计算字段
【发布时间】:2015-09-02 02:12:38
【问题描述】:

我正在从一个 Excel 电子表格创建一个 Access 数据库查询,其中“总资本调用”行是自行计算的,“当前资本调用”是静态的。

电子表格中的数据:

                                 A          B           C           D  

1 流动资金催缴                    1,000,000     240,000       2,000,000       1,960,000

2 总资本要求                       1,000,000   1,240,000      3,240,000       5,200,000

计算如下:

                                 A          B           C           D      

1 当前资本调用                1,000,000      240,000        2,000,000      1,960,000

2 总资本要求                 1,000,000     =+B1+A2       =+C1+B2      =+D1+C2

因此,当数据移动到下一个总资本调用字段时,该公式会重复,将总数相加到下一个“总资本调用”字段。

我正在尝试在计算中使用相同的计算字段名称在查询中创建计算字段。我需要计算字段“总资本调用”与字段 [当前资本调用] 相加。

例如:

SELECT LlamadoDeCapital.[Total Capital Committed], 
    LlamadoDeCapital.[Capital Call Request Date], 
    LlamadoDeCapital.[Capital Call Date], 
    LlamadoDeCapital.[Current Capital Call], 
    [Current Capital Call]+[Total Capital Calls] 
AS [Total Capital Calls]
FROM LlamadoDeCapital;

运行查询后,我收到以下消息:

Circular reference caused by alias 'Total Capital Calls' in query definition's SELECT list

是否可以在自己的表达式中调用计算字段??

是否有更好的解决方案将计算字段与自身和其他字段相加?

【问题讨论】:

  • 阅读here
  • 您的表格结构是否与显示的一样?你有多个字段而不是记录下来?如果是后者..您基本上是在寻找流动总和?这是报告还是表格?看看这个链接:support.microsoft.com/en-us/kb/290136
  • 感谢您的两位建议。我可能不得不以某种方式同时使用 DLookup 和 DSum 函数,但我不太确定如何。目前,我正在尝试让 DSum 函数仅与“Current Capital Calls”字段一起使用以证明其有效,但是,我遇到了语法错误。
  • 这是我的选择表达式:SELECT LlamadoDeCapital.ID, LlamadoDeCapital.[TotalCapitalCommitted], LlamadoDeCapital.[CapitalCallRequestDate], LlamadoDeCapital.[CapitalCallDate], LlamadoDeCapital.[CurrentCapitalCall] DSum("CurrentCapitalCall","LlamadoDeCapital ","CapitalCallDate
  • 这是我得到的错误:查询表达式'LlamadoDeCapital.[CurrentCapitalCall] DSum("CurrentCapitalCall","LlamadoDeCapital","CapitalCallDate"

标签: sql ms-access circular-reference calculated-field cumulative-sum


【解决方案1】:

好的,添加 clng 函数就是分辨率:

DSum("CurrentCapitalCall","LlamadoDeCapital","CapitalCallDate clng([CapitalCallDate])) AS TotalCapitalCalls

两个字段的运行总和。

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多