Ziel: Access und Office 365 sprechen miteinander

Access ist lokal. Office 365 ist in der Cloud.
Du willst:

  • Termine im Outlook-Kalender
  • Mails verschicken
  • Dateien in OneDrive speichern
  • Teams automatisieren
  • oder direkt Daten mit Excel oder SharePoint austauschen

Funktioniert. Wenn Du weißt, wo Du ansetzen musst.

Variante 1: Outlook (Mails & Termine)

Funktioniert lokal wie gewohnt. Auch mit Office 365-Konto.

Beispiel: Termin erstellen

Dim olApp As Object, olTermin As Object
Set olApp = CreateObject("Outlook.Application")
Set olTermin = olApp.CreateItem(1)

With olTermin
    .Subject = "Projektbesprechung"
    .Start = #6/1/2025 10:00#
    .Duration = 60
    .Location = "Teams"
    .Save
End With

Beispiel: Mail senden

Dim olApp As Object, olMail As Object
Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0)

With olMail
    .To = "kunde@firma.de"
    .Subject = "Ihre Unterlagen"
    .Body = "Im Anhang finden Sie die gewĂŒnschten Informationen."
    .Attachments.Add "C:\Dokumente\info.pdf"
    .Send
End With

Variante 2: SharePoint/OneDrive als Backend

Access-Backend in SharePoint speichern?
Geht – aber nur in kleinen Dosen. Lieber: Access exportiert Daten auf SharePoint.

Beispiel: Access-Tabelle nach Excel exportieren

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryExport", "C:\Temp\Export.xlsx", True

Dann manuell in SharePoint-Ordner schieben.
Oder via OneDrive-Sync-Ordner automatisch.

Variante 3: Office 365-Dienste per Microsoft Graph API

Du willst Daten direkt aus Access in Teams, Planner, Kalender, OneDrive?

Dann brauchst:

  • Azure App Registration
  • Zugriffstoken per OAuth2
  • Aufruf der Graph-API per HTTP

Beispiel: Aufgabe in Planner erstellen (Voraussetzung: Token liegt vor)

Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")

Dim json As String
json = "{""title"":""Neue Aufgabe aus Access"",""planId"":""plan123"",""bucketId"":""bucket456""}"

http.Open "POST", "https://graph.microsoft.com/v1.0/planner/tasks", False
http.setRequestHeader "Authorization", "Bearer DEIN_TOKEN"
http.setRequestHeader "Content-Type", "application/json"
http.Send json

Tokenhandling ist komplex. Empfehlung: zwischenschalten via Power Automate oder Azure Function.

Variante 4: Teams-Integration per Webhook

Einfacher als Graph: Webhook in Teams einrichten → Access sendet Nachricht.

Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")

Dim json As String
json = "{""text"":""Neue Bestellung eingegangen: #4711""}"

http.Open "POST", "https://outlook.office.com/webhook/abc123", False
http.setRequestHeader "Content-Type", "application/json"
http.Send json

Reicht fĂŒr Benachrichtigungen, Statusupdates, PrĂŒfungen.

Variante 5: Power Automate als BrĂŒcke

Access → Export (z. B. Excel, CSV, JSON) → OneDrive oder SharePoint →
Power Automate erkennt Datei → sendet Mail, Teams-Nachricht, fĂŒgt Zeile in Excel/SharePoint ein

Du musst nur eine saubere Exportstruktur liefern.
Den Rest erledigt der Flow.

Best Practices

  • Access bleibt lokal – Office 365 ist Cloud → nie direkt mischen
  • REST lieber ĂŒber Middleware als direkt in VBA
  • Exportieren statt direkt schreiben (bei SharePoint/Excel)
  • Immer mit GUIDs oder IDs arbeiten (keine Freitext-Synchronisierung)
  • Statusfeld mitfĂŒhren: SyncStatus, LetzteSync, ExternID

Einsatzszenarien

  • Rechnung aus Access → als PDF per Outlook senden
  • Neue Projekte → automatisch in Teams melden
  • Aufgaben aus Access → nach Planner oder To Do exportieren
  • Daten exportieren → von Power Automate weiterverarbeiten
  • Kundeninfo in Access → Termin im Outlook-Kalender setzen

Fazit fĂŒr Entwickler

Access kann mit Office 365 reden.
Aber nie direkt und nie automatisch. Du brauchst BrĂŒcken: Outlook, HTTP, Power Automate, Middleware.

Tags:

No responses yet

Schreibe einen Kommentar

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