你们谁能告诉我我的代码出了什么问题:
Private Sub Command379_Click
Dim strsearch as String
Dim strText as String
strText = Me.TxtSearch.Value
strsearch = "Select * from qryInfo
where ((Supplier Name LIKE ""*" & strText & "*"")
OR (Type LIKE ""*" & strText & "*""))"
Me.RecordSource = strsearch
End Sub非常感谢!
发布于 2019-01-17 09:58:37
如果您想匹配包含双引号的文本,请按照以下步骤操作:
文本:
"abc"VBA中的文本:
"""" & "abc" & """" (4 double quotation marks are necessary)谢谢。
发布于 2019-01-17 18:30:34
应考虑以下:
如果你有像Supplier Name这样内部为空的字段名,那么你必须用方括号将它括起来:在你的例子中,
()并不是真的必须的。为了添加文字引号,你可以使用单引号(""),而不是使用两个引号(""),更清楚的是保留字(_)和字符串连接来明确地处理它:strTest =“这是一个字符串”&_“在VBA语言的几行”&_“代码中定义。”
或者,您可以使用以下命令:
strTest = "This is a string“strTest = strTest &”在VBA中的几行“strTest = strTest &”代码中定义。“
最后,包含的(单行)应该是这样的:
strSearch = "Select * From qryInfo Where [Supplier Name] Like '*" & strText & "*' Or [Type] Like '*" & strText & "*'"也很重要:
请注意,使用字符串连接的当前方法无法避免SQL注入,这是一个真正的安全问题!
下面看看如何更好地处理它(例如,在VBA中使用参数查询):How do I use parameters in VBA in the different contexts in Microsoft Access?
发布于 2019-01-18 21:40:16
只有通配符就等同于根本没有WHERE标准。所以你不需要WHERE语句。
…...having说-我建议您使用查询设计视图创建查询,然后一旦它返回您认为正确的记录-然后使用选项在SQL视图中显示它。这将为您提供语法。
https://stackoverflow.com/questions/54227882
复制相似问题