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.
No responses yet