Von Access zum SQL Server: Der Einstieg

Autor: Klaus Giesen, Wuppertal

Obwohl Access nicht nur ein komfortables, sondern auch ein leistungsfähiges Datenbanksystem ist, kann es vorkommen, dass Sie an seine Leistungsgrenzen stoßen. Diese Situation wird zwar nur bei einem Einsatz von Access in einer Netzwerkumgebung auftreten, doch da gerade Access sehr häufig auch in einer solchen Umgebung eingesetzt wird, ist auch diese Thematik für einen größeren Personenkreis relevant. Glücklicherweise stellt Ihnen Access 2000 zur Lösung einer solchen Problematik eine verblüffend einfache und obendrein auch noch preiswerte Lösung zur Verfügung: Die so genannte MSDE, die ein zwar abgespeckter, aber trotzdem vollwertiger und leistungsfähiger SQL-Server ist.

Dieser Beitrag soll zeigen, wie Sie eine Access-Datenbank auf den SQL-Server bzw. die MSDE portieren. Es geht dabei lediglich um einen Einstieg in die Welt der SQL-Server. Andererseits ist dieser Lösungsansatz sicherlich für einen Großteil der Anforderungen vollkommen ausreichend.

Bei der Portierung einer Access-Datenbank auf die MSDE gibt es verschiedene Regeln zu beachten, die mit unterschiedlichen Datentypen, eingebauten Funktionen und der unterschiedlichen Funktionalität zusammenhängen. Außerdem verfügt ein Access-Projekt bzw. die MSDE über Objekte, die eine Access-MDB gar nicht kennt.

Aus Platzgründen wird nur auf die wichtigsten Unterschiede eingegangen. Einzelheiten entnehmen Sie der Dokumentation zur MSDE.

Gegenüberstellung von Datenbankobjekten

Zunächst eine Gegenüberstellung von Datenbankobjekten, die Ihnen in einem Access-Projekt bzw. in einer Access-MDB begegnen können (s. Tabelle 1).

Access-MDB

Access-Projekt

Tabelle

Tabelle

Auswahlabfrage

Sicht (View)

Aktions- bzw. Parameterabfrage

Gespeicherte Prozedur

Beziehung

Datenbankdiagramm

Formular

Formular

Bericht

Bericht

Datenzugriffsseite

Datenzugriffsseite

Makro

Makro

Modul

Modul

Tab. 1: Gegenüberstellung von Datenbankobjekten

Die typischen MSDE-Objekte werden weiter unten erläutert.

Gegenüberstellung von Datentypen

In Access stehen neun Datentypen zur Verfügung, wobei beim Datentyp Zahl über die Eigenschaft Feldgröße weitere Einstellungen vorgenommen werden können. Die MSDE kennt einige weitere Datentypen (s. Tabelle 2).

Hyperlink-Felder aus Access werden in den Datentyp NTEXT umgewandelt und verlieren ihre Funktionalität.

MSDE

Access

VARCHAR, NVARCHAR

Text

CHAR, NCHAR

Text

TEXT, NTEXT

Memo

TINYINT

Zahl (Byte)

SMALLINT

Zahl (Integer)

INT

Zahl, AutoWert (Long Integer)

REAL

Zahl (Single)

FLOAT

Zahl (Double)

UNIQUEIDENTIFIER

Zahl (Replikations-ID)

BIT

Ja/Nein

MONEY, SMALLMONEY

Währung

DATETIME, SMALLDATETIME

Datum/Zeit

IMAGE

OLE-Objekt

keine Entsprechung

Hyperlink

TIMESTAMP

keine Entsprechung

Tab. 2: Gegenüberstellung der Datentypen

Weiterhin erlaubt die MSDE noch benutzerdefinierte Datentypen, für die es bei Access kein Gegenstück gibt.

Gegenüberstellung des SQL-Befehlssatzes

Der SQL-Befehlssatz von Access und der MSDE bzw. dessen Implementierung ist in einigen Punkten doch recht unterschiedlich. Neben Zeichen und Operatoren (letzter Abschnitt) gibt es weitere wichtige Unterschiede:

Ausgabefelder

Access erlaubt in einer Abfrage mehrere Ausgabefelder mit gleichem Namen, die MSDE erlaubt dies in einem View nicht.

SQL-Element DISTINCTROW

Access unterstützt dieses Element und erlaubt darüber hinaus die Auswahl von eindeutigen Datensätzen. Die MSDE unterstützt diese Funktionen nicht.

Vergleich von

Access

MSDE

Datumsangaben

Leiterzeichen (#)

Einfaches Anführungszeichen (“)

Zeichenfolge

Einfaches (“) oder doppelte Anführungszeichen („)

Einfaches Anführungszeichen (“)

Mod-Operator

Mod

Prozentzeichen (%)

Verkettung von Zeichenfolgen

Ampersand (&)

Pluszeichen (+)

Platzhalter für ein einzelnes Zeichen

Fragezeichen ()

Unterstrich (_)

Platzhalter für keines oder mehrere Zeichen

Sternzeichen (*)

Prozentzeichen (%)

Konstante für True

Ja, Ein, Wahr, -1

1

Konstante für False

Nein, Aus, Falsch, 0

0

Tab. 3: Vergleich von Trennzeichen und Operatoren

SQL-Befehle COMMIT UND LOCK

Diese SQL-Befehle für Zugriffsrechte werden von Access nicht unterstützt, können dort aber mithilfe von VBA nachgebildet werden.

VBA-Anweisungen in SQL

Access erlaubt die Verwendung von beliebigen SQL-Anweisungen. Diese nicht unerhebliche Funktionserweiterung steht für die MSDE nicht zur Verfügung.

Trennzeichen und Operatoren

Die MSDE und Access verwenden unterschiedliche Trennzeichen, Operatoren, Platzhalterzeichen in der WHERE-Klausel eines SQL-Strings und Zeichen für Datums- bzw. Textangaben.

Die Unterschiede werden in Tabelle 3 gegenübergestellt.

Bild 1: Datenbankdiagramm

Bild 2: Formular-Steuerelement als Kriterium in einer Access-Auswahlabfrage

Spezielle MSDE-Objekte

In den folgenden Abschnitten lernen Sie einige typische MSDE-Objekte und ihre wichtigsten Eigenschaften kennen.

Datenbankdiagramme

Datenbankdiagramme entsprechen im Prinzip dem Beziehungsfenster von Access.

Nur können dort neben dem reinen Festlegen und Bearbeiten von Beziehungen beispielsweise auch Tabellen- und Feldeigenschaften sowie Indizes angelegt bzw. bearbeitet werden (siehe Bild 1).

Views

Views entsprechen den Auswahlabfragen in Access – mit einigen wichtigen Unterschieden:

  • Die Verwendung der ORDER BY-Klausel ist nicht möglich. Eine gewünschte Sortierung muss mithilfe einer gespeicherten Prozedur realisiert werden.
  • Views dürfen keine Parameter enthalten. Auch hier muss eine gespeicherte Prozedur verwendet werden, falls Parameter übergeben werden müssen.
  • Views können keine Verweise auf Formulare oder Steuerelemente in Formularen enthalten.
  • Sie können beispielsweise keine Kriterien in Sichten verwenden, wie Sie das bisher in Access-Abfragen getan haben – z. B. wie in der in Bild 2 dargestellten Abfrage.

    Gespeicherte Prozeduren

    Gespeicherte Prozeduren (englisch Stored Procedures) sind vorkompilierter Code, der serverseitig ausgeführt wird (siehe Bild 3).

    Autor: Klaus Giesen, Wuppertal

    Obwohl Access nicht nur ein komfortables, sondern auch ein leistungsfähiges Datenbanksystem ist, kann es vorkommen, dass Sie an seine Leistungsgrenzen stoßen. Diese Situation wird zwar nur bei einem Einsatz von Access in einer Netzwerkumgebung auftreten, doch da gerade Access sehr häufig auch in einer solchen Umgebung eingesetzt wird, ist auch diese Thematik für einen größeren Personenkreis relevant. Glücklicherweise stellt Ihnen Access 2000 zur Lösung einer solchen Problematik eine verblüffend einfache und obendrein auch noch preiswerte Lösung zur Verfügung: Die so genannte MSDE, die ein zwar abgespeckter, aber trotzdem vollwertiger und leistungsfähiger SQL-Server ist.

    Dieser Beitrag soll zeigen, wie Sie eine Access-Datenbank auf den SQL-Server bzw. die MSDE portieren. Es geht dabei lediglich um einen Einstieg in die Welt der SQL-Server. Andererseits ist dieser Lösungsansatz sicherlich für einen Großteil der Anforderungen vollkommen ausreichend.

    Bei der Portierung einer Access-Datenbank auf die MSDE gibt es verschiedene Regeln zu beachten, die mit unterschiedlichen Datentypen, eingebauten Funktionen und der unterschiedlichen Funktionalität zusammenhängen. Außerdem verfügt ein Access-Projekt bzw. die MSDE über Objekte, die eine Access-MDB gar nicht kennt.

    Aus Platzgründen wird nur auf die wichtigsten Unterschiede eingegangen. Einzelheiten entnehmen Sie der Dokumentation zur MSDE.

    Gegenüberstellung von Datenbankobjekten

    Zunächst eine Gegenüberstellung von Datenbankobjekten, die Ihnen in einem Access-Projekt bzw. in einer Access-MDB begegnen können (s. Tabelle 1).

    Access-MDB

    Access-Projekt

    Tabelle

    Tabelle

    Auswahlabfrage

    Sicht (View)

    Aktions- bzw. Parameterabfrage

    Gespeicherte Prozedur

    Beziehung

    Datenbankdiagramm

    Formular

    Formular

    Bericht

    Bericht

    Datenzugriffsseite

    Datenzugriffsseite

    Makro

    Makro

    Modul

    Modul

    Tab. 1: Gegenüberstellung von Datenbankobjekten

    Die typischen MSDE-Objekte werden weiter unten erläutert.

    Gegenüberstellung von Datentypen

    In Access stehen neun Datentypen zur Verfügung, wobei beim Datentyp Zahl über die Eigenschaft Feldgröße weitere Einstellungen vorgenommen werden können. Die MSDE kennt einige weitere Datentypen (s. Tabelle 2).

    Hyperlink-Felder aus Access werden in den Datentyp NTEXT umgewandelt und verlieren ihre Funktionalität.

    MSDE

    Access

    VARCHAR, NVARCHAR

    Text

    CHAR, NCHAR

    Text

    TEXT, NTEXT

    Memo

    TINYINT

    Zahl (Byte)

    SMALLINT

    Zahl (Integer)

    INT

    Zahl, AutoWert (Long Integer)

    REAL

    Zahl (Single)

    FLOAT

    Zahl (Double)

    UNIQUEIDENTIFIER

    Zahl (Replikations-ID)

    BIT

    Ja/Nein

    MONEY, SMALLMONEY

    Währung

    DATETIME, SMALLDATETIME

    Datum/Zeit

    IMAGE

    OLE-Objekt

    keine Entsprechung

    Hyperlink

    TIMESTAMP

    keine Entsprechung

    Tab. 2: Gegenüberstellung der Datentypen

    Weiterhin erlaubt die MSDE noch benutzerdefinierte Datentypen, für die es bei Access kein Gegenstück gibt.

    Gegenüberstellung des SQL-Befehlssatzes

    Der SQL-Befehlssatz von Access und der MSDE bzw. dessen Implementierung ist in einigen Punkten doch recht unterschiedlich. Neben Zeichen und Operatoren (letzter Abschnitt) gibt es weitere wichtige Unterschiede:

    Ausgabefelder

    Access erlaubt in einer Abfrage mehrere Ausgabefelder mit gleichem Namen, die MSDE erlaubt dies in einem View nicht.

    SQL-Element DISTINCTROW

    Access unterstützt dieses Element und erlaubt darüber hinaus die Auswahl von eindeutigen Datensätzen. Die MSDE unterstützt diese Funktionen nicht.

    Vergleich von

    Access

    MSDE

    Datumsangaben

    Leiterzeichen (#)

    Einfaches Anführungszeichen (“)

    Zeichenfolge

    Einfaches (“) oder doppelte Anführungszeichen („)

    Einfaches Anführungszeichen (“)

    Mod-Operator

    Mod

    Prozentzeichen (%)

    Verkettung von Zeichenfolgen

    Ampersand (&)

    Pluszeichen (+)

    Platzhalter für ein einzelnes Zeichen

    Fragezeichen ()

    Unterstrich (_)

    Platzhalter für keines oder mehrere Zeichen

    Sternzeichen (*)

    Prozentzeichen (%)

    Konstante für True

    Ja, Ein, Wahr, -1

    1

    Konstante für False

    Nein, Aus, Falsch, 0

    0

    Tab. 3: Vergleich von Trennzeichen und Operatoren

    SQL-Befehle COMMIT UND LOCK

    Diese SQL-Befehle für Zugriffsrechte werden von Access nicht unterstützt, können dort aber mithilfe von VBA nachgebildet werden.

    VBA-Anweisungen in SQL

    Access erlaubt die Verwendung von beliebigen SQL-Anweisungen. Diese nicht unerhebliche Funktionserweiterung steht für die MSDE nicht zur Verfügung.

    Trennzeichen und Operatoren

    Die MSDE und Access verwenden unterschiedliche Trennzeichen, Operatoren, Platzhalterzeichen in der WHERE-Klausel eines SQL-Strings und Zeichen für Datums- bzw. Textangaben.

    Die Unterschiede werden in Tabelle 3 gegenübergestellt.

    Bild 1: Datenbankdiagramm

    Bild 2: Formular-Steuerelement als Kriterium in einer Access-Auswahlabfrage

    Spezielle MSDE-Objekte

    In den folgenden Abschnitten lernen Sie einige typische MSDE-Objekte und ihre wichtigsten Eigenschaften kennen.

    Datenbankdiagramme

    Datenbankdiagramme entsprechen im Prinzip dem Beziehungsfenster von Access.

    Nur können dort neben dem reinen Festlegen und Bearbeiten von Beziehungen beispielsweise auch Tabellen- und Feldeigenschaften sowie Indizes angelegt bzw. bearbeitet werden (siehe Bild 1).

    Views

    Views entsprechen den Auswahlabfragen in Access – mit einigen wichtigen Unterschieden:

  • Die Verwendung der ORDER BY-Klausel ist nicht möglich. Eine gewünschte Sortierung muss mithilfe einer gespeicherten Prozedur realisiert werden.
  • Views dürfen keine Parameter enthalten. Auch hier muss eine gespeicherte Prozedur verwendet werden, falls Parameter übergeben werden müssen.
  • Views können keine Verweise auf Formulare oder Steuerelemente in Formularen enthalten.
  • Sie können beispielsweise keine Kriterien in Sichten verwenden, wie Sie das bisher in Access-Abfragen getan haben – z. B. wie in der in Bild 2 dargestellten Abfrage.

    Gespeicherte Prozeduren

    Gespeicherte Prozeduren (englisch Stored Procedures) sind vorkompilierter Code, der serverseitig ausgeführt wird (siehe Bild 3).

    Access im Unternehmen

    Unser exklusives Angebot für Dich!

    Access im Unternehmen
    13,25 € im Monat*

    (Gilt für den Abschluss eines Jahres-Abonnements im ersten Jahr, danach 189,-/Jahr)

    Hier geht’s weiter →

    Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

    PayPal VISA Mastercard SEPA
    Kostenlos & unverbindlich

    Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

    Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

    In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

    Jetzt kostenloses Access-Audit anfordern →