Performance-Gewinne durch Backend-Trennung – Warum Frontend-Backend-Strukturen bei Microsoft Access auch heute Pflicht sind

Was heißt „Frontend-Backend“ bei Access?

Frontend = Formulare, Berichte, Abfragen, VBA
Backend = Tabellen, Daten

Zwei getrennte Dateien.
Frontend auf dem PC.
Backend auf dem Server oder Netzlaufwerk.

Verlinkung ĂŒber ODBC, UNC-Pfad oder SQL Server.
Kein Mysterium. Standardtechnik – seit 20 Jahren.

Warum das Ganze?

  • Bessere Performance
  • Weniger Datenverkehr
  • Einfacheres Deployment
  • Versionsupdates ohne Datenverlust
  • Mehr StabilitĂ€t bei AbstĂŒrzen
  • Zugriffsschutz auf Tabellenebene

Wenn Du noch alles in einer Datei hast: höchste Zeit, das zu Àndern.

Was bringt’s konkret?

Beispiel:

Access ohne Trennung lÀdt beim Start alle Objekte und puffert Daten.
Jede Formularnavigation verursacht Dateizugriffe auf die MDB/ACCDB.

Mit Trennung:
Nur die relevanten Daten werden geladen.
Formulare arbeiten gezielter.
Netzwerkverkehr sinkt massiv.

GefĂŒhlt:
Startzeit halbiert sich.
Formulare reagieren sofort.
Weniger Sperren, weniger „Nicht genĂŒgend Arbeitsspeicher“-Fehler.

Wie Du die Trennung sauber umsetzt

  1. Datenbank duplizieren
  2. Aus Frontend alle Tabellen löschen
  3. Über Externe Daten > VerknĂŒpfen auf das Backend zugreifen
  4. Nur Tabellen verknĂŒpfen – keine Abfragen oder Module
  5. Frontend lokal auf jedem Client speichern

Tipp: UNC statt Netzlaufwerksbuchstaben.
Sonst kracht’s bei falschen Laufwerkszuweisungen.

DoCmd.TransferDatabase acLink, "Microsoft Access", _
    "\\srv\data\AccessDB\backend.accdb", acTable, _
    "tblKunden", "tblKunden"

Wenn Du auf SQL Server gehst

Noch besser: Backend als SQL Server.

  • Keine Dateisperren
  • Gleichzeitiger Zugriff kein Problem
  • Zugriff ĂŒber ODBC
  • Backup, Rechte, Transaktionen – alles dabei

Tabellen werden als „verknĂŒpfte Tabelle“ eingebunden.
Oder via pass-through Queries.

Beispiel: T-SQL-Query im Access-Frontend

SELECT KundenNr, Name, Umsatz
FROM dbo.Kunden
WHERE Umsatz > 50000

Pass-through einrichten:

CurrentDb.CreateQueryDef "qryTopKunden", _
    "SELECT TOP 10 * FROM dbo.Kunden ORDER BY Umsatz DESC"

ODBC-Verbindung vorher testen – z. B. via DSN oder Connection String.

Achtung bei verknĂŒpften Tabellen

VerknĂŒpfte Tabellen sind bequem – aber langsam bei großen Datenmengen.
Deshalb:

  • Niemals SELECT *
  • Immer WHERE einschrĂ€nken
  • Möglichst keine Joins mit lokalen Tabellen

Besser:

Hole die Daten per SQL, arbeite dann lokal damit.
Zum Beispiel:

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT KundenNr, Name FROM tblKunden WHERE Aktiv = True", dbOpenSnapshot)

UpdatefÀhigkeit sichern

Wenn Du regelmĂ€ĂŸig neue Versionen des Frontends verteilst:
Arbeite mit VersionsprĂŒfung und Auto-Update beim Start.

Beispiel:

If FileDateTime("Z:\Verteilung\Frontend.accdb") > FileDateTime(CurrentDb.Name) Then
    MsgBox "Neue Version vorhanden. Anwendung wird aktualisiert.", vbInformation
    Shell "cmd /c copy Z:\Verteilung\Frontend.accdb C:\Access\Frontend.accdb", vbHide
    Application.Quit
End If

Checkliste fĂŒr saubere Trennung

PunktMuss sein
Frontend lokal✅
Backend zentral (Netzlaufwerk oder SQL Server)✅
VerknĂŒpfte Tabellen ohne AutoConnect✅
Keine Makros beim Öffnen von Tabellen✅
Abfragen als pass-through, wenn möglich✅
Formulare nur mit aktuellen DatensĂ€tzen öffnen✅

Mein Fazit

Trennung lohnt sich.
Du bekommst Geschwindigkeit, StabilitÀt und saubere Upgrades.
Access ist dann kein Flickwerk mehr – sondern ein professionelles Werkzeug.

Wenn Du willst, bauen wir Dir ein Verteilsystem, das automatisch prĂŒft, verknĂŒpft, aktualisiert.
Dann lĂ€uft’s auch im KMU-Alltag zuverlĂ€ssig – norddeutsch solide.

Kategorien:

Keine Antworten

Schreibe einen Kommentar

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