Link to home
Start Free TrialLog in
Avatar of Fordraiders
FordraidersFlag for United States of America

asked on

originals emails are getting deleted if i issue a resend via vba

Access 2010 vba
sending emails via Microsoft Outlook 2010 through vba in access

I'm searching through the "Inbox" folder on a certain profile(store)
If it finds what i'm looking for it "resends" that email to its original "sendto"

PROBLEM:
The original email it finds...is getting deleted ?
after its does   a   "olResendMsg"





 
' LOOK FOR OUTLOOK OPEN
Dim objOL As OUTLOOK.Application
' search inbox for this id
Dim myOlApp As New OUTLOOK.Application
Dim myNameSpace As OUTLOOK.Namespace
Dim myInbox As OUTLOOK.MAPIFolder
Dim myitems As OUTLOOK.Items
Dim myitem As Object
Dim Found As Boolean
Dim objInsp As OUTLOOK.Inspector
Dim objActionsMenu As Office.CommandBarControl
Dim olResendMsg As OUTLOOK.MailItem
Dim ProfileN As String


' to find the right store or profile name
Dim colStores As OUTLOOK.Stores
Dim oStore As OUTLOOK.Store
Dim oRoot As OUTLOOK.Folder
' folder
Dim folders As OUTLOOK.folders
Dim Folder As OUTLOOK.Folder
Dim foldercount As Integer
Dim oFolder As OUTLOOK.Folder
 Set colStores = OUTLOOK.Application.Session.Stores
 
 For Each oStore In colStores
   y = oStore.DisplayName
 

    If y = "bookprice@xxxxx.com" Or y = "bookprice" Then
     
     Set oRoot = oStore.GetDefaultFolder(olFolderInbox)
     Set folders = oRoot.folders
         foldercount = folders.Count
'Check if there are any folders below oFolder
     Set myInbox = oRoot
     Set myitems = oRoot.Items


' ok we have records. generate records
t = "Action Required - Pricing Escalation #4196"






' search inbox for ID
Found = False

For Each myitem In myitems
       y = myitems.Count
        If InStr(1, myitem.Subject, "" & t & "") > 0 Then
          'MsgBox "Found" '  Debug.Print "Found"
            Found = True
             ' run the resend command
             Set objInsp = myitem.GetInspector
             objInsp.CommandBars.ExecuteMso ("ResendThisMessage")
            
             ' get the opened compose message form & send it
             
             Set olResendMsg = myitem 
            
             ' update fields if needed
             olResendMsg.CC = "redbookpriceescalations@grainger.com"
             olResendMsg.BCC = "david.powell@grainger.com"
             olResendMsg.Subject = "REMINDER: 2nd Request Please Respond : " & t & ""
             olResendMsg.Send
        Else
        ' do nothing
        End If
Next myitem
      

'If the subject isn't found:
       If Not Found Then
          ' NoResults.Show
          MsgBox "Pricing " & t & " Could Not Be Found. You will need to review Manually and send Notice."
          
       End If


If Found = True Then
 MsgBox "2ND Reminder Messages Sent !", vbOKOnly, "2nd Reminder Notice eMails"
End If

' this end if is for making sure we have the right profile name "Store" bookprice
  End If
Next


Set myNameSpace = Nothing
Set myInbox = Nothing
Set myitems = Nothing
Set myOlApp = Nothing

Open in new window

Avatar of John Tsioumpris
John Tsioumpris
Flag of Greece image

I am not sure but i think you should duplicate the email and then resend it....do you have a clue(breakpoint/watch) when the message gets deleted ?
Avatar of Fordraiders

ASKER

I was also just changing the resend. To forward?
ASKER CERTIFIED SOLUTION
Avatar of Anders Ebro (Microsoft MVP)
Anders Ebro (Microsoft MVP)
Flag of Denmark image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial