过滤报表查询

时间:2015-02-12 13:54:13

标签: vba ms-access access-vba ms-access-2007

这里还是一个开始的访问程序员。试图让报告发挥作用。这就是我正在做的事情

我首先使用报告向导使用以下查询作为输入

创建报告
SELECT EmployeeId, Project, StartDate
FROM Tasks;

我有一个表格,其中我选择了员工ID。我想根据所选的员工ID过滤报告。以下是我调用报告的内容

DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", "EmployeeId = " & strempid

qryEmpReport是保存上面提到的报表查询的查询的名称。 strempid保存在表单中选择的值。但是当我开始执行此操作时,它会提示我再次输入员工ID。关于为什么我得到这个的任何想法?我已经验证确保strempid确实包含之前选择的值。

1 个答案:

答案 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 会带你去那里。