VBA 运算符不喜欢



>我目前正在表单上使用过滤器:

Me.Filter = "[duedate] = '" & Me.duedatesearch & "' And [employeename] Is Null"
Me.FilterOn = True

这工作正常。我正在努力解决的是试图排除来自称为"工作"的不同领域的结果。例如,如果满足上述条件并且为"工作"不像"荷马"。不像似乎不是一个有效的 VBA 运算符。有什么想法吗?

谢谢。

我尝试了以下方法:

Me.Filter = "[duedate] = '" & Me.duedatesearch & "' And [employeename] Is Null" And Not [workingfor] Like "Homer"
Me.FilterOn = True

返回运行时错误"13":类型不匹配

当前代码的几个问题:

  • 正如您在发布问题时从语法突出显示中观察到的那样,过滤器的最后一部分不是初始字符串的一部分,因为您在Null后面有一个双引号。

  • 除非将Like表达式括在括号内,否则相应的运算符Not Like


例如:

Me.Filter = "[duedate] = '" & Me.duedatesearch & "' And [employeename] Is Null And [workingfor] Not Like 'Homer'"
Me.FilterOn = True

但是,由于您在Like模式中没有使用任何通配符运算符,因此也可以使用不等于运算符 (<>( 编写:

Me.Filter = "[duedate] = '" & Me.duedatesearch & "' And [employeename] Is Null And [workingfor] <> 'Homer'"
Me.FilterOn = True

除此之外,我觉得很奇怪,您的字段[duedate]似乎是一个字符串值字段,而不是日期字段。