Von Access nach SQL Server: Was sich ändert – und was nicht

Montag. Kaffee. Und eine unbequeme Wahrheit zum Wochenstart:

Die meisten Unternehmen schieben die Migration von Access zu SQL Server jahrelang vor sich her – aus Angst vor dem Unbekannten. Dabei ist das Unbekannte meistens kleiner als die Angst.

Ich sage das nicht, um die Migration kleinzureden. Es gibt echte Unterschiede, echte Stolpersteine und echte Entscheidungen, die man treffen muss. Aber wer Access kennt und versteht, hat bereits das wichtigste Rüstzeug für den nächsten Schritt. Was sich wirklich verändert, und was erstaunlich vertraut bleibt, möchte ich heute aufzeigen.

Was bleibt: Das Frontend arbeitet weiter

Hier liegt eine der größten Überraschungen für alle, die die Migration scheuen: Die Access-Oberfläche bleibt in der Regel unangetastet. Formulare, Berichte, VBA-Code, Schaltflächen, Steuerelemente – all das läuft weiter, wenn man das sogenannte Upsizing sauber durchführt.

Access wird dabei zum reinen Frontend. Die Tabellen wandern in den SQL Server, die Anwendung verbindet sich über verknüpfte Tabellen oder ODBC-Verbindungen mit dem neuen Backend. Für die Nutzer ändert sich optisch nichts. Das ist kein Trick – das ist Architektur.

VBA-Code, der Formularfelder ausliest, Datensätze filtert oder Berichte aufruft, funktioniert in den meisten Fällen ohne Anpassung weiter. Wer sauber mit Recordsets und DAO oder ADO gearbeitet hat, kommt gut durch.

Was sich ändert: Das Backend denkt anders

Der SQL Server ist kein größerer Access. Er ist ein anderes Werkzeug mit anderen Stärken – und anderen Erwartungen an die Abfragesprache.

Wer bisher in Access-Abfragen mit vertrauten Funktionen gearbeitet hat, trifft beim SQL Server auf neue Syntax. Zwei Beispiele, die praktisch in jeder Migration auftauchen:

IIf wird zu CASE WHEN

In Access schreibt man:
`sql
IIf([Status] = „aktiv“, „Ja“, „Nein“)
`

Im SQL Server lautet die Entsprechung:
`sql
CASE WHEN Status = ‚aktiv‘ THEN ‚Ja‘ ELSE ‚Nein‘ END
`

Länger, expliziter – aber auch klarer lesbar, wenn man sich einmal daran gewöhnt hat.

Nz wird zu ISNULL

Access-Entwickler nutzen Nz(), um NULL-Werte durch einen Standardwert zu ersetzen:
`sql
Nz([Umsatz], 0)
`

Im SQL Server übernimmt das ISNULL():
`sql
ISNULL(Umsatz, 0)
`

Funktionell identisch, syntaktisch anders. Wer eine größere Datenbank migriert, sollte sich auf eine systematische Suche nach solchen Funktionen vorbereiten – am besten mit einer Liste aller verwendeten Access-spezifischen Ausdrücke.

Sicherheit: Endlich erwachsen werden

Access-Datenbanken haben ein strukturelles Problem, das viele jahrelang ignorieren: Sicherheit ist dort bestenfalls rudimentär. Datenbankschutz über Passwörter auf MDB-Ebene, geteilte Netzwerkordner, keine echte Benutzerverwaltung – das funktioniert in kleinen Teams, ist aber kein Fundament.

Der SQL Server bringt echtes Rechtemanagement mit. Logins, Datenbankbenutzer, Rollen, granulare Berechtigungen auf Tabellen- und Spaltenebene. Das bedeutet anfänglich mehr Konfigurationsaufwand, aber auch deutlich mehr Kontrolle und Revisionssicherheit.

Für Unternehmen, die mit sensiblen Kundendaten arbeiten oder Compliance-Anforderungen erfüllen müssen, ist dieser Schritt allein schon eine ausreichende Begründung für die Migration.

Ein weiterer Sicherheitsgewinn: Der SQL Server läuft auf einem dedizierten Server oder in der Cloud, nicht als Datei im Netzwerkordner. Das reduziert Risiken durch versehentliches Löschen, Beschädigung oder unberechtigten Zugriff erheblich.

Fazit: Kein Sprung ins Ungewisse, sondern ein Schritt nach vorn

Eine Access-zu-SQL-Server-Migration ist kein Neustart. Sie ist eine Weiterentwicklung. Das Frontend bleibt, die Logik bleibt, die Nutzer merken oft wenig. Was sich ändert, ist die Grundlage: stabiler, skalierbarer, sicherer.

Die eigentliche Arbeit liegt in der Vorbereitung: Abfragen prüfen, Funktionen übersetzen, Berechtigungen planen. Wer das strukturiert angeht, erlebt selten böse Überraschungen.

Meine provokante These für diese Woche lautet: Nicht die Technologie ist das größte Hindernis bei solchen Migrationen – sondern die Überzeugung, dass es schon so halbwegs funktioniert. Halbwegs ist kein Fundament.

Was war euer größter Stolperstein bei der Migration von Access zu SQL Server? Ich freue mich auf eure Erfahrungen in den Kommentaren.

Nach oben scrollen