sql - MS Access vba 代码搜索字符串(使用 LIKE)语句

标签 sql vb.net ms-access

我在 Microsoft Access 中有一个带有文本框的发件人(下面的名称是 TextSerial)。我希望用户能够输入一个字符串并让它在子表单中显示所有匹配的记录。下面是我的代码,但它不起作用(没有记录出现)。

Private Sub TextSerial_Enter()
Dim myEquipment As String
myEquipment = "Select * from tblEquipment where ([Serial] Like '% " & Me.TextSerial & " %' )"
Me.tblEquipment_subform1.Form.RecordSource = myEquipment
Me.tblEquipment_subform1.Form.Requery
End Sub

我感觉这与引号的顺序(' vs ")有关,但我一直无法弄清楚。我希望用户只能输入部分字符串(这就是我使用 Like 而不是 = 的原因)。谢谢!

最佳答案

我注意到两件事。首先,您可以使用双引号作为字符转义(即“He said ""Hello."""将输出字符串:He said "Hello")。

其次,您在通配符和文本之间的查询中有一个空格。我不知道这是不是故意的,但这意味着如果你在一个字段中搜索一个字符串,比如 ABC123,你实际上不会得到结果,因为额外的空格是该记录中不存在的字符。

看看这些简单的更改是否能解决您的问题。

myEquipment = "Select * from tblEquipment where [Serial] Like ""*" & Me.TextSerial & "*"""

关于sql - MS Access vba 代码搜索字符串(使用 LIKE)语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158939/

相关文章:

sql - 您不能在 FROM 子句中指定要更新的目标表

vb.net - 在模拟用户下运行的非 UI 线程是否会自动模拟 UI 线程?

c# - 如何判断一个类型是否在继承层次中

sql - INDEX 创建的 UNIQUE 参数 - 有什么用?

MySQL 5.1 不允许我使用 declare in limits。我尝试了所有替代方法,但没有任何效果,我无法更新 MYSQL 版本

javascript - 无法将表隐藏在 asp.net 中

sql - 有没有办法使一列的可为空性取决于另一列的可为空性?

ms-access - Access 中货币值的数据类型

sql-server - 如何在我的开发机器上模拟网络延迟?

java - JSQLParser 凝胶查询和子查询中的所有选择项