troubleshooting Question

Send mail commands in Access VBA no longer work with Outlook 365. Mixed Outlook versions

Avatar of valmatic
valmaticFlag for United States of America asked on
Microsoft Access* SendmailMicrosoft 365
15 Comments2 Solutions252 ViewsLast Modified:
Hi.  I've been bringing along an old, shared access database that was designed in Access 2000.  There are email send object and OLMail commands sprinkled throughout this thing.  Quite a few years back we moved to office (& Outlook) 2010 and I was able to keep it and all of the email functions working.  Recently, we are starting to move to Office 365 and are in sort of a hybrid state right now.. I have users running Office 2010 (w/Access 2010) and Outlook 2010, other users running office 2010 (& Access 2010) and Outlook 365 and a very few running the full Office 365 suite.   Besides that, I have users on both Windows 7 and on Windows 10.  Luckily, for now; the handful on the full office 365 suite don't use Access but I imagine we'll be moving more users soon.  I expect we'll be slowly moving users to full office 365 over the next couple years due to the number of users and lack of $$ available for this project.

My problem is in sending mail from within Access.  Everything else works fine.  My office and outlook 2010 users don't have an issue as long as the correct outlook object reference is available.  I think my issue is with the users who are using outlook 365.  The send object and OLMail objects don't work.  If I look at the references on various clients, I do see the correct MS Outlook Object Library reference for 14 or 16 based on the outlook client installed on that machine.  I've included my reference lists and a couple email send code examples being used.   What is my best course of action at this point?  I'm trying to steer away from a full redesign if possible..  thanks
Access-VBA-Reference-List.docx

' VBA1 OLMailItem Send Mail  (Error:  Run Time Error 5:  Invalid procedure call or argument)
Private Sub RGReason_LostFocus()
If RGReason = "Lost in Shipment" Then
    'Dim Outlook
    Set Outlook = CreateObject("Outlook.Application")
                    
    Dim Message 'As Outlook.MailItem
    Set Message = Outlook.CreateItem(olMailItem)
    With Message
                
    .Subject = "RG #" & [RGNo] & " created for items lost in shipment."
    .Body = "Gina, please send a copy of Invoice #" & [InvNo] & " to Shawn for Lost Goods.  Thank you."
    .recipients.Add ("sample@domain.com")
    .recipients.Add ("sample2@domain.com")
    .Send
    End With
    MsgBox "Notice of Lost Goods has been issued to UserA and UserB to follow up with the carrier in recovering these goods.", , "Note"
                         
End If
End Sub

'VBA2 SendObject example    (Error:  The Command or action 'SendObject' isn't available now.)
 Dim stDocName As String
stDocName = "CreditMockUp3"
DoCmd.SendObject acReport, stDocName, acFormatPDF, "user@domain.com", , , "Issue Credit for RG No. " & [RGNo], "Credit mock-up attached. See RG# " & [RGNo] & " for more details.  " 
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 2 Answers and 15 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 2 Answers and 15 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros