Vytvoření předávacího dotazu
Applies ToAccess pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access můžete použít jako front-endovou aplikaci a pak propojit tabulky na back-endovém serveru, jako je SQL Server. Ve výchozím nastavení se většina dotazů spouští místně v databázovém stroji Access ACE. V některých případech může Access vzdáleně spustit dotaz na SQL Serveru v závislosti na syntaxi SQL a dalších faktorech. Další informace najdete v tématu "Databázový stroj JET verze 3.0: Připojení ODBC" v dokumentech white paper o opětovném zjišťování jet a ODBC.

Často ale chcete explicitně spustit dotaz na databázovém serveru. Uděláte to proto, abyste zlepšili výkon: databázové servery mají větší výpočetní výkon než stolní počítač a přes síťové připojení můžete vrátit menší podmnožinu dat. Pokud chcete spustit dotaz na databázovém serveru, použijte Předávací dotaz což je příkaz jazyka Transact SQL (TSQL), který se připojuje k SQL Serveru pomocí připojovacího řetězce ODBC. Můžete například předat příkaz SELECT pro vrácení dat do ovládacího prvku datový list, formulář, sestavu nebo seznam, spustit ekvivalent akčních dotazů (příkazy DML (Data Manipulation Language), volat uložené procedury a provádět úlohy správy (příkazy DDL (Data Definition Language).

Poznámka:    Výsledky předávacího dotazu jsou jen pro čtení. Pokud chcete data přímo upravovat v datovém listu nebo formuláři, vytvořte propojenou tabulku do indexovaného zobrazení. Další informace najdete v tématu Vytvoření indexovaných zobrazení.

  1. Připojte se k databázi serveru.

    Další informace o propojení s SQL Serverem najdete v tématech Import nebo propojení dat v databázi SQL Serveru a Propojení nebo import dat z databáze Azure SQL Serveru.

  2. Vyberte Vytvořit > návrh dotazu.

  3. V případě potřeby zavřete dialogové okno Přidat tabulky (Zobrazit tabulku v Accessu).

  4. Vyberte Návrh >průchozí.

    Access skryje návrhovou mřížku dotazu a zobrazí zobrazení SQL.

  5. Pokud se seznam vlastností dotazu nezobrazí, zobrazte ho stisknutím klávesy F4.

  6. V seznamu vlastností klikněte na pole vlastnosti ODBC Connect Str a proveďte jednu z následujících akcí:

    Získání připojovacího řetězce:

    1. V navigačním podokně klikněte pravým tlačítkem na tabulku propojenou s požadovaným zdrojem dat a vyberte Správce propojených tabulek.

    2. V dialogovém okně Správce propojených tabulek zaškrtněte políčko zdroje dat a pak vyberte Upravit.

    3. V dialogovém okně Upravit odkaz zkopírujte text do pole Připojovací řetězec .

    1. Vyberte Sestavit Tlačítko Tvůrce.

    2. Postupujte podle pokynů a vytvořte soubor DSN, který obsahuje informace o připojovacím řetězci. Podrobný postup najdete v tématech Import nebo propojení dat v databázi SQL Serveru a Propojení nebo import dat z databáze Azure SQL Serveru.

    Po vytvoření připojení k souboru DSN se připojovací řetězec ODBC interně uloží do databáze Accessu. Tady je trik, jak získat kopii tohoto řetězce:

    1. Pomocí požadovaného připojení ODBC vyhledejte v navigačním podokně název propojené tabulky.

    2. Stiskněte Ctrl+G. a otevřete okno VBA Immediate.

    3. Zadejte následující kód:

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

      Ale nahraďte <název tabulky> název propojené tabulky z kroku a.

    4. Zkopírujte vrácený řetězec do vlastnosti ODBC Connect Str .

  7. Zadejte dotaz v zobrazení SQL.

    Poznámka: Mezi Accessem SQL a SQL Serverem TSQL existují důležité rozdíly, zejména pokud jde o syntaxi, názvy funkcí a argumenty funkce. Další informace najdete v článku Porovnání Accessového SQL s SQL Serverem TSQL.

    Tip    Nejprve sestavte dotaz TSQL v aplikaci SQL Server Management Studio a pak zkopírujte a vložte SQL do zobrazení SQL. Tím se zajistí správná syntaxe dotazu. Pokud nemáte pohodlný přístup k databázi SQL Serveru, zvažte instalaci edice Microsoft SQL Server Express na stolním počítači, která podporuje až 10 GB a představuje bezplatný a jednodušší způsob, jak provést migraci a zkontrolovat ji.

  8. Zvažte nastavení dalších souvisejících vlastností:

    • Vrátí záznamy.     Některé příkazy SQL vrací záznamy, například SELECT, a jiné ne, například UPDATE. Pokud dotaz vrací záznamy, nastavte tuto vlastnost na Ano; Pokud dotaz nevrací záznamy, nastavte tuto vlastnost na Ne.

      Poznámka:    Předávací dotazy můžou vrátit více sad výsledků, ale v datovém listu, formuláři, sestavě nebo proměnné sady záznamů se používá pouze první sada výsledků. Pokud chcete načíst více sad výsledků, použijte vymyšlovací dotaz , jak ukazuje následující příklad:

      SELECT <pass-through query name>.*
      INTO <local table name>
      FROM < pass-through query name >

      Musíte použít hvězdičku (*), protože každá sada výsledků může mít jiné sloupce. Každá sada výsledků se uloží do samostatné tabulky a čísla se odpovídajícím způsobem připojí k názvům místních tabulek. Pokud se například vrátí tři sady výsledků, názvy tabulek budou: <název místní tabulky>, <název místní tabulky>1, <název místní tabulky>2.

    • Protokolovat zprávy    Určete, jestli se mají vracet zprávy z databáze SQL v tabulce zpráv accessu. Název tabulky má formát username – nn, kde uživatelské jméno je přihlašovací jméno aktuálního uživatele a nn je číslo začínající na 00.

    • Časový limit rozhraní ODBC    Zadejte, kolik sekund se má čekat, než při spuštění dotazu dojde k chybě vypršení časového limitu. Ve výchozím nastavení je tato hodnota 60 sekund Zpoždění může být způsobeno síťovým provozem nebo velkým využitím databázového serveru.

    • Maximální počet záznamů    Zadejte maximální počet záznamů, které se mají vrátit. Možná máte omezené systémové prostředky nebo chcete výsledky otestovat jenom s malým množstvím dat.

  9. Po zadání dotazu vyberte Návrh > Spustit. Dotaz se odešle na databázový server ke zpracování.

Viz také

Referenční informace k jazyku Transact-SQL

Dotazování pomocí jazyka Transact-SQL

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.