Like运算符的强大源自它使用通配符可以用内建的匹配模式来进行比较,而不使用通配符的话,它的作用也就和等号(=)差不多了,还不如直接使用等号。所以我们需要知道的就是如何灵活运用它的通配符。在Access中通配符有5种,分别是:星号(*)、问号(?)、数字符号(#)、匹配字符列表([charlist])、非匹配字符列表([!charlist])。在字符列表中还可以通过在范围的上、下限之间使用连字符(-)来指定字符的范围。
字符串变量 Like “abc” 和字符串变量=”abc”差不多,很少用到
字符串变量 Like “A*” 字符串变量是以A开头的
字符串变量 Like “*A” 字符串变量是以A结尾的
字符串变量 Like “A*X” 字符串变量中以A开头以X结尾,中间包含任意个字符
字符串变量 Like “*A*” 字符串变量中的任意位置含有字符A
字符串变量 Like “?001” 字符串变量为任意一个字符开头并和001的组合
字符串变量 Like “#abc” 字符串变量为任意一个数字开头并和abc的组合
字符串变量 Like “[abc]*” 字符串变量第一个字符只能是abc中的一个,后面为任意个字符
字符串变量 Like “[!abc]*” 字符串变量第一个字符不能是abc中的一个,后面为任意个字符
字符串变量 Like “[A-z]###” 字符串变量以从A到z的任意一个字母开头,为3个数字
字符串变量 Like “[!0-9]*” 字符串变量第一个字符不能是数字
字符串变量 Like “[0-9X]*” 字符串变量第一个字符必须是数字或字母X,后面为任意个字符
在这里由于把左方括号 ([)、问号 (?)、数字号 (#) 和星号 (*) 等特殊字符作为了通配符,所以当我们需要比较时在某些地方把通配符作为一个字符而不是一个模式来处理的时候,就要把这些通配符放在方括号里面,使这些字符直接与其自身进行匹配。另外在charlist中不能使用右方括号(])。
利用like运算符可以简单的实现文本框的限制字符:如只限制输入数字和字母:
Private Sub Text0_Change()
Dim s As String
Dim i As Long
For i = 1 To Len(Me.Text0.Text)
s = Mid(Me.Text0.Text, i, 1)
If s Like "[!0-9]" And s Like "[!A-Z]" And s Like "[!a-z]" Then
Me.Text0.Text = Replace(Me.Text0.Text, s, "")
End If
Next
End Sub