• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 113
  • Last Modified:

run outlook Rule from access 2010 vba code then delete all rules

I have that creates a rule in outlook from access vba code.
Internet code.

It creates the rule then saves it.
Works great.

What I need:
I now need to execute that same rule...then delete the RULE.

I need to RUN THE RULE from the "Sent Items"  folder specifically.

Code for Creating the rule:
Dim colStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim oFolders As Outlook.Folders
Dim oInbox As Outlook.folder
Dim Folder_Name As String
Dim Rname As String

Folder_Name = SELLER_NAME & "_" & "EscalationId_" & price_escNum & "_Created_" & Date
Rname = "Action Required - Pricing Escalation" & " #'" & price_escNum & "'"
'  On Error Resume Next

Set colStores = Outlook.Session.Stores
Set oFolders = colStores.Item("bookprice@xxxxxx.com").GetDefaultFolder(olFolderInbox).Folders.Item("Archive").Folders
oFolders.Add (Folder_Name)
Dim colRules As Outlook.Rules
   Dim oRule As Outlook.Rule
   Dim colRuleActions As Outlook.RuleActions
   Dim oRuleAction As Outlook.RuleAction
   Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction
   Dim oFromCondition As Outlook.ToOrFromRuleCondition
   Dim oSubjectCondition As Outlook.TextRuleCondition
   Dim oExceptSubject As Outlook.TextRuleCondition
   Dim oMoveTarget As Outlook.folder
   On Error Resume Next
   'Specify target folder for rule move action
   Set oInbox = Outlook.Session.Stores.Item("bookprice@xxxxxx.com").GetDefaultFolder(olFolderInbox).Folders.Item("Archive")
   'Debug.Print oInbox.FolderPath
   'Assume that target folder already exists
   Set oMoveTarget = oInbox.Folders(Folder_Name)
   'Get Rules from Session.DefaultStore object
   Set colRules = Outlook.Session.Stores.Item("bookprice@xxxxxx.com").GetRules()
   'Create the rule by adding a Receive Rule to Rules collection
   Set oRule = colRules.Create(Rname, olRuleReceive)
   'Specify the condition in a ToOrFromRuleCondition object
   'Condition is if the message is sent by "DanWilson"
   Set oSubjectCondition = oRule.Conditions.Subject
   With oSubjectCondition
      .Enabled = True
      .Text = Array(Rname)
   End With
   'Specify the action in a MoveOrCopyRuleAction object
   'Action is to move the message to the target folder
   Set oMoveRuleAction = oRule.Actions.MoveToFolder
   With oMoveRuleAction
      .Enabled = True
      .folder = oMoveTarget
   End With
   'Set rule to stop processing more rules
   Set oRuleAction = oRule.Actions.Stop
   With oRuleAction
      .Enabled = True
   End With
   'Update the server and display progress dialog

Open in new window

1 Solution
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:
Just as a side comment, seems to me you'd be better off just processing the items in the folder and do what the rule does via code and forget about rules entirely.  I don't have time to dig into this with you, but it seems like your heading in the wrong direction.

FordraidersAuthor Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

7 new features that'll make your work life better

It’s our mission to create a product that solves the huge challenges you face at work every day. In case you missed it, here are 7 delightful things we've added recently to monday to make it even more awesome.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now