Write from Outlook Calendar to Access Database

sharpapproach
sharpapproach used Ask the Experts™
on
We have an application that dymaically writes from an Access Database to a Shared Public Exchange Calendar.  When a user changes a date in the Database, it automatically adds, deletes or moves the item on this public calendar.

Now the users want to be able to move one of the items on the OUtlook Calendar and have it change the date in the Access Database.  

How can I do this?  I do have unique data that I link the field with the OUtlook object, so that isn't a problem.  I just don't know in Outlook VBA how to tell it to look at a Calendar entry and when it changes to do something.

Cheers for any guidance!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Jeffrey CoachmanMIS Liason
Most Valuable Expert 2012

Commented:
Have you considered 'Linking' the Outlook data into Access?

Last time I checked, changes worked from both ways...

Author

Commented:
That feature just creates a linked table.  We have our database that as users add and move things in different tables/fields, etc, then the Calendar updates.  

However, now the users to go the other way.

I have a public calendar called "Study Schedule", and when a user moves an item from one date to another, I have to have it go change some things in access.

I can't figure out how to know in Outlook VBA that a Public Calendar item has been moved/deleted/edited, etc.

If I can figure that out, I should be good to go.
Jeffrey CoachmanMIS Liason
Most Valuable Expert 2012

Commented:
Then this seems to be more complex than I had originally thought...

Please wait for other Experts to reply
11/26 Forrester Webinar: Savings for Enterprise

How can your organization benefit from savings just by replacing your legacy backup solutions with Acronis' #CyberProtection? Join Forrester's Joe Branca and Ryan Davis from Acronis live as they explain how you can too.

After 2 hours of trying things , I figured it out... Add this code to the ThisOutlookSession Code:

Dim WithEvents m_objAppt As Outlook.AppointmentItem

Private Sub Application_ItemLoad(ByVal Item As Object)
    On Error Resume Next
    Dim strClass As String
    Select Case Item.Class
        Case olAppointment
            Set m_objAppt = Item
      End Select
End Sub

Private Sub m_objAppt_Open(Cancel As Boolean)
    'Put code here for opening
    'for example, to look at the subject
    '.m_objAppt.Subject
End Sub

Private Sub m_objAppt_Read()
    'put read code here.
End Sub

Private Sub m_objAppt_Unload()
    'don't put code here because object model won't see it.
   ' Set m_objAppt = Nothing
End Sub
Jeffrey CoachmanMIS Liason
Most Valuable Expert 2012

Commented:
Great,
Congrats on getting it working, and thanks for sharing the solution with the community.
;-)

Jeff

Author

Commented:
Figured it out myself and posted code for future users

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial