Wenn Access nicht ersetzt, sondern ergänzt

Microsoft will in die Cloud.
Und Access? Ist immer noch da.
Zuverlässig. Schnell gebaut.
Aber eben lokal.

Die gute Nachricht: Du kannst Access mit Dataverse verbinden.
Ohne gleich alles neu zu bauen.
Frontend bleibt. Backend wird moderner.

Was ist Dataverse?

Dataverse ist die Datenplattform in Microsoft 365.
Hinter Power Apps, hinter Teams-Listen, hinter Dynamics.
Relationale Tabellen. Rechteverwaltung. Versionskontrolle.
Und: per OData erreichbar.

Warum ich Access + Dataverse kombiniere

  • Benutzer wollen ihre gewohnten Formulare
  • Daten sollen sicher in der Cloud liegen
  • Web-Zugriff via Power Platform später möglich
  • Rollen und Sicherheitsgruppen zentral gesteuert
  • Keine eigene SQL-Infrastruktur nötig

Kurz: Access bleibt lokal – aber greift online auf Dataverse zu.

Access mit Dataverse verbinden

Du brauchst:

  • Access ab Version 2103
  • Microsoft 365-Konto mit Power Platform-Lizenz
  • Umgebungs-URL z. B. https://orgname.crm4.dynamics.com

Dann:

  1. In Access → Externe Daten → Neue Datenquelle → Von Online-Diensten → Dataverse
  2. Mit Microsoft 365-Konto anmelden
  3. Tabellen auswählen (z. B. accounts, contacts)
  4. Tabellen werden lokal verknüpft (ähnlich wie bei SQL Server)

Tabellennamen und Primärschlüssel

Achte auf:

  • Primärschlüssel ist GUID (z. B. accountid)
  • Feldnamen sind oft schemaname_logischername
  • Beziehungen kommen mit (aber manchmal fehlerhaft)

Beispiel: Tabelle contacts → Feld parentcustomerid_account

Beispiel: Neue Datenzeile per VBA einfügen

Public Sub NeuerKontakt()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs = db.OpenRecordset("contacts", dbOpenDynaset)

    rs.AddNew
    rs!firstname = "Max"
    rs!lastname = "Muster"
    rs!emailaddress1 = "max@firma.de"
    rs.Update

    MsgBox "Kontakt angelegt."
End Sub

Wichtig: GUIDs müssen gültig sein.
Für Beziehungen brauchst Du referenzierbare IDs.

GUID erzeugen für neue Objekte

Public Function NeueGUID() As String
    Dim g As GUID
    CoCreateGuid g
    NeueGUID = "{" & _
        Hex$(g.Data1) & "-" & _
        Hex$(g.Data2) & "-" & _
        Hex$(g.Data3) & "-" & _
        Hex$(g.Data4(0)) & Hex$(g.Data4(1)) & "-" & _
        Hex$(g.Data4(2)) & Hex$(g.Data4(3)) & Hex$(g.Data4(4)) & Hex$(g.Data4(5)) & _
        Hex$(g.Data4(6)) & Hex$(g.Data4(7)) & "}"
End Function

Nur nötig, wenn Du GUIDs selbst generieren willst – meistens besser: Autowert nutzen.

Lesende Abfragen: OData-Grenzen kennen

  • Kein SELECT *
  • Kein TOP n in SQL
  • Access übersetzt intern in OData

Wenn Du Performance brauchst: lieber DoCmd.TransferSpreadsheet mit gefilterter Abfrage auf Dataverse (Power Query, Power Automate).

Tabelle: Vor- und Nachteile Access + Dataverse

VorteilNachteil
Bestehende Masken nutzbarPerformance bei großen Datenmengen
Kein SQL Server nötigKeine komplexen Abfragen im SQL-Fenster
Rollensteuerung über Azure ADGUIDs erschweren manuelle Bearbeitung
Kombinierbar mit Power AppsEinschränkungen bei VBA-Funktionalität

Mein Setup für Access mit Dataverse

BereichUmsetzung
Tabellenzugriffverknüpft über Dataverse-Connector
BackendDataverse Cloud-Datenbank
AuthentifizierungMicrosoft 365 via Azure AD
Offlinefähigkeitkeine – nur bei aktiver Verbindung
ErweiterungPower Automate für E-Mail-Benachrichtigungen etc.

Mit Dataverse bringst Du es in die Cloud – ohne Deine Nutzer zu verschrecken.

Und wenn’s später mal doch Power Apps werden soll,
hast Du die Daten schon da, wo sie hin sollen.

Tags:

No responses yet

Schreibe einen Kommentar

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