在访问查询中将组合框值作为比较运算符传递?

Pass combobox value as a comparison operator in access query?

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

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

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

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

经过多次尝试和错误,我终于让它工作了。它工作得很好。我会 post 在这里为任何可能搜索相同内容的人:) 这是查询

的 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));

祝你有愉快的一天:)