Pentru a căuta elemente, utilizați metoda AdvancedSearch a obiectului Application. Sintaxa este următoarea:
expression.AdvancedSearch(Scope, Filter, SearchSubFolders, Tag)
Aici sunt componentele sintaxei:
Următorul exemplu caută în Inbox (Scope: = "Inbox" ) mesajele care în linia de subiect conțin Office. Dacă se găsesc mesaje, procedura afișează o listă de nume de expeditori, pe care le atribuie variabilei StringstrMessages și apoi le afișează într-o casetă de mesaj.
Rețineți că, în momentul scrierii, se pare că există o eroare de sincronizare în caracteristica de căutare avansată. Dacă apăsați F5 pentru a executa următorul cod, nu se găsesc accesări de căutare. Cu toate acestea, dacă apăsați F8 în mod repetat pentru a trece prin cod, funcționează conform așteptării.
Acest cod ar trebui să funcționeze la viteza normală. Este posibil să găsiți o modalitate de a insera o întârziere efectivă sau de a remedia în alt mod problema. Sau, poate Microsoft va rezolva problema.
Sub Sample_Advanced_Search()
Dim mySearch As Search
Dim myResults As Results
Dim intCounter As Integer
Dim strMessages As String
Dim intTotal As Integer
Dim strFilter As String
strFilter = Chr(34) & "urn:schemas:httpmail:subject" & Chr(34) & " like '%Office%'"
Set mySearch = AdvancedSearch(Scope:="Inbox", filter:=strFilter)
Set myResults = mySearch.Results
intTotal = myResults.Count
For intCounter = 1 To intTotal
strMessages = strMessages & _
myResults.Item(intCounter).SenderName & vbCr
Next intCounter
MsgBox strMessages, vbOKOnly, "Rezultatele cautarii"
End Sub
Puteți executa până la 100 de căutări simultan, dar ce rost are?
Dacă este necesar, puteți rula două sau mai multe căutări în același timp. Pentru aceasta, utilizați metoda AdvancedSearch în linii succesive de cod. De fapt, puteți rula până la 100 de căutări în același timp, dar acest lucru solicită considerabil computerul și îl poate face să ruleze lent sau să pară că nu mai răspunde. Și ce rost are?