0

我有一个带有组合框“cmb1”和文本框“txt1”的表单。组合框可以为空,也可以包含比较运算符“>”或“<”或“=”而不带引号,而比较的值可以在文本框 txt1 中输入,如下图所示 frm1 ,我有这个查询如下图 qry_employee

我试图将组合框中的值作为比较运算符传递,并在“emplyee_age”字段的条件中传递文本框值,但我不能。例如

  1. 如果 cmb1 为空,则查询应显示所有员工。
  2. 如果 cmb1 值为“>”且 txt1 值为“22”,则查询应显示所有年龄大于 22 岁的员工
  3. 如果 cmb1 的值为“=”且 txt1 的值为“30”,则查询应显示所有年龄等于 30 的员工……等等 简而言之,比较运算符应取自 cmb1 的值,而比较应该取自 txt1 并且两者都在查询的条件字段中使用。我没有选择比较运算符,查询返回所有值。我正在使用 MS Access 2007。

我尝试了几个小时,但无法让它工作。非常感谢您的所有帮助。

4

1 回答 1

0

经过这么多的试验和错误,我终于让它工作了。它完美地工作。我会在这里为任何可能搜索相同内容的人发布它:) 这是查询的 sql

SELECT tbl_employees.ID, tbl_employees.emplyee_name, tbl_employees.employee_age FROM tbl_employees WHERE (((IIf(IsNull([Forms]![frm1]![cmb1]),True,Eval(([tbl_employees].[employee_age]) & [Forms]![frm1]![cmb1] & [Forms]![frm1]![txt1])))<>False));

祝你有美好的一天 :)

于 2020-10-10T12:32:36.993 回答