Erstellen einer Pass-Through-Abfrage

Erstellen einer Pass-Through-Abfrage

Sie können Access als Front-End-Anwendung verwenden und dann mit Tabellen auf einem Back-End-Server wie SQL Server verknüpfen. Standardmäßig werden die meisten Abfragen lokal im Access ACE-Datenbankmodul ausgeführt. In einigen Fällen kann Access eine Abfrage Remote auf SQL Server ausführen, abhängig von der SQL-Syntax und anderen Faktoren. Weitere Informationen finden Sie unter "Jet-Datenbankmodul, Version 3,0: ODBC-Konnektivität" in neu entdeckten Jet-und ODBC-Whitepapers.

Häufig möchten Sie jedoch eine Abfrage explizit auf einem Datenbankserver ausführen. Dies hilft Ihnen, die Leistung zu verbessern: Datenbankserver verfügen über eine größere Verarbeitungsleistung als ein Desktopcomputer, und Sie können eine kleinere Teilmenge der Daten über die Netzwerkverbindung zurückgeben. Wenn Sie eine Abfrage auf einem Datenbankserver ausführen möchten, verwenden Sie eine Pass-Through-Abfrage, bei der es sich um eine Transact SQL (TSQL)-Anweisung handelt, die mithilfe einer ODBC-Verbindungszeichenfolge eine Verbindung mit SQL Server herstellt. So können Sie beispielsweise eine SELECT-Anweisung übergeben, um Daten an ein Datenblatt-, Formular-, Berichts-oder Listensteuerelement zurückzugeben, das Äquivalent von Aktionsabfragen (DML-Anweisungen) ausführen, gespeicherte Prozeduren aufrufen und administrative Aufgaben ausführen (Daten Definition Language (DDL)-Anweisungen).

Hinweis    Die Ergebnisse einer Pass-Through-Abfrage sind schreibgeschützt. Wenn Sie Daten in einem Datenblatt oder Formular direkt bearbeiten möchten, erstellen Sie eine verknüpfte Tabelle mit einer indizierten Ansicht. Weitere Informationen finden Sie unter Erstellen von indizierten Sichten.

  1. Stellen Sie eine Verbindung mit einer Server Datenbank her.

    Weitere Informationen zum Verknüpfen mit SQL Server finden Sie unter Importieren von oder Verknüpfen mit Daten in einer SQL Server-Datenbank sowie Verknüpfen oder Importieren von Daten aus einer Azure SQL Server-Datenbank.

  2. Wählen Sie Erstellen > Abfrageentwurf aus.

  3. Schließen Sie das Dialogfeld Tabelle anzeigen.

  4. Wählen Sie Design >durchlaufenaus.

    Access blendet den Abfrageentwurfsbereich aus und zeigt die SQL-Ansichtan.

  5. Wenn das Eigenschaftenfenster der Abfrage nicht angezeigt wird, drücken Sie F4, um es anzuzeigen.

  6. Klicken Sie auf dem Eigenschaftenfenster auf das Eigenschaftenfeld ODBC Connect Str , und führen Sie dann eine der folgenden Aktionen aus:

    So erhalten Sie eine Verbindungszeichenfolge:

    1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf eine Tabelle, die mit der gewünschten Datenquelle verknüpft ist, und wählen Sie verknüpfte Tabellen-Manageraus.

    2. Aktivieren Sie im Dialogfeld verknüpfte Tabellen-Manager das Kontrollkästchen für die Datenquelle, und wählen Sie dann Bearbeitenaus.

    3. Kopieren Sie im Dialogfeld Link bearbeiten den Text im Feld Verbindungszeichenfolge .

    1. Wählen Sie Schaltfläche "Generator" Erstellen aus.

    2. Folgen Sie den Anweisungen, um eine DSN-Datei zu erstellen, die die Informationen zur Verbindungszeichenfolge enthält. Detaillierte Anweisungen finden Sie unter Importieren von oder Verknüpfen mit 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:

    1. Suchen Sie im Navigationsbereich mithilfe der gewünschten ODBC-Verbindung nach dem Namen einer verknüpften Tabelle.

    2. Drücken Sie STRG + G. , um das Direktfenster von VBA zu öffnen.

    3. Geben Sie den folgenden Code ein:

      ?CurrentDb.TableDefs("<table name>").Connect

      Ersetzen Sie aber <Tabellenname> den Namen der verknüpften Tabelle aus Schritt a.

    4. Kopieren Sie die Zeichenfolge, die in die ODBC Connect Str -Eigenschaft zurückgegeben wird.

  7. Geben Sie Ihre Abfrage in der SQL-Ansichtein.

    Hinweis   Es gibt wichtige Unterschiede zwischen Access SQL und SQL Server TSQL, insbesondere mit Syntax, Funktionsnamen und Funktionsargumenten. Weitere Informationen finden Sie unter Vergleich von Access SQL mit SQL Server TSQL.

    Tipp    Erstellen Sie zunächst die TSQL-Abfrage in SQL Server Management Studio, und kopieren Sie die SQL- Ansicht, und fügen Sie Sie ein. Dadurch wird sichergestellt, dass die Abfrage die richtige Syntax aufweist. Wenn Sie nicht über einen einfachen Zugriff auf eine SQL Server-Datenbank verfügen, sollten Sie Microsoft SQL Server Express Edition auf dem Desktop installieren, der bis zu 10 GB unterstützt und eine kostenlose und einfachere Möglichkeit zum durchlaufen und überprüfen ihrer Migration bietet.

  8. Sie sollten zusätzliche verwandte Eigenschaften festlegen:

    • Gibt Datensätze zurück     Einige SQL-Anweisungen geben Datensätze wie "Select" und einige nicht, wie "Update", zurück. Wenn die Abfragedatensätze zurückgibt, setzen Sie diese Eigenschaft auf Ja; Wenn die Abfrage keine Datensätze zurückgibt, setzen Sie diese Eigenschaft auf Nein.

      Hinweis    Pass-Through-Abfragen können mehrere Resultsets zurückgeben, doch in einer Datenblatt-, Formular-, Berichts-oder Recordset-Variablen wird nur das erste Resultset verwendet. Verwenden Sie zum Abrufen mehrerer Resultsets eine Tabellen Erstellungs Abfrage, 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, weil jede Ergebnismenge unterschiedliche Spalten aufweisen kann. Jede Ergebnismenge wird in einer separaten Tabelle gespeichert, und die Nummern werden entsprechend an die lokalen Tabellennamen angefügt. Wenn beispielsweise drei Resultsets zurückgegeben werden, lautet der Name der Tabelle wie folgt: <lokaler Tabellenname>, <lokaler Tabellenname>1 <lokaler Tabellenname>2.

    • Protokollieren von Nachrichten    Geben Sie an, ob Nachrichten aus der SQL-Datenbank in einer Access-Nachrichtentabelle zurückgegeben werden sollen. Der Tabellenname hat das Format username – NN, wobei username der Anmeldename für den aktuellen Benutzer und nn eine Zahl ist, die bei 00 beginnt.

    • ODBC-Timeout    Geben Sie an, wie viele Sekunden gewartet werden soll, bevor ein Timeoutfehler auftritt, wenn eine Abfrage ausgeführt wird. Der Standardwert ist 60 Sekunden. Möglicherweise gibt es Verzögerungen aufgrund des Netzwerkverkehrs oder der starken Nutzung des Datenbankservers.

    • Max. Datensätze    Geben Sie die maximale Anzahl der Datensätze 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.

  9. Wenn Sie mit der Eingabe der Abfrage fertig sind, wählen Sie Entwurf #a0 Ausführenaus. Ihre Abfrage wird zur Verarbeitung an den Datenbankserver gesendet.

Hinweis:  Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Lassen Sie uns bitte wissen, ob diese Informationen hilfreich für Sie waren. Hier finden Sie den englischen Artikel als Referenz.

Siehe auch

Transact-SQL-Referenz

Abfragen mit Transact-SQL

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Office Insider werden

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×