none
Mit Access Outlook-Termine dynamisch abfragen

    Frage

  • Liebe Newsgroupies,

    ich erfasse meine Termine und Servicetätigkeiten unterwegs mit Blackberry, iPhone bzw. iPad in ein speziell dafür angelegtes Outlook-Konto.

    Für die Tätigkeitsnachweise / Stundenaufstellungen (Abrechnungen) würde ich gerne verknüpft per Access auf das Outlook / Exchange-Konto zugreifen und in Access nach Kunden, Terminen etc. per Abfrage filtern und Listen ausgeben.

    Mein Problem ist nun, dass beim Verknüpfen der Outlook-Daten nur unwichtige Felder wie z.B. IPM.Appointment, Priorität etc. erscheinen, die für mich wichtigen Felder wie Beginn, Uhrzeit, Betreff, Nachricht aber nicht.

    Kann mir bitte jemand sagen, wie ich - notfalls auch per VBA - auf die Felder zugreifen kann. Es sollte aber, wie bereits angedeutet, kein Import sondern eine Verknüpfung sein, damit ich die Daten tagaktuell ohne vorherigen Import auswerten und aufbereiten kann?

    Vielen Dank für jegliche Hilfe und euere Unterstützung. Falls Lösung (nur) per VBA möglich würde ich mich auch über ein paar Codeschnipsel freuen...

    Viele Grüße

    Andi

    Donnerstag, 26. Januar 2012 19:52

Antworten

  • Hallo Andreas,
    mit VBA wäre auf folgende Weise möglich:
    Private Sub Command0_Click()
        Dim olApp As Object
        Dim ns As Object
        Dim fld As Object
        Dim a As Object
        Dim r As Recordset
        
        
        Set olApp = CreateObject("Outlook.Application")
        Set ns = olApp.GetNamespace("MAPI")
        Set fld = ns.GetDefaultFolder(9) 'olFolderCalendar
        
        Set r = CurrentDb.TableDefs("Table1").OpenRecordset()
        For Each a In fld.Items
            If a.Class = 26 Then 'olAppointment
                r.AddNew
                r.Fields("StartDate").Value = a.Start
                r.Fields("EndDate").Value = a.End
                r.Fields("Subject").Value = a.Subject 'Betreff
                r.Fields("Body").Value = a.Body 'Nachricht
                r.Update
            End If
         Next a
         r.Close
         Set r = Nothing
         Set fld = Nothing
         Set ns = Nothing
         Set olApp = Nothing
         MsgBox "Fertig"
         
    End Sub
    

     
     
    Viele Grüße,
    Bogdan

    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.
    Freitag, 27. Januar 2012 12:32
    Moderator

Alle Antworten

  • Hallo Andreas,
    mit VBA wäre auf folgende Weise möglich:
    Private Sub Command0_Click()
        Dim olApp As Object
        Dim ns As Object
        Dim fld As Object
        Dim a As Object
        Dim r As Recordset
        
        
        Set olApp = CreateObject("Outlook.Application")
        Set ns = olApp.GetNamespace("MAPI")
        Set fld = ns.GetDefaultFolder(9) 'olFolderCalendar
        
        Set r = CurrentDb.TableDefs("Table1").OpenRecordset()
        For Each a In fld.Items
            If a.Class = 26 Then 'olAppointment
                r.AddNew
                r.Fields("StartDate").Value = a.Start
                r.Fields("EndDate").Value = a.End
                r.Fields("Subject").Value = a.Subject 'Betreff
                r.Fields("Body").Value = a.Body 'Nachricht
                r.Update
            End If
         Next a
         r.Close
         Set r = Nothing
         Set fld = Nothing
         Set ns = Nothing
         Set olApp = Nothing
         MsgBox "Fertig"
         
    End Sub
    

     
     
    Viele Grüße,
    Bogdan

    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.
    Freitag, 27. Januar 2012 12:32
    Moderator
  • Hallo Bogdan,

    vielen Dank für Deinen Tipp und den beigefügten Code. Werd' ich mir heute gleich ansehen.

    Andi

    Montag, 30. Januar 2012 08:38
  • Hallo Bogdan, hallo Newsgroupies,

    hab' mir den Code mittlerweile angesehen und nach ein paar Anpassungen schon produktiv im Einsatz.

    Allerdings wäre es schön, wenn ich an Stelle des Imports in eine Access-Tabelle in Echtzeit (also mittels Verknüpfung)auf das Postfach zugreifen könnte. Und perfekt wäre es, wenn ich auch schreibend auf das Postfach zugreifen könnte, da ich mir nach erfolgter Abrechnung die Kategorie "Abgerechnet" setze.

    Ein weiteres Problem, das ich auch noch habe: das Postfach, das ich für diesen Zweck benutze ist permanent in mein eigenes Postfach/Outlook eingebunden, so dass ich jederzeit zwischen meinen aktuellen Terminen und den geleisteten Arbeitseinheiten wechseln kann. Mit dem Code von Bogdan ist es mir nicht gelungen, ein eingebundenes "Stundenkonto" abzufragen, ohne dieses Profil aufzurufen.

    Gibt es auch hier eine Lösung?

    Vielen Dank für jegliche Hilfe und Unterstützung.

     

    Andi Volkert 

    Donnerstag, 2. Februar 2012 19:45