Sie können Access als Front-End-Anwendung verwenden und dann eine Verknüpfung mit Tabellen auf einem Back-End-Server wie SQL Server herstellen. Standardmäßig werden die meisten Abfragen lokal in der Access ACE-Datenbank-Engine ausgeführt. In einigen Fällen kann Access eine Abfrage in SQL Server remote ausführen, abhängig von der SQL-Syntax und anderen Faktoren. Weitere Informationen finden Sie unter "JET Database Engine Version 3.0: ODBC Connectivity" (JET-Datenbank-Engine Version 3.0: ODBC-Konnektivität) in Whitepapers zu wiederentdeckten JET und ODBC.
Häufig möchten Sie jedoch explizit eine Abfrage auf einem Datenbankserver ausführen. Sie tun dies, um die Leistung zu verbessern: Datenbankserver verfügen über eine höhere Verarbeitungsleistung als ein Desktopcomputer, und Sie können eine kleinere Teilmenge der Daten über die Netzwerkverbindung zurückgeben. Um eine Abfrage auf einem Datenbankserver auszuführen, verwenden Sie eine Pass-Through-Abfrage bei der es sich um eine TSQL-Anweisung (Transact SQL) handelt, die mithilfe einer ODBC-Verbindungszeichenfolge eine Verbindung mit SQL Server herstellt. Sie können z. B. eine SELECT-Anweisung übergeben, um Daten an ein Datenblatt-, Formular-, Berichts- oder Listensteuerelement zurückzugeben, das Äquivalent von Aktionsabfragen (Data Manipulation Language(DML)-Anweisungen) auszuführen, gespeicherte Prozeduren aufzurufen und Administrative Aufgaben auszuführen (DDL-Anweisungen (Data Definition Language).
Hinweis Die Ergebnisse einer Passthrough-Abfrage sind schreibgeschützt. Um Daten in einem Datenblatt oder Formular direkt zu bearbeiten, erstellen Sie eine verknüpfte Tabelle mit einer indizierten Sicht. Weitere Informationen finden Sie unter Erstellen indizierter Sichten.
-
Stellen Sie eine Verbindung mit einer Serverdatenbank her.
Weitere Informationen zum Verknüpfen mit SQL Server finden Sie unter Importieren oder Verknüpfen von Daten in einer SQL Server-Datenbank und Verknüpfen mit oder Importieren von Daten aus einer Azure SQL Server-Datenbank.
-
Wählen Sie Erstellen > Abfrageentwurf aus.
-
Schließen Sie bei Bedarf das Dialogfeld Tabellen hinzufügen (Tabelle in Access anzeigen .
-
Wählen Sie Entwurf >Passthrough aus.
Access blendet das Abfrageentwurfsraster aus und zeigt die SQL-Ansicht an.
-
Wenn das Abfrageeigenschaftenblatt nicht angezeigt wird, drücken Sie F4, um es anzuzeigen.
-
Klicken Sie auf dem Eigenschaftenblatt auf das Eigenschaftenfeld ODBC Connect Str , und führen Sie dann eine der folgenden Aktionen aus:
So rufen Sie eine Verbindungszeichenfolge ab:
-
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf eine Tabelle, die mit der gewünschten Datenquelle verknüpft ist, und wählen Sie Manager für verknüpfte Tabellen aus.
-
Aktivieren Sie im Dialogfeld Manager für verknüpfte Tabellen das Kontrollkästchen der Datenquelle, und wählen Sie dann Bearbeiten aus.
-
Kopieren Sie im Dialogfeld Link bearbeiten den Text in das Feld Verbindungszeichenfolge .
-
Wählen Sie Build aus.
-
Befolgen Sie die Anweisungen, um eine DSN-Datei zu erstellen, die die Informationen zur Verbindungszeichenfolge enthält. Ausführliche Schritte finden Sie unter Importieren oder Verknüpfen von Daten in einer SQL Server-Datenbank und Verknüpfen mit oder Importieren von Daten aus einer Azure SQL Server-Datenbank.
Nachdem Sie eine DSN-Dateiverbindung erstellt haben, wird die ODBC-Verbindungszeichenfolge intern in Ihrer Access-Datenbank gespeichert. Hier ist ein Trick, um eine Kopie dieser Zeichenfolge zu erhalten:
-
Suchen Sie einen Namen einer verknüpften Tabelle im Navigationsbereich mithilfe der gewünschten ODBC-Verbindung.
-
Drücken Sie STRG+G. , um das VBA-Direktfenster zu öffnen.
-
Geben Sie den folgenden Code ein:
?CurrentDb.TableDefs("<table name>").Connect
Ersetzen Sie jedoch <Tabellennamen> den Namen der verknüpften Tabelle aus Schritt a.
-
Kopieren Sie die zurückgegebene Zeichenfolge in die ODBC Connect Str-Eigenschaft .
-
-
Geben Sie Ihre Abfrage in die SQL-Ansicht ein.
Hinweis: Es gibt wichtige Unterschiede zwischen Access SQL und SQL Server TSQL, insbesondere bei Syntax, Funktionsnamen und Funktionsargumenten. Weitere Informationen finden Sie unter Vergleich von Access SQL und SQL Server TSQL.
Tipp Erstellen Sie zuerst die TSQL-Abfrage in SQL Server Management Studio, und kopieren Sie dann die SQL-Abfrage, und fügen Sie sie in die SQL-Ansicht ein. Dadurch wird sichergestellt, dass die Abfrage über die richtige Syntax verfügt. Wenn Sie keinen bequemen Zugriff auf eine SQL Server-Datenbank haben, sollten Sie die Microsoft SQL Server Express Edition auf Ihrem Desktop installieren, die bis zu 10 GB unterstützt und eine kostenlose und einfachere Möglichkeit zum Durchlaufen und Überprüfen Ihrer Migration darstellt.
-
Erwägen Sie das Festlegen zusätzlicher verwandter Eigenschaften:
-
Gibt Datensätze zurück Einige SQL-Anweisungen geben Datensätze zurück, z. B. SELECT, und andere nicht, z. B. UPDATE. Wenn die Abfrage Datensätze zurückgibt, legen Sie diese Eigenschaft auf Ja fest. Wenn die Abfrage keine Datensätze zurückgibt, legen Sie diese Eigenschaft auf Nein fest.
Hinweis Passthrough-Abfragen können mehrere Resultsets zurückgeben, aber in einem Datenblatt, Formular, Bericht oder Recordset wird nur das erste Resultset verwendet. Verwenden Sie zum Abrufen mehrerer Resultsets eine Tabellenerstellungsabfrage , wie im folgenden Beispiel gezeigt:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
Sie müssen das Sternchen (*) verwenden, da jedes Resultset unterschiedliche Spalten aufweisen kann. Jedes Resultset wird in einer separaten Tabelle gespeichert, und die Zahlen werden entsprechend an die lokalen Tabellennamen angefügt. Wenn beispielsweise drei Resultsets zurückgegeben werden, würden die Tabellennamen wie folgt aussehen: <name der lokalen Tabelle>, <name der lokalen Tabelle>1 <name der lokalen Tabelle>2.
-
Protokollmeldungen Geben Sie an, ob Nachrichten aus der SQL-Datenbank in einer Access-Nachrichtentabelle zurückgegeben werden sollen. Der Tabellenname hat das Format benutzername – nn, wobei username der Anmeldename für den aktuellen Benutzer und nn eine Zahl ist, die bei 00 beginnt.
-
ODBC-Timeout Geben Sie die Anzahl der Sekunden an, die gewartet werden soll, bevor ein Timeoutfehler auftritt, wenn eine Abfrage ausgeführt wird. Der Standardwert ist 60 Sekunden. Es kann zu Verzögerungen aufgrund von Netzwerkdatenverkehr oder starker Nutzung des Datenbankservers kommen.
-
Max. Datensätze Geben Sie die maximale Anzahl von Datensätzen an, die zurückgegeben werden sollen. Möglicherweise verfügen Sie über begrenzte Systemressourcen, oder Sie möchten Ihre Ergebnisse mit nur einer kleinen Datenmenge testen.
-
-
Wenn Sie die Abfrage eingegeben haben, wählen Sie Entwurf > Ausführen aus. Ihre Abfrage wird zur Verarbeitung an den Datenbankserver gesendet.