Access 2007 - 参考子报告中的子报告值

时间:2014-04-22 17:53:55

标签: report ms-access-2007

我的报告包含多个子报告以及其中一个子报告的子报告。

关注我的那个:

rptProgressReport - > rptEmployee(rptProgressReport的子) - > rptSubEmployeeProject(rptEmployee的子)

到目前为止,一切都在按需生成。员工按顺序列出,子报告提取各种项目详细信息。除了我需要将从一个表中花费的时间加在一起。

tblProject(主表) - > tblProjectHistory(通过projectID-> fldProjectID与tblProject相关的表)。

tblProjectHistory具有以下字段。 [historyID],[fldProjectID],[历史信息],[历史日期],[花费的时间],[员工]。

我需要为所有[时间花费]计算项目,这些项目等于显示的内容,只要员工匹配并且日期在指定的日期范围内。

指定的日期范围是通过启动表单(frmReportGeneration),其中包含字段txtStartDate和txtEnd Date。

子报告rptSubEmployeeProject有一个文本框(txtTimeSpent),我有以下控件来源。

=Sum(DLookUp("[Time Spent]","tblProjectHistory","[Employee]='" & [Reports]![rptEmployee].[txtTempEmployee] & "' AND [History Date] > " & [Forms]![frmReportGeneration].[txtStartDate] & " AND " & [History Date]<" & [Forms]![frmReportGeneration].[txtEndDate] & "))

txtTempEmployee的rptEmployee字段正确显示该子报告中要匹配的当前员工。

问题是我被提示上面代码的每个值部分 - txtTempEmployee和txtStartDate / txtEndDate,即使我将报告值更改为[Reports]![rptProgressReport]![rptEmployee]。[txtTempEmployee]

知道如何正确地从父报告或第一个子报告中提取变量吗?

谢谢。

+++++更新+++++ 好的更新/关闭。我最终需要做一些与接受的答案中建议类似的事情。我无法将这个想法发布到工作中 - 但我能够在vba中设置tempvars并在整个报告/子报告中使用它们。

1 个答案:

答案 0 :(得分:1)

不建议通过此构造“Forms!....”(或“Reports!...”)来引用其他对象 我用它做了一些不好的经历。我建议将值放入变量并制作一个 获取-的Funktion:
在您定义的模块中:

Publicg dtStart As Date
Public gdtEnd As Date

在表单中,您可以在触发报告的按钮中指定开始日期和结束日期

gdtStart = Me!txtStartDate
gdtEnd = Me!txtEndDate

现在获取功能:

Public Function Get_Date_Start () As Date 
    Get_Date_Start = gdtStart
End Function

Public Function Get_Date_End () As Date 
    Get_Date_End = gdtEnd
End Function

在查询中,您现在可以像这样使用它:

... AND [History Date] > " & Get_Date_Start() & " AND " & [History Date] <" & Get_Date_End()

顺便说一句:不要在任何对象名中使用空格:而不是[历史日期]将其命名为History_Date,您可以避免代码中的括号: - )