Erstellen einer Pass-Through-Abfrage

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 im Access ACE-Datenbankmodul ausgeführt. In einigen Fällen kann Access eine Abfrage abhängig von der SQL-Syntax und anderen Faktoren remote auf SQL Server ausführen. Weitere Informationen finden Sie unter "JET-Datenbank-Engine Version 3.0: ODBC-Konnektivität" in Rediscovered JET- und ODBC-Whitepapers.

Häufig möchten Sie jedoch eine Abfrage explizit auf einem Datenbankserver ausführen. Dies tun Sie, um die Leistung zu verbessern: Datenbankserver haben eine höhere Rechenleistung 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 Transact SQL (TSQL)-Anweisung 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 (DML-Anweisungen (Data Manipulation Language) auszuführen), gespeicherte Prozeduren aufzurufen und Verwaltungsaufgaben auszuführen (Data Definition Language (DDL)-Anweisungen).

Hinweis Die Ergebnisse einer Pass-Through-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.

  1. Stellen Sie eine Verbindung zu 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 Serverdatenbank.
  2. Wählen Sie Abfrageentwurf erstellen> aus.
  3. Schließen Sie bei Bedarf das Dialogfeld "Tabellen hinzufügen " ("Tabelle in Access anzeigen.
  4. Wählen Sie "Design-Pass-Through>" aus.
    Access blendet das Abfrageentwurfsbereich aus und zeigt die SQL-Ansicht an.
  5. Wenn das Eigenschaftenblatt für die Abfrage nicht angezeigt wird, drücken Sie F4, um es anzuzeigen.
  6. Klicken Sie auf dem Eigenschaftenblatt auf das Eigenschaftenfeld ODBC Connect Str , und führen Sie dann einen der folgenden Schritte aus:

So rufen Sie eine Verbindungszeichenfolge ab:

  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 Tabellenverknüpfungs-Manager aus.
  2. Aktivieren Sie im Dialogfeld Tabellenverknüpfungs-Manager das Kontrollkästchen für die Datenquelle, und klicken Sie dann auf Bearbeiten.
  3. Kopieren Sie im Dialogfeld "Link bearbeiten " den Text im Feld "Verbindungszeichenfolge ".
  1. Geben Sie Ihre Abfrage in der SQL-Ansicht ein.
    Hinweis: Es gibt wichtige Unterschiede zwischen Access SQL und SQL Server TSQL, insbesondere hinsichtlich der Syntax, der Funktionsnamen und der Funktionsargumente. 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, kopieren Sie dann die SQL-Abfrage, und fügen Sie sie in die SQL-Ansicht ein. Dadurch wird sichergestellt, dass die Abfrage die richtige Syntax hat. Wenn Sie keinen bequemen Zugriff auf eine SQL Server Datenbank haben, sollten Sie Microsoft SQL Server Express Edition auf Ihrem Desktop installieren, die bis zu 10 GB unterstützt und eine kostenlose und einfachere Möglichkeit darstellt, Ihre Migration durchzuführen und zu überprüfen.

  2. Erwägen Sie, zusätzliche verwandte Eigenschaften festzulegen:

    • Returns Records Einige SQL-Anweisungen geben Datensätze zurück, z. B. SELECT, 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, setzen Sie diese Eigenschaft auf Nein.
      Hinweis Pass-Through-Abfragen können mehrere Resultsets zurückgeben, aber in einem Datenblatt, einem Formular, einem Bericht oder einer Recordset-Variablen wird nur das erste Resultset verwendet. Um mehrere Resultsets abzurufen, verwenden Sie 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 enthalten kann. Jedes Resultset wird in einer separaten Tabelle gespeichert, und Nummern werden entsprechend an die lokalen Tabellennamen angehängt. Wenn beispielsweise drei Resultsets zurückgegeben werden, lauten die Tabellennamen: <lokaler Tabellenname, <lokaler Tabellenname>> 1, <lokaler Tabellenname>2.

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

    • ODBC-Timeout Geben Sie die Anzahl der Sekunden an, die gewartet werden soll, bevor beim Ausführen einer Abfrage ein Timeoutfehler auftritt. Der Standardwert ist 60 Sekunden. Aufgrund des Netzwerkverkehrs oder der starken Auslastung des Datenbankservers kann es zu Verzögerungen kommen.

    • Max Records Geben Sie die maximale Anzahl der zurückzugebenden Datensätze an. Möglicherweise verfügen Sie nur über begrenzte Systemressourcen, oder Sie möchten Ihre Ergebnisse mit nur einer kleinen Datenmenge testen.

  3. Wenn Sie die Abfrage eingegeben haben, wählen Sie Entwurfsausführung> aus. Ihre Abfrage wird zur Verarbeitung an den Datenbankserver gesendet.

Siehe auch

Transact-SQL-Referenz

Abfragen mit Transact-SQL