Eine Tabelle in Access verknüpfen
In dieser Einführung verknüpfen Sie eine Tabelle eines OData-Dienstes in Access, ohne VBA, und bearbeiten sie wie eine Tabelle auf einem SQL Server. Sie brauchen dafür etwa zehn Minuten.
Voraussetzungen
- Microsoft Access bzw. die Access-Runtime (Access 2010 oder neuer, 32 oder 64 Bit; siehe Voraussetzungen); die Bitbreite (32 oder 64 Bit) steht unter Datei > Konto > Info zu Access
- der Treiber
Wkl ODatain derselben Bitbreite wie Access; das InstallationspaketWkl.Data.OData.Odbc-<Version>.msiinstalliert beide Bitbreiten und braucht Administratorrechte - die Adresse eines OData-v4-Dienstes, etwa des Datendienstes, und eine Anmeldung dort; diese Einführung verwendet die Windows-Anmeldung, der Dienst muss also Ihr Windows-Konto oder eine Ihrer Gruppen kennen
Schritte
1. Den Verknüpfungsassistenten öffnen
- Öffnen Sie in Access eine Datenbank, oder legen Sie eine neue an.
- Wählen Sie Externe Daten > Neue Datenquelle > Aus anderen Quellen > ODBC-Datenbank aus.
Wählen Sie Erstellen Sie eine Verknüpfung zur Datenquelle, indem Sie eine verknüpfte Tabelle erstellen aus, und bestätigen Sie mit OK.
2. Eine Datenquelle für den Dienst anlegen
- Wechseln Sie im Dialog Datenquelle auswählen zur Registerkarte Computerdatenquelle, und wählen Sie Neu aus.
- Wählen Sie Benutzerdatenquelle und als Treiber Wkl OData aus, und schließen Sie den Assistenten mit Fertig stellen ab. Der Dialog des Treibers Datenquelle für OData einrichten öffnet sich.
Geben Sie die Verbindung ein:
Feld Eingabe Datenquelle ein Name, etwa FachdatenDienstadresse die Stammadresse, etwa https://daten.example.com/odata/v4/fachdaten/dbo/Authentifizierung Windows-Authentifizierung Kennen Sie nur die Adresse des Dienstes, aber nicht die Datenbank: Wechseln Sie oben zu Durchsuchen, geben Sie die Adresse bis
/odata/v4/ein, wählen Sie Suchen aus, und wählen Sie im Baum Datenbank und Schema aus. Der Dialog übernimmt die Dienstadresse.
- Wählen Sie Testen aus. Die Statuszeile meldet die Verbindung.
- Bestätigen Sie mit OK.
3. Die Datenquelle wählen
Wählen Sie im Dialog Datenquelle auswählen die neue Datenquelle aus, und bestätigen Sie mit OK.
4. Tabellen auswählen
Wählen Sie im Dialog Tabellen verknüpfen eine oder mehrere Tabellen aus, und bestätigen Sie mit OK. Der Dialog zeigt die Tabellen und Sichten, die Sie lesen dürfen. Access fragt nicht nach einem eindeutigen Feld: Den Schlüssel meldet der Treiber.
5. Die verknüpfte Tabelle öffnen
Öffnen Sie die neue Tabelle im Navigationsbereich. Filtern, sortieren und suchen Sie wie bei einer lokalen Tabelle; Bedingungen und Sortierung rechnet der Dienst. Dürfen Sie in dieser Tabelle schreiben, ändern Sie einen Wert und verlassen Sie den Datensatz: Access speichert ihn beim Dienst.
Ergebnis
Im Navigationsbereich steht eine verknüpfte Tabelle (Symbol mit Weltkugel und Pfeil). Die
Verknüpfung speichert den Namen der Datenquelle und den Dienststamm als DATABASE, ohne Geheimnis:
ODBC;DSN=Fachdaten;DATABASE=https://daten.example.com/odata/v4/fachdaten/dbo/
Access hat den Schlüssel der Tabelle als Primärindex übernommen; daran erkennt es, dass die Tabelle bearbeitbar ist. Ändert ein anderer Benutzer denselben Datensatz zwischen Ihrem Lesen und Speichern, zeigt Access den gewohnten Schreibkonflikt und überschreibt nichts.
Mehrere Dienststämme in einer Datei
Warnung: Verknüpfen Sie Tabellen aus einem zweiten Dienststamm – einer anderen Datenbank, einem anderen Schema oder einer zweiten Datenbank-Identität (
ROLE) – in dieselbe Access-Datei, braucht jede Verbindung einen eigenen Wert fürDATABASE. Sonst bedient Access beide über die zuerst geöffnete Verbindung: Die Tabellen des zweiten Stamms zeigen ohne Fehlermeldung die Daten des ersten, und Änderungen landen dort.
Access trennt Verbindungen nicht nach Adresse, sondern nach dem Wert von DATABASE in der
Verbindungszeichenfolge, die es beim Verknüpfen speichert. Der Treiber ergänzt ihn: aus der
Datenquelle, sonst aus dem Dienststamm. Der Einrichtungsdialog schreibt den Dienststamm in jede neue
oder geänderte Datenquelle. Zwei Datenquellen auf zwei Dienststämme tragen damit verschiedene Werte.
| Weg | Verbindungszeichenfolge der Verknüpfung |
|---|---|
| ohne Datenquelle | ODBC;DRIVER={Wkl OData};URL=https://daten.example.com/odata/v4/vertrieb/dbo/;AUTH=WINDOWS – der Treiber ergänzt DATABASE je Dienststamm |
| Datenquelle | ODBC;DSN=Vertrieb;DATABASE=… – der Treiber ergänzt das DATABASE der Datenquelle |
Verknüpfung per Code (TableDef.Connect) | DATABASE selbst angeben, je Dienststamm verschieden; Access speichert die Zeichenfolge wie gesetzt |
So prüfen Sie, welche Verbindung eine Tabelle tatsächlich benutzt:
- Schalten Sie die Ablaufverfolgung ein, und starten Sie Access neu.
- Öffnen Sie nacheinander eine Tabelle aus jedem Dienststamm.
- Suchen Sie in der Datei die Zeilen
HTTP GET. Die Anfragen für die zweite Tabelle müssen die Adresse ihres eigenen Dienststamms tragen. Stehen dort die Adresse des ersten, teilen sich die Verknüpfungen eine Verbindung. - Prüfen Sie im Direktfenster (Strg+G) die gespeicherte Zeichenfolge jeder Verknüpfung:
? CurrentDb.TableDefs("dbo_Artikel").Connect.
Das Verhalten von Access im Einzelnen steht unter Verbindungszeichenfolge: Access teilt Verbindungen nach `DATABASE`.
Nächste Schritte
- Mit persönlichem Schlüssel und zweitem Faktor anmelden – ohne Domäne, auch von außen
- Pass-Through-Abfragen einrichten – Verbünde und Gruppierungen über mehrere Tabellen
- Verbindungszeichenfolge des Treibers – Verknüpfen per Code