MS Access vb代码,用于搜索字符串(使用LIKE)语句

时间:2017-05-24 12:50:51

标签: 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而不是=的原因)。谢谢!

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:2)

答案非常简单: Jet / ACE Like运算符使用*作为通配符,而不是% 调整以下内容,它应该可以正常工作

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

答案 2 :(得分:0)

您需要使用*代替%作为通配符,并稍微更改格式。

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