我在 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/