Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 8 Tabellen verknüpfen Der Betrieb einer Access-Anwendung auf Basis einer SQL Server-Datenbank steht und fällt mit dem Zugriff auf die Daten der SQL Server-Datenbank. Dieses Kapitel zeigt verschiedene Möglichkeiten, von Access aus über die Objekttypen Tabelle oder Abfrage auf die Daten in den Tabellen des SQL Servers zuzugreifen. 8.1 Tabellen manuell verknüpfen Die wohl bekannteste Möglichkeit ist der Zugriff auf eine SQL Server-Tabelle mittels einer ODBC- Verknüpfung. Unter Access 2010 sehen die dazu nötigen Schritte wie folgt aus unter anderen aktuellen Access-Versionen geschieht dies auf ähnliche Weise. Beim Verknüpfen mit dem entsprechenden Assistenten von Access gibt es im Wesentlichen zwei Varianten:»» Verknüpfung mit Datei-DSN»» Verknüpfung mit System-DSN Wir erläutern zunächst die Vorgehensweise zum Erstellen einer Verknüpfung über eine Datei- DSN. Anschließend gehen wir auf die System-DSN und weitere Methoden ein. Starten Sie den entsprechenden Assistenten, und zwar über den Ribbon-Eintrag Externe Daten Im portieren und Verknüpfen ODBC-Datenbank (siehe Abbildung 8.1). Abbildung 8.1: Aufruf des Assistenten zum Verknüpfen von ODBC-Datenbanken Danach geben Sie an, dass Sie eine Verknüpfung erstellen möchten (siehe Abbildung 8.2). Schließlich wollen wir jederzeit die aktuellen Daten vorfinden. Gelegentlich benötigen Sie vielleicht auch einmal einen Import vom SQL Server, aber in diesem Fall nicht. Als nächstes legen Sie fest, aus welcher Datenquelle die Daten stammen. Der nun erscheinende Dialog verwirrt beim ersten Einsatz mehr als das er hilft (siehe Abbildung 8.3). Als erstes stellt sich die Frage, ob Sie eine Dateidatenquelle oder eine Computerdatenquelle benötigen. Der Unterschied ist folgender: Eine Dateidatenquelle enthält die für die Herstellung der Verbindung nötigen Informationen in einer Datei. Eine Computerdatenquelle hingegen spei-
Kapitel 8 Tabellen verknüpfen chert die Verbindungsdaten in der Registry. Um eine Computerdatenquelle zu erstellen, müssen Sie Administratorrechte besitzen. Abbildung 8.2: Importieren oder verknüpfen? Abbildung 8.3: Auswählen oder erstellen einer Datenquelle 8.1.1 Verknüpfung mit Dateidatenquelle erstellen (Datei-DSN) Wir erstellen zunächst eine Verknüpfung mithilfe einer Dateidatenquelle. Bleiben Sie auf der Registerkarte Dateidatenquelle und klicken Sie auf die Schaltfläche Neu. Treiber auswählen Nach der Entscheidung, eine Dateidatenquelle zu erstellen, wählen Sie im nächsten Schritt den gewünschten Treiber aus. Wenn Sie im Dialog aus Abbildung 8.4 ganz nach unten scrollen, finden Sie dort zwei passende Einträge SQL Server und SQL Server Native Client x.0, wobei x für die jeweils aktuelle Version des SQL Servers steht. Der Eintrag SQL Server wird von Windows hinzugefügt, der Eintrag SQL Server Native Client x.0 vom SQL Server selbst. Der Unterschied ist, dass der SQL Server Native Client x.0 sich auf die jeweils installierte Version des SQL Servers be- 102
Tabellen manuell verknüpfen zieht und somit gegebenenfalls Features unterstützt, die der einfache SQL Server-Treiber nicht bietet. Wählen Sie also bei Verfügbarkeit den SQL Server Native Client x.0. Abbildung 8.4: Auswahl eines Treibers Sollten Sie von einem anderen Rechner auf den SQL Server zugreifen, ist der SQL Server Native Client x.0 möglicherweise nicht installiert. Sie können diesen bei Microsoft herunterladen und nachinstallieren. Im nächsten Schritt legen Sie dann den Namen der Datenquelle fest - der Einfachheit halber wählen wir den Namen, den wir auch für die SQL Server-Datenbank vergeben haben (siehe Abbildung 8.5). Abbildung 8.5: Name der Datenquelle festlegen Im folgenden Schritt schließen Sie die Erstellung der Dateidatenquelle bereits ab zumindest was diesen Teil des Assistenten angeht. Nun geht es mit dem datenquellenspezifischen Teil weiter. Der Dialog aus Abbildung 8.6 fragt die SQL Server-Instanz ab, welche die betroffene Datenbank enthält. Das Aufklappen des Kombinationsfeldes dauert etwas, da der Assistent das Netzwerk nach SQL Server-Instanzen 103
Kapitel 8 Tabellen verknüpfen durchsucht. Sie tun gut daran, den Namen des SQL Servers zu kennen und diesen direkt einzutippen das spart auf Dauer einiges an Zeit. Befindet sich der SQL Server auf dem gleichen Rechner, wählen Sie (local) aus, sonst geben Sie den Namen des Server an (in diesem Beispiel WWSQL). Sollten Sie mehrere Instanzen des SQL Servers auf dem Zielserver betreiben, geben Sie den Server nach dem Schema <Servername>\<Instanzname> an. Abbildung 8.6: SQL Server auswählen Der folgende Dialog gibt Ihnen dann die Möglichkeit, die Authentifizierungsmethode festzulegen (siehe Abbildung 8.7). Mehr zu den Authentifizierungmethoden erfahren Sie unter ****Sicherheit und Benutzerverwaltung. Abbildung 8.7: Art der Authentifizierung Anschließend legen Sie die Standarddatenbank fest das ist die Datenbank, deren Tabellen ein paar Schritte zum Verknüpfen angeboten werden (siehe Abbildung 8.8). 104
Tabellen manuell verknüpfen Abbildung 8.8: Ändern der Standarddatenbank Die Einstellungen des folgenden Dialogs können Sie beibehalten. Schließlich können Sie die Verbindung testen (siehe Abbildung 8.9). Abbildung 8.9: Testen der Datenquelle Klicken Sie dann auf OK. Der zu Beginn gestartete Assistent zeigt nun die neue Dateidatenquelle in der Liste an (siehe Abbildung 8.10). Wählen Sie diese aus und klicken Sie auf OK. 105
Kapitel 8 Tabellen verknüpfen Abbildung 8.10: Auswahl der soeben erstellten Dateidatenquelle Damit können Sie nun endlich auf die Tabellen und weitere Objekte der Quelldatenbank zugreifen und die zu verknüpfenden Objekte auswählen (siehe Abbildung 8.11). Abbildung 8.11: Auswahl der zu verknüpfenden Objekte Nach der Auswahl etwa der Tabelle tblbanken zeigt Access diese mit einem speziellen Symbol versehen im Navigationsbereich an. Sie können nun bereits direkt auf die enthaltenen Daten zugreifen (siehe Abbildung 8.12). 106
Tabellen manuell verknüpfen Abbildung 8.12: Eine per ODBC verknüpfte Tabelle DSN-Datei ansehen Was für Daten wurden nun in der DSN-Datei gespeichert? Im Prinzip handelt es sich dabei um eine schlichte Zeichenkette. Wenn es Sie interessiert, wie nun die erzeugte Dateidatenquelle aussieht, werfen Sie einen Blick auf die am gewünschten Speicherort (unter Windows 7 standardmäßig etwa C:\Users\<Benutzername>\Documents) angelegte Textdatei AccessSQL.dsn (siehe Abbildung 8.13). Abbildung 8.13: Dateidatenquelle im Editor 8.1.2 Erstellen einer Computerdatenquelle Alternativ zur Dateidatenquelle können Sie sich gleich zu Beginn für eine Computerdatenquelle entscheiden. Dazu müssen Sie mit Administratorrechten arbeiten. Dazu navigieren Sie zunächst im Windows Explorer zum Verzeichnis C:\Program Files (x86)\ Microsoft Office\Office14. Dort klicken Sie mit der rechten Maustaste auf die Datei MSAccess. exe und wählen aus dem Kontextmenü den Eintrag Als Administrator ausführen aus (siehe Abbildung 8.14). 107
Kapitel 8 Tabellen verknüpfen Abbildung 8.14: Access mit Administratorrechten öffnen In diesem Fall steht eine weitere Entscheidung an: Möchten Sie eine Benutzerdatenquelle oder eine Systemdatenquelle erstellen? Der Unterschied besteht darin, dass eine Benutzerdatenquelle nur vom aktuell angemeldeten Benutzer verwendet werden kann, die Systemdatenquelle jedoch von allen Benutzern (siehe Abbildung 8.15). Abbildung 8.15: Benutzerdatenquelle oder Computerdatenquelle? Wir haben beispielhaft zwei Computerdatenquellen erstellt eine Benutzerdatenquelle und eine Systemdatenquelle (siehe Abbildung 8.16). Mit diesen Datenquellen arbeiten Sie nicht viel anders als mit den Dateidatenquellen Sie wählen diese aus oder legen sie neu an und greifen dann auf die Liste der Tabellen zu, um die gewünschten Verknüpfungen zu erstellen. Interessant ist noch der Ort, an dem die Datenquellen in der Registry gespeichert werden. So finden Sie die Benutzerdatenquellen in der Registry unter folgendem Zweig (siehe Abbildung 8.17): 108
Tabellen manuell verknüpfen HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\<Name der Datenquelle> Die Systemdatenquellen sind hier zu finden: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<Name der Datenquelle> Abbildung 8.16: Zwei neu erstellte Computerdatenquellen Abbildung 8.17: Eintrag für die Benutzerdatenquelle in der Registry 8.1.3 Verbinden von Tabellen ohne Primärschlüssel Wenn die zu verknüpfende Tabelle keinen Primärschlüssel aufweist, müssen Sie selbst einen auswählen. In diesem Fall erscheint der Dialog aus Abbildung 8.18. 109
Kapitel 8 Tabellen verknüpfen Abbildung 8.18: Aufforderung, ein ID-Feld festzulegen Wenn Sie hier kein Feld auswählen, erstellt Access eine Verknüpfung, deren Datensätze nicht geändert werden können (siehe Abbildung 8.19). Abbildung 8.19: Verknüpfungen ohne Angabe eines eindeutigen Feldes sind nicht aktualisierbar. Wenn Sie nun im Navigationsbereich auf die frisch verknüpfte Tabelle klicken, öffnet Access diese in der Datenblattansicht. Sie können ohne Probleme auf die enthaltenen Daten zugreifen. Sollten Sie jedoch die Access-Datenbank schließen und erneut öffnen, erscheint der Dialog aus Abbildung 8.20 zumindest, wenn Sie die SQL Server-Authentifizierung verwenden. Die bei der Erstellung der Verknüpfung angegebenen Benutzerdaten werden also offensichtlich nicht gespeichert. Abbildung 8.20: Die Benutzerdaten werden nicht gespeichert Dies erhöht die Sicherheit gegenüber älteren Kombinationen aus Access und SQL Server entscheidend dort konnten Sie bei der Erstellung der Verknüpfung noch angeben, dass Benutzername und Kennwort gespeichert werden. 110