从http://msdn.microsoft.com/en-us/library/office/aa209973(v=office.11).aspx的示例开始,我能够创建以下代码块,在Outlook收件箱中搜索主题行以特定电话号码“555-5555”开头的电子邮件,使用“ci_startswith” 。
Public blnSearchComp As Boolean
Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As Search)
MsgBox "The AdvancedSearchComplete Event fired."
blnSearchComp = True
End Sub
Sub TestAdvancedSearchComplete()
Dim sch As Outlook.Search
Dim rsts As Outlook.Results
Dim i As Integer
blnSearchComp = False
Const strF As String = "urn:schemas:mailheader:subject ci_startswith '555-5555'"
Const strS As String = "Inbox"
Set sch = Application.AdvancedSearch(strS, strF)
While blnSearchComp = False
DoEvents
Wend
Set rsts = sch.Results
For i = 1 To rsts.Count
MsgBox rsts.Item(i).SenderName
Next
End Sub
显然,如果主题行没有以确切的电话号码开头,在本例中为“555-5555”,则搜索无法找到该电子邮件。代替“ci_startswith”,我尝试使用“喜欢”比较,但是现在无法找到任何匹配项,包括那些使用“ci_startswith”找到的匹配项。
Const strF As String = "urn:schemas:mailheader:subject like '555-5555'"
我是否错误地使用“喜欢”比较?从我所看到的,它似乎应该工作。或者这是一个已知的错误/问题?如果是这样,是否有任何解决方法可以提供更广泛的搜索能力?
最终,我想使用类似下面的内容来搜索所有可能的电话号码实例。
Const strF As String = "urn:schemas:mailheader:subject like '###-####'"
提前致谢!
---------编辑/添加---------
Public blnSearchComp As Boolean
Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As search)
MsgBox "The AdvancedSearchComplete Event fired."
blnSearchComp = True
End Sub
Sub TestAdvancedSearchComplete()
Dim sch As Outlook.search
Dim rsts As Outlook.Results
Dim i As Integer
blnSearchComp = False
Const strF As String = "urn:schemas:mailheader:subject LIKE '%###%'"
Const strS As String = "Inbox"
Set sch = Application.AdvancedSearch(strS, strF)
While blnSearchComp = False
DoEvents
Wend
Set rsts = sch.Results
For i = 1 To rsts.Count
MsgBox rsts.Item(i).SenderName
Next
End Sub
答案 0 :(得分:0)
使用“LIKE”时,您必须在标准周围添加%字符,具体取决于您要搜索的方式
http://msdn.microsoft.com/en-us/library/office/cc513841(v=office.12).aspx
关键字like执行前缀,子串或等价匹配。令牌(字符,单词或单词)以特定方式用%字符括起,具体取决于匹配类型:例如'%'提供前缀匹配。例如,限制类似'cat%'将匹配“cat”和“catalog”。像'%%'提供子串匹配。例如,限制类似'%cat%'将匹配“cat”,“catalog”,“kittycat”和“十项全能”。像''提供等价匹配。例如,限制类似'cat'将匹配“cat”和“RE:Cat。”