Reputation: 21
I am curious if it is possible to start macro from access that save last sent email from outlook to local folder? I have something like that at this moment but it saves all emails when sending. Please advise.
EDIT: now I past it into vb in access but got an error 'Method or data member not found' and highlighted first line.
Sub SaveLastSentItem()
Dim oApp As Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder
Dim myItem As Outlook.MailItem
Dim myCopiedItem As Outlook.MailItem
Dim myItems As Object
Dim savePath As String
Set oApp = New Outlook.Application
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentMail)
Set myItems = myFolder.Items
myItems.Sort ("[SentOn]")
Set myItem = myItems.GetLast
savePath = "C:\Users\best buy\Downloads\stackoverfow\Individual Reports\" '## Modify as needed
savePath = savePath & myItem.Subject & Format(myItem.CreationTime, " yyyy-mm-dd-hhNNss")
savePath = savePath & ".oft"
myItem.SaveAs savePath, OlSaveAsType.olMsg
End Sub
Upvotes: 2
Views: 1363
Reputation:
Yes you'll need sort the MailItems
in the Sent folder by SentOn date. Then you can use MailItem.GetLast
to set a reference to the last email sent.
Sub SaveLastSentItem()
Dim oApp As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder
Dim myItem As Outlook.MailItem
Dim myCopiedItem As Outlook.MailItem
Dim myItems As Object
Dim savePath As String
Set oApp = New Outlook.Application
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentMail)
Set myItems = myFolder.Items
myItems.Sort ("[SentOn]")
Set myItem = myItems.GetLast
savePath = "C:\Users\best buy\Downloads\stackoverfow\Individual Reports\" '## Modify as needed
savePath = savePath & myItem.Subject & Format(myItem.CreationTime, " yyyy-mm-dd-hhNNss")
savePath = savePath & ".oft"
myItem.SaveAs savePath, OlSaveAsType.olMSG
End Sub
Upvotes: 1