Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access DSum返回行数而不是总值_Ms Access_Ms Access 2007_Ms Access 2003 - Fatal编程技术网

Ms access DSum返回行数而不是总值

Ms access DSum返回行数而不是总值,ms-access,ms-access-2007,ms-access-2003,Ms Access,Ms Access 2007,Ms Access 2003,我将以下代码附加到表单中的文本框: =DSum("[subform].Form![POINTS]","ATTENDANCE","[subform].Form![EMPLOYEE NO] = [EMPLOYEE NO]") 理想情况下,这将产生我们目前正在搜索的员工累计的总积分。但是,我得到的是表中行的总数 有人知道我如何得到值的总和而不是行数吗 谢谢据我所知,域函数(如DSum、DLookup、DCount等)用于从表中查找和返回值。第一个参数是字段,第二个参数是表,第三个参数是确保获得正确记

我将以下代码附加到表单中的文本框:

=DSum("[subform].Form![POINTS]","ATTENDANCE","[subform].Form![EMPLOYEE NO] = [EMPLOYEE NO]")
理想情况下,这将产生我们目前正在搜索的员工累计的总积分。但是,我得到的是表中行的总数

有人知道我如何得到值的总和而不是行数吗


谢谢

据我所知,域函数(如DSum、DLookup、DCount等)用于从表中查找和返回值。第一个参数是字段,第二个参数是表,第三个参数是确保获得正确记录集的条件或WHERE语句。第一个参数引用窗体的字段。我认为这是不正确的。WHERE语句中的第一项也是表单字段。我认为这也是不正确的。您需要尝试以下方法:

=DSum("POINTS","ATTENDANCE","[EMPLOYEE NO] = " & [subform].Form![EMPLOYEE NO])

如果您希望从子窗体中获取总计,并且您的子窗体与主窗体同步,则通过以下方式进行处理将更加高效:

  • 在子窗体的页脚中创建txTotalPoints文本框
    =sum(Points)
  • 从主窗体中引用该控件:txtMainResult
    =子窗体!形态!txtTotalPoints
  • 隐藏TXTotalPoints(或页脚本身)

  • 这通常会快得多。

    效果很好!非常感谢你的帮助。