Daten-Workflows mit Access + WordPress automatisieren – mein Ansatz mit VBA, Power Automate und REST

Warum ich das so mache

Access ist oft der operative Dreh- und Angelpunkt.
WordPress dagegen liefert Kundenportal, E-Commerce, Formulare.
Zwischen beiden Welten fehlt die Verbindung – zumindest, wenn man’s nicht selbst baut.

Ich nutze drei Tools:

  • VBA fĂŒr Zugriff und Steuerung
  • Power Automate fĂŒr einfache Event-Trigger
  • REST fĂŒr saubere Kommunikation mit WordPress

Kombiniert ergibt das einen robusten, wartbaren Workflow.

1. Grundidee: Trigger, Zugriff, RĂŒckmeldung

Beispiel-Workflow:

  • Kunde fĂŒllt Formular auf WordPress aus
  • Power Automate erkennt neuen WP-Post (z. B. CPT „anfrage“)
  • Power Automate ruft lokalen Access-Webhook oder REST-Endpunkt auf
  • Access verarbeitet den Datensatz
  • Ergebnis wird per REST zurĂŒck an WordPress geschrieben

2. Power Automate: Auslöser definieren

Ich nutze das WordPress Plugin „WP Webhooks“ oder „WP REST API Controller“.
Damit kommt ein HTTP-Trigger ins Spiel.

Beispiel: Neuer Beitrag mit CPT „anfrage“

Power Automate Trigger

  • Typ: HTTP Request
  • Methode: POST
  • JSON-Schema passend zum WP-POST-Format

Dann leite ich den Payload weiter an meine Access-Instanz – z. B. ĂŒber ein kleines Lokalskript mit REST-Endpunkt (z. B. mit AutoHotkey, Caddy, oder VBA+Winsock).

3. Access: REST-Client per VBA

REST-Call an WordPress (POST)

Function SendeDatenNachWordPress(jsonPayload As String) As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "POST", "https://meineseite.de/wp-json/wp/v2/anfrage", False
    http.setRequestHeader "Content-Type", "application/json"
    http.setRequestHeader "Authorization", "Bearer " & HoleToken()

    http.Send jsonPayload

    SendeDatenNachWordPress = http.responseText
End Function

Token holen (einmalig manuell erzeugt)

Function HoleToken() As String
    ' Token aus Datei oder Registry laden
    HoleToken = DLookup("wert", "einstellungen", "bezeichnung = 'wp_token'")
End Function

4. Datenmappen: WordPress ↔ Access

Die Felder aus WordPress kommen oft als meta oder acf.
Ich nutze eine zentrale Tabelle zur Feldzuordnung:

wp_fieldaccess_feld
vornamekdn_vorname
nachnamekdn_nachname
telefonkdn_telefon

Dann baue ich daraus ein Mapping in VBA:

Function WPZuAccess(wpData As Dictionary) As Dictionary
    Dim rs As DAO.Recordset
    Dim result As New Dictionary

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM feldmapping")
    Do While Not rs.EOF
        If wpData.Exists(rs!wp_field) Then
            result.Add rs!access_feld, wpData(rs!wp_field)
        End If
        rs.MoveNext
    Loop
    WPZuAccess = result
End Function

5. RĂŒckmeldung an WordPress

Wenn Access fertig ist, schicke ich optional eine Statusmeldung zurĂŒck.

Beispiel: CPT-Feld „status“ auf „erledigt“ setzen

Function UpdateWPStatus(id As Long, status As String)
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "POST", "https://meineseite.de/wp-json/wp/v2/anfrage/" & id, False
    http.setRequestHeader "Content-Type", "application/json"
    http.setRequestHeader "Authorization", "Bearer " & HoleToken()

    Dim body As String
    body = "{""fields"":{""status"":""" & status & """}}"

    http.Send body
End Function

6. Extras: Zeitsteuerung aus Access

Ich habe in Access eine Tabelle „cronjobs“, die wie ein lokaler Job-Scheduler funktioniert:

nameletztausfintervall_minfunktion
abruf_wp2025-05-30 08:3030AbrufOffeneAnfragen

Dann rufe ich im 5-Minuten-Takt per Timer:

If DateDiff("n", Nz(DLookup("letztAusf", "cronjobs", "name = 'abruf_wp'"), #1/1/2000#), Now) >= 30 Then
    Call AbrufOffeneAnfragen
    CurrentDb.Execute "UPDATE cronjobs SET letztausf = Now WHERE name = 'abruf_wp'"
End If

7. Fehlerhandling & Logging

Alle REST-Calls logge ich in einer Tabelle:

zeitpunktaktionstatuscoderesponse
2025-05-30 08:15Anfrage an WP200{„id“: 123, …}

Und falls nötig, wird automatisch eine Mail generiert oder ein Retry gesetzt.

Du brauchst keine Mega-Architektur.

Mit Access, VBA, Power Automate und ein bisschen REST hast Du saubere, wartbare Workflows zwischen Backoffice und Website.

Keine Antworten

Schreibe einen Kommentar

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