我已根据以下查询创建报告
SELECT TasksEntries.Project, TasksEntries.Task, Sum(TimeTracker.WorkHours) AS
TotalHours
FROM TasksEntries INNER JOIN TimeTracker
ON (TasksEntries.EmployeeId = TimeTracker.EmployeeId) AND (TasksEntries.TaskID
= TimeTracker.TaskId)
GROUP BY TasksEntries.Project, TasksEntries.Task;
从表单中捕获开始日期和结束日期,并传递如下所示。 WorkDate是TimeTracker表中的一列,不存在于任何其他表中。
strWhere = "WorkDate BETWEEN #" & txtMgrRptStartDate & "# AND #" &
txtMgrRptEndDate & "#"
DoCmd.OpenReport "rptTotalProjectHours", acViewPreview,
"qryTotalProjectHours", strWhere, acWindowNormal
当调用报告时,我会在其中显示一个框 Workdate的“输入参数值”..我不确定为什么我会这样做。
当我单独运行它并且在那里硬编码的开始和结束日期时,查询运行正常。问题似乎只有在通过docmd.openreport传递时才会发生。有人可以帮我解决这个问题吗?通过OpenReport传递WorkDate时,是否必须在SELECT语句中出现列名?
提前感谢您的帮助。
答案 0 :(得分:0)
我通过在SELECT语句的WHERE子句中包含日期条件并指定开始日期和结束日期的表单文本框名称来解决它。
我做的另一件事是从Docmd.openreport中删除查询名称,因为报告是从命名查询创建的。