Access lebt – aber nicht von allein
Du kennst das:
Die Access-Lösung läuft seit Jahren.
Keiner weiß mehr genau, wie.
Aber wehe, sie fällt mal aus.
Zeit für Struktur.
Zeit für eine Modernisierung – ohne alles neu zu bauen.
Ich zeig Dir, wie ich das mache.
Klar. Schrittweise. Ohne Panik.
Phase 1: Bestand erfassen
Was ist da? Was läuft wo? Wer nutzt was?
Typische Fragen:
- Gibt es eine Frontend/Backend-Trennung?
- Liegen Daten auch in Excel, SharePoint oder SQL?
- Welche Funktionen sind kritisch (Rechnungen, Lager, …)?
- Gibt es VBA-Code – wenn ja, wie viel?
Tipp: Documenter
in Access hilft – oder Du liest alles per VBA aus:
Sub ZeigeAlleFormulare()
Dim obj As AccessObject
For Each obj In CurrentProject.AllForms
Debug.Print obj.Name
Next obj
End Sub
Phase 2: Struktur schaffen
Access-Anwendungen ohne Versionskontrolle oder Modularisierung sind schwer wartbar.
Maßnahmen:
- Nur ein Master-Frontend → regelmäßig verteilen
- Alle Tabellen verknüpft – keine lokal gespeicherten Daten im Frontend
- Module benennen nach Zweck:
mdlDaten
,mdlExport
,mdlLogik
- Fehlerbehandlung zentralisieren
Beispiel:
Public Sub ZeigeFehler(Optional Modulname As String = "")
MsgBox "Fehler " & Err.Number & ": " & Err.Description & vbCrLf & Modulname, vbCritical
End Sub
Phase 3: Backendanalyse & SQL-Strategie
MDB ist tot.
ACCDB ist okay.
SQL Server ist besser.
Empfohlene Tabelle:
Typ | Empfehlung |
---|---|
Stammdaten | SQL Server oder lokal |
Bewegungsdaten | SQL Server |
Protokolle / Logs | Cloud oder zentral |
Exporttabellen | temporär im Frontend |
Migrationshilfe per T-SQL:
SELECT * INTO dbo.NeueTabelle
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Access Database=C:\Pfad\Daten.accdb;',
'SELECT * FROM Tabelle1')
Danach: verknüpfen per ODBC.
Phase 4: Schnittstellen und Automatisierung
Access kann nicht alles – muss es auch nicht.
Stattdessen:
- Export nach Excel per
DoCmd.TransferSpreadsheet
- Aufruf von Power Automate Flows per HTTP
- PDF-Generierung extern auslagern
Beispiel: HTTP POST aus VBA
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", "https://meinflow.azurelogicapps.net/api/start", False
http.setRequestHeader "Content-Type", "application/json"
http.Send "{""Auftrag"":12345}"
Phase 5: Reporting raus aus Access
Berichte in Access sind starr.
Power BI ist das bessere Werkzeug.
Vorgehen:
- Abfragen in Access sauber aufbauen
- Power BI verbindet sich direkt zur ACCDB oder SQL
- Datenmodell dort bauen, nicht in Access
- Bericht per Web teilen – mobil, aktuell, interaktiv
Tipp: Query im Access vorbereiten, dann in Power BI nutzen:
SELECT KundenNr, Jahr, SUM(Betrag) AS Umsatz
FROM tblRechnungen
GROUP BY KundenNr, Jahr
Phase 6: Oberfläche modernisieren
- Splashscreen beim Start
- Navigationsformular statt Menüleiste
- Icons modernisieren (PNG statt Classic-Access-Symbole)
- Steuerelemente logisch gruppieren
- Formularnamen und Beschriftungen vereinheitlichen
Formular-Eigenschaften:
- BorderStyle = „Ohne“
- PopUp = Ja
- Modal = Ja
- Hintergrund = RGB(245,245,245)
Optional mit einfacher Animation:
Private Declare PtrSafe Function AnimateWindow Lib "user32" _
(ByVal hwnd As LongPtr, ByVal dwTime As Long, ByVal dwFlags As Long) As Long
Private Sub Form_Load()
AnimateWindow Me.hwnd, 300, &H80000 ' AW_BLEND
End Sub
Phase 7: Update & Verteilung automatisieren
Access-Frontend gehört lokal auf jeden Client.
Verteilung per Login-Skript oder Auto-Updater.
Beispiel:
If FileDateTime("P:\Verteilung\Frontend.accdb") > FileDateTime(CurrentDb.Name) Then
MsgBox "Neue Version. Bitte schließen und aktualisieren.", vbInformation
Application.Quit
End If
Oder automatisch per Batch/PowerShell kopieren.
Mein Fazit
Access bleibt sinnvoll – wenn Du es sauber strukturierst.
Mit SQL, Power BI und Cloud-Anbindung wird’s modern.
Und bleibt trotzdem übersichtlich.
Wenn Du willst, zeig ich Dir, wie Du Schritt für Schritt modernisieren kannst.
Kein Big Bang. Kein Risiko.
Einfach zukunftsfähig – norddeutsch solide.
Keine Antworten