【发布时间】:2014-02-18 03:54:53
【问题描述】:
我在 Access 中有一个数据库,我正在尝试获取一个文本框来运行我的查询并将另一个有界文本框的值作为DLookUp 中的条件传递。我在设计视图中运行查询,当我直接输入条件时,它返回正确的结果。当我打开报告时,它会给我所有可能行的总和。换句话说,它不会过滤行。
我已经有大约 12 年没有使用 Access了,谢天谢地,到目前为止,我所做的一切都是教程/示例拼凑而成,但它是...
SQL 查询:
SELECT Sum(IIf(Attended=-1,1,0)) AS attendance
FROM Students_Classes_Attendance
WHERE (((CStr([Students_Classes_Attendance].[Class_Id]))=[classId]));
DLookUp 作为控制源:
=DLookUp("[Total Attendance by Class]![attendance]",
"[Total Attendance by Class]",
"[Class_Id] =" & [Class_Id])
我现在迷路了。我猜测在查询触发之前该值不存在,并且由于条件是一个可选参数,它被传递为 null,但我希望你会从中得到一个错误。并不是说#Error 无论如何都非常有意义。
有没有人确切地知道问题以及解决问题的最佳方法?谢谢。
编辑:
我做了答案中建议的更改,所以现在我的 DLookUp 看起来像...
=DLookUp("[attendance]",
"[Total Attendance by Class]",
"[Class_Id] =" & [Class_Id])
...仍然返回所有行的总数。完全删除条件也没有什么区别,这让我认为它与没有值的绑定文本框有关。
【问题讨论】: