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



我有一个带有文本框的 from in 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"(。

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

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

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

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

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

使用 * 而不是 % 作为通配符,并稍微更改格式。

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

最新更新