MS Access Search Outlook用于发送电子邮件

时间:2015-06-11 00:11:28

标签: vba ms-access outlook

所以我正在尝试创建一个宏,它将根据访问表单上的一条信息搜索我的电子邮件,我知道我很接近,但我似乎无法弄清楚最后一块

Private Sub btnEMAIL_Click()

    Dim strID As String, strMessages As String
    Call Outlook_open 'CHECKS TO SEE IF OUT LOOK IS OPEN

    Dim myOlApp As Object
    Set myOlApp = CreateObject("Outlook.Application") 'Creates outlook object

    strID = PayeeID.Value 'this is a value on the form
    Dim myNameSpace As Outlook.Namespace
    Dim myInbox As Outlook.MAPIFolder
    Dim myitems As Outlook.Items

    Dim myitem As Object
    Dim blnfound As Boolean

    Set myNameSpace = myOlApp.GetNamespace("MAPI")

    Set myInbox = myNameSpace.Folders("HQP Field Compensation").Folders("Inbox")
    Set myitems = myInbox.Items

    Set mySearch = AdvancedSearch(Scope:=myInbox,Filter:="urn:schemas:mailheader:subject= '" & strID & "'")
    Set myResults = mySearch.Results

    If myResults.Count > 0 Then

        For intCounter = 1 To myResults.Count
            myResults.Item(intCounter).Display 'Should display the relevant e-mail
        Next intCounter
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

AdvancedSearch是异步的/因为您只是通过收件箱搜索,所以使用Items.Restrict或Items.Find / FindNext

set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
set myItems = myInbox.Items
set myItem = myItems.Find("[Subject]='" & strID & "'")
while Not (myItem Is Nothing)
  myItem.Display
  set myItem = myItems.FindNext
wend