2017-07-18 69 views
0

我正在尝试从组合框中编写部分文本匹配来过滤表单。访问表单组合框部分过滤器

这就是我正在写:

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", """) & "*' OR [FieldName2] Like '*" & Replace(Me.cboFindRecord.Text, "'", """) & "*'" 

当我离开这行的VBA代码,我在第二届&“得到一个错误*‘突出了单引号’,它说编译错误:?预计表达

任何人都知道我做错了,我一次又一次地检查了引号和双引号

回答

1
, """) 

不是有效的〜应变。 G。

如果你想使用双引号字符,这将是

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", """") & "*' OR ..." 

(字符串中的转义双引号)

但逃逸单引号的常用方法是使用两个单报价:

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", "''") & "*' OR ..." 
+0

谢谢。无论如何,我意识到我并不需要替换。人们不会试图将单引号放入过滤器中。我浪费了我的时间,但至少你帮助我摆脱了我自己的方式哈哈哈。 – missscripty

+0

嘿:)但我不会依赖那个,用户可以巧妙。在使用SQL连接变量时,可以使用Gustav的['CSql()'函数](https://stackoverflow.com/a/36494189/3820271),它使所有这些转义和格式化变得更加痛苦。 – Andre

+0

谢谢。我的东西仍然无法正常工作,但我可能会以错误的方式解决问题。只需要用户能够输入任何东西到一个组合,并让它1)自动扩展(属性设置为是)和2)在显示的列过滤器中的任何值匹配字符串的任何部分,所以用户可以过滤到位。继续收到错误,但我正在调试通过它们的方式。不幸的是,当我输入时,我得到错误,因为我没有达到可接受的值,所以我不能看到它是否像我想要的那样自动扩展。 – missscripty