Saturday, April 9, 2022

Erstellen Sie eine Pass-Through-Abfrage

Erstellen Sie eine Pass-Through-Abfrage

Sie können Access als Front-End-Anwendung verwenden und dann eine Verknüpfung zu 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 abhängig von der SQL-Syntax und anderen Faktoren eine Remoteabfrage auf SQL Server ausführen. Weitere Informationen finden Sie unter „JET Database Engine Version 3.0: ODBC Connectivity" in den Whitepapers „Wiederentdeckt zu 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 haben eine größere Verarbeitungsleistung als ein Desktop-Computer, und Sie können eine kleinere Teilmenge von 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-Anweisung (TSQL) handelt, die mithilfe einer ODBC-Verbindungszeichenfolge eine Verbindung mit SQL Server herstellt. Beispielsweise können Sie eine SELECT-Anweisung übergeben, um Daten an ein Datenblatt, Formular, einen Bericht oder ein 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 Ansicht. Weitere Informationen finden Sie unter Erstellen von indizierten Ansichten .

  1. Stellen Sie eine Verbindung zu einer Serverdatenbank her.

    Weitere Informationen zum Verknüpfen mit SQL Server 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 .

  2. Wählen Sie Erstellen > Abfrageentwurf aus .

  3. Schließen Sie ggf. das Dialogfeld Tabellen hinzufügen ( Tabelle in Access 2013 anzeigen.

  4. Wählen Sie Design > Pass-Through aus .

    Access blendet den Abfrageentwurfsbereich aus und zeigt die SQL-Ansicht an .

  5. Wenn das Abfrageeigenschaftenblatt 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 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 Linked Table Manager aus.

    2. Aktivieren Sie im Dialogfeld Linked Table Manager das Kontrollkästchen der Datenquelle und wählen Sie dann Bearbeiten aus.

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

    1. Wählen Sie Erstellen aus Builder-Schaltfläche .

    2. Befolgen Sie die Eingabeaufforderungen, 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:

    1. Suchen Sie mithilfe der gewünschten ODBC-Verbindung im Navigationsbereich nach einem verknüpften Tabellennamen.

    2. Drücken Sie Strg+G. um das VBA-Direktfenster zu öffnen.

    3. Geben Sie Folgendes ein: den folgenden Code:

       ?CurrentDb.TableDefs("<Tabellenname>").Connect

      Ersetzen Sie jedoch <table name> durch den verknüpften Tabellennamen aus Schritt a.

    4. Kopieren Sie die zurückgegebene Zeichenfolge in die Eigenschaft ODBC Connect Str .

  7. Geben Sie Ihre Abfrage in der 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 Vergleichen von Access SQL mit SQL Server TSQL .

    Tipp Erstellen Sie zuerst die TSQL-Abfrage in SQL Server Management Studio und kopieren Sie dann die SQL 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 die 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.

  8. 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, andere nicht, z. B. UPDATE. Wenn die Abfrage Datensätze zurückgibt, setzen Sie diese Eigenschaft auf Yes ; Wenn die Abfrage keine Datensätze zurückgibt, setzen Sie diese Eigenschaft auf No .

      Hinweis Pass-Through-Abfragen können mehrere Resultsets zurückgeben, aber in einer Datenblatt-, Formular-, Berichts- oder Recordset-Variablen wird nur das erste Resultset verwendet. Um mehrere Resultsets abzurufen, verwenden Sie eine Tabellenerstellungsabfrage, wie das folgende Beispiel zeigt:

       SELECT <Pass-Through-Abfragename>.*  INTO <lokaler Tabellenname>  FROM < Pass-Through-Abfragename >

      Sie müssen das Sternchen (*) verwenden, da jede Ergebnismenge unterschiedliche Spalten haben kann. Jede Ergebnismenge wird in einer separaten Tabelle gespeichert und Zahlen werden entsprechend an die lokalen Tabellennamen angehängt. Wenn beispielsweise drei Ergebnismengen zurückgegeben werden, lauten die Tabellennamen: <lokaler Tabellenname>, <lokaler Tabellenname>1, <lokaler Tabellenname>2.

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

    • ODBC-Zeitüberschreitung Geben Sie die Anzahl der Sekunden an, die gewartet werden soll, bevor ein Zeitüberschreitungsfehler auftritt, wenn eine Abfrage ausgeführt wird. Der Standardwert ist 60 Sekunden. Aufgrund von Netzwerkverkehr oder starker Nutzung des Datenbankservers kann es zu Verzögerungen kommen.

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

  9. Wenn Sie mit der Eingabe der Abfrage fertig sind, wählen Sie Entwurf > Ausführen aus. Ihre Anfrage wird zur Verarbeitung an den Datenbankserver gesendet.

Siehe auch

Transact-SQL-Referenz

Abfragen mit Transact-SQL

No comments:

Post a Comment