Der erste Beitrag soll veranschaulichen, wie einfach das Zusammenwirken zwischen MS Outlook und MS Access sein kann. Das nachfolgende Skript zeigt beispielhaft, wie man Termine in einem Outlook-Kalender auslesen und diese in einer Accesstabelle abspeichern kann. in diesem Beispiel habe ich eine temporäre Tabelle gewählt, die bei jedem Aufruf der Prozedur immer wieder geleert wird.

Wichtig ist dabei die korrekte Definition des Kalenders, der ausgelesen wird, Am Beispiel von Access 2013 habe ich das hier mal veranschaulicht. Die dazu benötigten Informationen bekommt man im Eigenschaftsfenster des gewünschten Kalenders:

kalendereigenschaften

 

Mit diesen Informationen kann man nun den entsprechenden Kalender ansprechen und die gewünschten Termine auslesen. Im nachfolgenden Skript beschränke ich mich ausschließlich auf Termine in der Zukunft.

Private Sub Outlook_Kalender_Lesen()

‘Leeren der temporären Kalendertabelle “Temp_Calendar”

CurrentDb.Execute “Delete * from Temp_Calendar;”, dbFailOnError

‘Definition der benötigten Variablen

Dim Folder As String
Dim Foldername As String

‘Definition eines Recordsets um die in Outlook gelesenen Daten
‘in eine temporäre tabelle zu schreiben

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset(“Select * from temp_Calendar”, dbOpenDynaset, dbSeeChanges)

‘Definition des Outlookkalenders der ausgelesen werden soll.

Folder = “iCloud”
Foldername = “Kalender”

‘Objektdefinition Outlook

Dim f As Object ‘MAPIFolder
Dim olAppt As Object ‘AppointmentItem
Dim OutApp As Object
Set OutApp = CreateObject(“Outlook.Application”)
Set f = OutApp.GetNamespace(“MAPI”).Session.Folders(Folder).Folders(Foldername)
Set olAppt = f.Items.Add() ‘olAppointmentItem

‘Durchlaufen aller Outlooktermine im Kalender

For Each olAppt In f.Items

‘Nachfolgnde Abfrage stellt sicher, dass nur zukünftige Outlooktermine ausgelesen wernden

If Format(olAppt.Start, “\#yyyy\-mm\-dd\ hh:mm:ss#”) >= Format(Date, “\#yyyy\-mm\-dd\ hh:mm:ss#”) Then

‘Im nachfolgenden Abschnitt werden die wesentlichen Felder aus Outlook in die temporäre Tabelle geschrieben

rs.AddNew
rs!Cal_EntryID = olAppt.entryid
rs!Cal_Info = olAppt.Body
rs!Cal_Date = olAppt.Start
rs!Cal_Date_End = olAppt.End
rs!Cal_All_Day_Event = olAppt.AllDayEvent
rs!Cal_Subject = olAppt.Subject
rs!Cal_outlook_category = olAppt.Categories
rs!Cal_outlook_Timestamp = olAppt.LastModificationTime
rs.Update        ‘Schreibt aktuellen Termin in die temporäre Tabelle
End If
Next olAppt

End Sub

Viel Spaß beim Ausprobieren.

Euer Christian

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>