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