如何确保MS Access显示正确的当前记录的子报表数据?
How to make sure that MS Access displays the correct subreport data of the current record?
我有一个带 3 个子报表的工资单主报表,所有子报表都通过员工的序列号链接:
- rptPayslipPay - 用于显示正常工资
- rptPSDeds - 用于显示扣除额
- rptPayslipOpay - 用于显示补充付款。这个
子报告仅针对少数选定的员工显示。
我能够在主报告的页脚显示 3 个子报告的总数。由于我的上一个子报表 rptPayslipOpay,可能有也可能没有任何数据,我将它显示在一个名为 [txtOpay] 的文本框中,如下所示:
=IIf([rptPayslipOPay].[Report].[HasData],[rptPayslipOPay].[Report]![sumOpay],"")
我的问题是,即使页面已移至另一位员工,[txtOpay] 的值也会显示,从而显示前一位员工对下一位员工的补充付款。
有什么办法可以防止这种情况发生吗?
非常感谢。
您可以通过摆弄子报表来使其工作,但假设顶级报表和子报表之间存在 1:1 关系,并假设 serialNumber 是一个字符串;而不是你的 IIf
声明,你可以考虑尝试一些类似的东西:
=DLookup("sumOpay", [rptPayslipOPay].Report.RecordSource, "serialNumber='" & [serialNumber] & "'")
我不确定你的对象是如何命名的,但我认为这应该接近你要找的东西。
根据您的描述,听起来 "sumOpay" 可能是 rptPayslipOPay 报告中的计算字段。如果是这样,您可以使用:
=DSum("<field containing data to sum>", [rptPayslipOPay].Report.RecordSource, "serialNumber='" & [serialNumber] & "'")
当然,这些 运行 会更慢,但这可能是一种更容易让它工作的方法。
另一种选择是在您的顶级查询中左连接 rptPayslipOPay 的数据,然后对其求和。
我有一个带 3 个子报表的工资单主报表,所有子报表都通过员工的序列号链接:
- rptPayslipPay - 用于显示正常工资
- rptPSDeds - 用于显示扣除额
- rptPayslipOpay - 用于显示补充付款。这个 子报告仅针对少数选定的员工显示。
我能够在主报告的页脚显示 3 个子报告的总数。由于我的上一个子报表 rptPayslipOpay,可能有也可能没有任何数据,我将它显示在一个名为 [txtOpay] 的文本框中,如下所示:
=IIf([rptPayslipOPay].[Report].[HasData],[rptPayslipOPay].[Report]![sumOpay],"")
我的问题是,即使页面已移至另一位员工,[txtOpay] 的值也会显示,从而显示前一位员工对下一位员工的补充付款。
有什么办法可以防止这种情况发生吗?
非常感谢。
您可以通过摆弄子报表来使其工作,但假设顶级报表和子报表之间存在 1:1 关系,并假设 serialNumber 是一个字符串;而不是你的 IIf
声明,你可以考虑尝试一些类似的东西:
=DLookup("sumOpay", [rptPayslipOPay].Report.RecordSource, "serialNumber='" & [serialNumber] & "'")
我不确定你的对象是如何命名的,但我认为这应该接近你要找的东西。
根据您的描述,听起来 "sumOpay" 可能是 rptPayslipOPay 报告中的计算字段。如果是这样,您可以使用:
=DSum("<field containing data to sum>", [rptPayslipOPay].Report.RecordSource, "serialNumber='" & [serialNumber] & "'")
当然,这些 运行 会更慢,但这可能是一种更容易让它工作的方法。
另一种选择是在您的顶级查询中左连接 rptPayslipOPay 的数据,然后对其求和。