ERP-Integration: Wie kann ich Access-Datenbanken mit ERP-Systemen integrieren?

Ausgangslage: Access kennt Prozesse, ERP kennt den Bestand

👀 Access ist oft schneller, flexibler, leichter zu Ă€ndern.
😉 ERP-Systeme sind oft schwerfĂ€llig, aber zentral.
Du willst: Access soll Daten lesen, schreiben oder veredeln – ohne das ERP zu gefĂ€hrden.

Also: Schnittstelle bauen. Nicht am ERP vorbei.
Und: Datenmodelle sauber trennen.

Variante 1: ODBC-Zugriff auf ERP-Datenbank

Viele ERP-Systeme basieren auf SQL Server, Oracle oder PostgreSQL.
ODBC-Verbindung erlaubt Zugriff aus Access.

Beispiel: Artikelstamm lesen

Dim cnn As Object, rs As Object
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cnn.Open "Driver={SQL Server};Server=SRV01;Database=ERP_DB;Trusted_Connection=Yes;"
rs.Open "SELECT ArtikelNr, Bezeichnung FROM dbo.Artikel WHERE Aktiv = 1", cnn

Do Until rs.EOF
    Debug.Print rs!ArtikelNr & " - " & rs!Bezeichnung
    rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cnn.Close: Set cnn = Nothing

Nur Lesezugriff. Schreibzugriff nur nach Absprache mit ERP-Admin.

Variante 2: Datenexport aus dem ERP verarbeiten

ERP exportiert Daten als CSV, XML oder Excel.
Access liest diese regelmĂ€ĂŸig ein.

Beispiel: Auftragsexport verarbeiten

DoCmd.TransferText acImportDelim, , "tmp_AuftrÀge", "C:\Import\erp_auftrÀge.csv", True

CurrentDb.Execute "INSERT INTO tblAuftrÀge (AuftragsNr, Kunde, Datum) SELECT AuftragsNr, Kunde, Datum FROM tmp_AuftrÀge", dbFailOnError

Nach Verarbeitung: Archivieren oder löschen.

Variante 3: API-basierte Integration (z. B. SAP, weclapp, Dynamics)

Moderne ERP-Systeme bieten REST-APIs.
Access kann mit MSXML2.XMLHTTP oder Power Automate darauf zugreifen.

Beispiel: GET aus REST-API

Public Function HoleERPArtikel() As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", "https://api.erp.de/v1/articles", False
    http.setRequestHeader "Authorization", "Bearer geheimtoken123"
    http.Send

    HoleERPArtikel = http.responseText
End Function

Ergebnis ist JSON → weiterverarbeiten oder in Tabelle schreiben.

Beispiel: POST an ERP (Neuer Auftrag)

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

    Dim body As String
    body = "{""kunde"":""4711"",""artikel"":""A-123"",""menge"":10}"

    http.Open "POST", "https://api.erp.de/v1/orders", False
    http.setRequestHeader "Authorization", "Bearer geheimtoken123"
    http.setRequestHeader "Content-Type", "application/json"
    http.Send body
End Function

Variante 4: ERP-Integration ĂŒber Power Automate

Access → exportiert CSV oder JSON
Power Automate → importiert in Dynamics, SAP o. À.
Antwort → in Datei schreiben oder in Tabelle zurĂŒckgeben

Vorteil: Kein Token-Handling in VBA nötig
Nachteil: Nur fĂŒr Cloud-ERP praktikabel

Synchronisation mit Access: Wichtige Punkte

  • Nie direkt in ERP-Tabellen schreiben (außer in sauber dokumentierte Staging-Tabellen)
  • Keine PrimĂ€rschlĂŒssel verĂ€ndern
  • Alle Zugriffe protokollieren (Tabelle tblSyncLog)
  • Nur verĂ€nderte DatensĂ€tze ĂŒbertragen
  • Konflikte vermeiden: LetzteÄnderung, SyncStatus, GUIDs nutzen

Beispiel: Änderungsmarkierung in Access

If Me.Dirty Then
    Me.SyncStatus = "Zu senden"
    Me.LetzteÄnderung = Now()
End If

SpÀter:

SELECT * FROM tblKunden WHERE SyncStatus = 'Zu senden'

Nur das wird ans ERP ĂŒbertragen.

Typische Einsatzszenarien

  • Preispflege in Access → Upload ins ERP
  • AußendienstauftrĂ€ge → ins ERP schreiben
  • Artikel- und Lagerdaten aus ERP → lokal verarbeiten
  • Rechnungskopien aus ERP → in Access auswerten
  • MahnlĂ€ufe oder Freigaben in Access erfassen → ERP synchronisieren

Fazit fĂŒr Entwickler

Access + ERP ist kein Widerspruch.
Du brauchst saubere Übergabepunkte, Logging, klare ZustĂ€ndigkeiten.

Access kann helfen, das ERP schlanker zu machen – nicht zu ersetzen.

Kategorien:

Keine Antworten

Schreibe einen Kommentar

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