这里仍然是一个初级 Access 程序员。试图让报告发挥作用。这就是我正在做的事情
我首先使用报表向导创建了一个报表,并使用以下查询作为输入
SELECT EmployeeId, Project, StartDate
FROM Tasks;
我有一个表格,其中我选择了员工 ID。我想根据所选员工 ID 过滤报告。这是我调用报告的内容
DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", "EmployeeId = " & strempid
qryEmpReport 是保存我上面提到的报告查询的查询的名称。 strempid 保存在表单中选择的值。然而,当我执行此操作时,它会提示我再次输入员工 ID。关于我为什么得到这个有什么想法吗?我已经验证以确保 strempid 确实包含之前选择的值。
最佳答案
我猜 Tasks.EmployeeId
是文本数据类型。如果我的猜测正确,请在您为 EmployeeId
提供的值周围添加引号:
DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", "EmployeeId = '" & strempid & "'"
根据我们在评论中进行的故障排除练习,我认为您应该给自己一个机会来检查您为 OpenReport
提供的实际字符串值的 WhereCondition 论证。 (最好查看实际的字符串,而不是尝试想象它的样子。)
Dim strWhereCondition As String
strWhereCondition = "EmployeeId = '" & strempid & "'"
Debug.Print "strWhereCondition ->" & strWhereCondition & "<-"
DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", strWhereCondition
在立即窗口中查看Debug.Print
的输出; Ctrl+g 将带您到达那里。
关于ms-access - 过滤报告查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479242/