964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten. Es kann die Microsoft Data Engine (MSDE) von MS-Access oder der Microsoft SQL-Server 6.5 oder der neue Microsoft SQL-Server 7 eingesetzt werden. Ein MS-Access-Projekt enthält weder Tabellen noch Abfragen, sondern ist direkt mit der Back-End-Anwendung verbunden, in der die Tabellen, Sichten, gespeicherte Prozeduren und Datenbankdiagramme existieren. Das Datenbankfenster von MS-Access zeigt sowohl die Objekte des Clients als auch die des Servers an. Dies bedeutet, daß Sie mit MS-Access 2000 Ihren SQL-Server direkt verwalten können. Hierzu gehört das Einrichten einer neuer Datenbank auf dem SQL-Server genauso wie das Erstellen oder Ändern von Tabellen, Sichten ( Views ) und gespeicherten Prozeduren ( stored pocedures ). Es ist mit MS-Access 2000 daher möglich, nicht nur die Oberfläche einer SQL-Datenbank zu gestalten, sondern gleichzeitig die Verwaltung durchzuführen. Sie können nun ein so mächtiges Werkzeug wie einen SQL-Server administrieren, ohne über Detailkenntnisse dieses SQL-Servers verfügen zu müssen. Wenn Sie bereits mit den Tabellen und Abfragen von MS-Access gearbeitet haben, werden Sie sich mit den Tabellen, Sichten und gespeicherten Prozeduren des SQL-Servers schnell zurechtfinden. Bis einschließlich MS-Access 97 war es nur über den Umweg von ODBC und verknüpften Tabellen beziehungsweise der VBA-Programmierung möglich, auf eine SQL-Server-Datenbank zuzugreifen. Zusätzlich stehen seit MS-Access 2000 die Projekte bereit, mit denen unter anderem die oben genannte Verwaltung des SQL-Servers komfortabel erledigt werden kann. 17.2.1 Ein neues MS-Access-Projekt anlegen Um ein neues MS-Access-Projekt mit dem SQL-Server 7 als Back-End anzulegen, gehen Sie folgendermaßen vor: 1. Starten Sie wie gewohnt MS-Access. 2. Wählen Sie nach Aufruf des Menüpunktes NEU im Menü DATEI im Register Allgemein entweder das Symbol Leeres Projekt (bestehende Datenbank) oder Leeres Projekt (Neue Datenbank). Die beiden Abläufe unterscheiden sich nur dadurch, daß im ersten Fall die SQL-Datenbank- Datei bereits existiert und im zweiten Fall zusätzlich die SQL-Datenbank-Datei angelegt wird. 3. Klicken Sie die OK -Schaltfläche an. 4. Vergeben Sie im daraufhin erscheinenden Dialogfeld Neue Datenbankdatei einen Namen für das MS-Access-Projekt. 5. Wählen Sie die Schaltfläche Erstellen. Um das Erzeugen des Projektes zu vervollständigen, benötigen Sie die Bezeichnung des SQL-Servers, eine beim SQL-Server eingetragene Benutzerkennung und das dazugehörige Paßwort. Diese Angaben tragen Sie in das Dialogfeld Data Link Properties ein.
MS-Access Projekte 965 6. Nennen Sie den Servernamen. 7. Geben Sie die Benutzerkennung und ein eventuelles Paßwort ein. 8. Wählen Sie in dem Kombinationsfeld unter Punkt 3 eine Datenbank auf dem eingestellten SQL-Server aus. 9. Überprüfen Sie über die Befehlsschaltfläche Test Connection, ob zu der Datenbank auch tatsächlich eine Verbindung aufgebaut werden kann. 10. Klicken Sie zuletzt auf die Befehlsschaltfläche OK, wodurch das Projekt erstellt wird. Der Verwaltung der SQL-Server-Datenbank steht jetzt hoffentlich nichts mehr im Weg. Bild 17.1: Verbindungsdaten zum SQL-Server eintragen Die Bezeichnung des SQL-Servers, die Benutzerkennung, das dazugehörige Paßwort und den Namen der SQL-Server-Datenbank können Sie jederzeit nachlesen. Rufen Sie dazu den Menüpunkt VERBINDUNG im Menü DATEI auf. Falls das Kombinationsfeld unter Punkt 3 keinen Inhalt aufweist, kann: der SQL-Server nicht gestartet sein. Unter dem MS SQL-Server 7 verwenden Sie hierzu den SQL-Server Service Manager. die falsche Bezeichnung des SQL-Servers eingetragen sein.
966 Von MS-Access 2000 zum SQL-Server der Benutzername beziehungsweise das Paßwort auf dem SQL-Server nicht bekannt sein. ein Netzwerkproblem zu dem SQL-Server vorliegen. Wenn Sie ein neues Projekt auf eine bestehende SQL-Server-Datenbank angelegt haben, werden Sie im Datenbankfenster viele Einträge finden. Alle Tabellen, Sichten, Datenbankdiagramme und gespeicherte Prozeduren dieser SQL-Server-Datenbank werden hier angezeigt. MS-Access stellt bei einem Projekt in erster Linie das Werkzeug dar, mit dem diese Objekte in der SQL-Server-Datenbank geändert oder neu erstellt werden können. Das heißt, viele der nachfolgenden Erklärungen bewirken eine Änderung in der SQL-Server-Datenbank. Nur wenn Sie Formulare für die komfortable Eingabe, Berichte für den Ausdruck, Datenzugriffsseiten, Makros oder Module erzeugen, werden diese Datenbankobjekte in der MS- Access-Projektdatei abgespeichert. Bild 17.2: Den SQL-Server starten 17.2.2 Besonderheiten bei einer Tabelle Sobald Sie in einem MS-Access-Projekt eine Tabelle öffnen, die sich in der SQL-Server- Datenbank befindet, wird Ihnen eine Besonderheit auffallen. Zusätzlich zu den Navigationsschaltflächen am unteren Rand der Datenblattansicht finden Sie eine weitere Schaltfläche, die wie die Schaltfläche für den letzten Datensatz mit zusätzlichen Punkten aussieht. Ein Klick darauf blendet ein kleines Fenster mit Schieberegler und einem Textfeld ein. Über den Schieberegler können Sie die maximale Anzahl der Datensätze für diese Tabelle einstellen. Die aktuelle Einstellung entnehmen Sie dabei dem Textfeld, in das Sie auch direkt den Wert eintragen können. Ansonsten sieht die Datenblattansicht wie die einer MS-Access-Tabelle aus. Es gibt jedoch noch einige Unterschiede, die Sie am schnellsten feststellen, wenn Sie sich die Menüpunkte der Menüs EINFÜGEN und FORMAT ansehen. Über das erstgenannte Menü können Sie bei einer Tabelle aus einer SQL-Server-Datenbank keine zusätzliche Spalte einfügen. Außerdem ist es nicht möglich, eine Spalte umzubenennen. Der entsprechende Menüpunkt ist deaktiviert. Dies bedeutet, daß die Datenblattansicht rein für die Dateingabe und Datenanzeige dient, nicht aber für kleine Änderungen am Tabellenentwurf benutzt werden kann.
MS-Access Projekte 967 Bild 17.3: Tabelle einer SQL-Server-Datenbank Die Entwurfsansicht einer SQL-Server-Tabelle Wenn Sie die Tabelle in der Entwurfsansicht betrachten, so werden Sie die unterschiedliche Darstellungsweise bemerken. Dies ist bedingt durch die Unterschiede, die sich aufgrund des SQL-Servers ergeben. Wenn Sie jedoch bereits mit der Entwurfsansicht einer normalen MS- Access Tabelle gearbeitet haben, werden Sie nach etwas Ausprobieren auch eine Tabelle für eine SQL-Server-Datenbank erstellen können. Bild 17.4: Tabelle in Entwurfsansicht auf dem SQL-Server Jedes Tabellenfeld besitzt genau wie bei MS-Access einen Namen, einen Datentyp und mehrere Eigenschaften. Die Eigenschaften werden aber in Spalten und nicht in einem eigenen Bereich dargestellt. In einer SQL-Server-Tabelle können Sie zwischen sehr vielen Datentypen wählen, die in der nachfolgenden Tabelle aufgelistet sind.
968 Von MS-Access 2000 zum SQL-Server Tabelle 17.1: Datentypen für eine SQL-Server Tabelle Datentype Datentype Datentype Binary Bit Char Datetime Decimal Float Image Int Money Nchar Ntext Numeric nvarchar Real Smalldatetime smallint Smallmoney Text timestamp Tinyint Uniqueidentifier varbinary Varchar Sobald Sie einen Datentyp einstellen, wird die Eigenschaft Length mit einem Wert besetzt, der aussagt, wie viele Bytes für den Inhalt des Felds reserviert werden. Abhängig vom gewählten Typ können Sie diese Angabe noch verändern oder nicht. Die Längen aller Datentypen, die sich auf Zahlen beziehen, wie int und smallint, sind fix. Im Gegensatz dazu sind die Längen der Datentypen für Zeichen wie nchar variabel. Beim Datentyp varchar können zum Beispiel Werte bis zu 8000 eingegeben werden. Der Datyp bit entspricht in MS-Access dem Datentyp Ja/Nein. Es wird jedoch kein Kontrollkästchen in der Datenblattansicht angezeigt, sondern die Werte Falsch und Wahr. Damit das Wort Falsch erscheint, tragen Sie den Wert 0 ein. Alle anderen Zahlenwerte werden als Wahr interpretiert. Trotz des ähnlichen Namens bedeuten die beiden Datentypen Integer in MS-Access und int beim SQL-Server nicht dasselbe. Der Typ Integer belegt genau wie der Typ smallint zwei Bytes. Der Datentyp int hingegen kann mit dem MS-Access Datentyp Long Integer verglichen werden. Beide reservieren für ein Feld vier Bytes. Den Datentyp AutoWert nachbilden Den Datentyp AutoWert gibt es beim SQL-Server nicht. Sie können ihn jedoch über den Datentyp int nachbilden und haben darüberhinaus noch die Möglichkeit zu bestimmen, bei welchem Wert begonnen werden soll, und um wieviel jeweils der Wert erhöht werden soll. 1. Erstellen Sie eine neue Tabelle oder öffnen Sie eine bestehende in der Entwurfsansicht. 2. Tragen Sie in die Spalte Column Name einen Feldnamen für den Schlüssel ein. 3. Stellen Sie als Datentyp den Eintrag int ein. 4. Deaktivieren Sie das Kontrollkästchen Allow Nulls, ansonsten kann das Kontrollkästchen Identity nicht gesetzt werden. 5. Schalten Sie das Kontrollkästchen Identity ein.