Můžete narazit na situace, kdy nemůžete upravit data v dotazech Zobrazení Datový list změnit data v podkladové tabulce. Tento článek vám pomůže pochopit, kdy můžete upravovat data dotazů, kdy nemůžete upravovat data dotazů a jak změnit návrh dotazu tak, abyste mohli upravovat jeho podkladová data.
V tomto článku
Úvod
Když otevřete dotaz v zobrazení Datový list, můžete zjistit, že chcete data upravit. Možná si všimnete chyby nebo se zobrazí informace, které jsou zastaralé. V závislosti na tom, jak byl dotaz sestaven, můžete data upravit přímo v dotazu Datový list.
Pokud se pokusíte upravit data v datovém listu dotazu, ale nic se nestane nebo systém Windows přehraje zvuk a úpravy neproběhly, nemůžete úpravy provést. Může se stát, že samotný dotaz není k dispozici pro úpravy, například křížový dotaz. Může se také stát, že pouze pole, které se pokoušíte upravit, není k dispozici pro úpravy – například pokud je pole založeno na agregační funkci, například na průměru. V obou případech můžete udělat něco, abyste povolili úpravy.
Kromě úprav dat v zobrazení Datový list dotazu můžete k aktualizaci dat v tabulce použít také Aktualizační dotaz. Tento článek se nezabývá aktualizačními dotazy.
Další informace o tomto typu dotazů najdete v článku Vytvoření a spuštění aktualizačního dotazu.
Když chcete upravit data v zobrazení Datový list dotazu, obvykle chcete, aby se změny uložily do tabulek, na kterých je dotaz založen. Pokud nechcete měnit data v těchto tabulkách, ale přesto chcete data upravit a po dokončení zachovat upravená data, můžete nejprve vytvořit novou tabulku, jejíž data budete moct upravovat, použít Vytvářecí dotaz. Vymýšlací dotaz můžete také použít k uložení výsledků dotazu, který neumožňuje úpravy, jako nové tabulky a následné úpravě dat v této nové tabulce. Tento článek nepojedná, jak vytvářet a spouštět vytvírací dotazy.
Další informace o vytvázkových dotazech najdete v článku Vytvoření vytvtvovacího dotazu.
Kdy můžu upravit data v dotazu?
Data v dotazu můžete kdykoli upravit, pokud je dotaz založený buď na jedné tabulce, nebo na dvou tabulkách, které nesou Relace 1:1.
Poznámka: I když můžete data v dotazu upravovat, některá jeho pole nemusí být k dispozici pro úpravy. Takové případy jsou uvedeny v následující části.
Kdy nelze upravovat data v dotazu?
Data v dotazu nemůžete nikdy upravovat v následujících případech:
-
Dotaz je Křížový dotaz.
-
Dotaz je Dotaz SQL.
-
Pole, které se pokoušíte upravit, je Vypočítané pole. V takovém případě můžete upravit ostatní pole.
-
Dotaz je založený na třech nebo více tabulkách a existuje relace M:1:N.
Poznámka: I když v tomto případě nemůžete datový list dotazu upravit, můžete data ve formuláři upravit, pokud je vlastnost RecordsetType formuláře nastavená na Dynaset (Nekonzistentní Aktualizace).
-
Dotaz obsahuje klauzuli GROUP BY.
Návody změnit dotaz, abych mohl upravit jeho data?
Následující tabulka uvádí případy, kdy nelze upravit dotaz ve spojení s metodami pro zpřístupnění datového listu dotazu pro úpravy.
Hodnoty v datovém listu dotazu nelze upravit v následujících případech: |
Zpřístupnění datového listu dotazu pro úpravy: |
Vlastnost Jedinečné hodnoty dotazu je nastavená na Ano. |
Nastavte vlastnost Jedinečné hodnoty dotazu na Hodnotu Ne. Informace o nastavení této vlastnosti najdete v následující části Nastavení vlastnosti Jedinečné hodnoty na hodnotu Ne. |
Dotaz obsahuje propojenou Databáze ODBC tabulku bez Jedinečný index nebo tabulku Paradox bez Primární klíč. |
Přidejte primární klíč nebo jedinečný index do propojené tabulky pomocí metod poskytovaných dodavatelem propojené databáze. |
Nemáte oprávnění k aktualizaci dat pro podkladovou tabulku. |
Přiřaďte oprávnění Aktualizovat data. |
Dotaz obsahuje více než jednu tabulku nebo jeden dotaz a tabulky nebo dotazy nejsou v návrhovém zobrazení spojeny spojnicovým řádkem. |
Vytvořte odpovídající spojení. Informace o vytváření spojení najdete v části Vytváření spojení. |
Databáze je otevřená jen pro čtení nebo se nachází na jednotce jen pro čtení. |
Zavřete databázi a znovu ji otevřete bez výběru možnosti Otevřít jen pro čtení. Nebo pokud se databáze nachází na jednotce jen pro čtení, odeberte z jednotky atribut jen pro čtení nebo přesuňte databázi na jednotku, která není určena jen pro čtení. |
Pole v záznamu, který se pokoušíte aktualizovat, je odstraněno nebo je uzamčeno jiným uživatelem. |
Počkejte, až se záznam odemkne. Uzamčený záznam je možné aktualizovat, jakmile se záznam odemkne. Počkejte, až druhý uživatel dokončí operaci, která záznam zamkla. |
Dotaz je založený na tabulkách s Relace 1:N a pole spojení ze strany N není výstupní pole. V tomto případě nelze upravit data v poli spojení ze strany "jedna". |
Přidejte pole spojení ze strany N relace do výstupních polí dotazu. Informace o přidání pole spojení najdete v části Přidání pole spojení ze strany "N" do výstupních polí dotazu. |
Pole spojení ze strany N (po úpravě dat) je na straně "jedna". |
Stisknutím kombinace kláves SHIFT+F9 potvrďte změny a aktualizujte dotaz. |
Na straně "1" relace 1:N je prázdné pole z tabulky a spojení je pravé vnější spojení. |
Ujistěte se, že pole obsahuje hodnotu na straně "jedna". Pole spojení na straně N můžete upravit pouze v případě, že je v poli na straně "jedna" hodnota. |
Používáte propojenou tabulku databáze ODBC a ve výstupu dotazu nejsou všechna pole z jedinečného indexu propojené tabulky. |
Přidejte všechna pole z jedinečného indexu tabulky ODBC do výstupních polí dotazu. Informace o přidání polí najdete v části Přidání jedinečných polí indexu z propojené tabulky ODBC. |
Nastavte vlastnost Jedinečné hodnoty na Hodnotu Ne.
-
Otevřete dotaz v návrhovém zobrazení.
-
Pokud seznam vlastností není otevřený, otevřete ho stisknutím klávesy F4. Jedním kliknutím do návrhové mřížky dotazu zajistíte, že seznam vlastností zobrazuje vlastnosti dotazu, nikoli vlastnosti pole.
-
V seznamu vlastností najděte pole vlastnosti Jedinečné hodnoty . Klikněte na pole vedle něj, klikněte na šipku v něm a potom klikněte na Ne.
Vytvoření spojení
-
Otevřete dotaz v návrhovém zobrazení.
-
U každé tabulky nebo dotazu, které chcete spojit s jinou, přetáhněte pole spojení z této tabulky nebo dotazu do odpovídajícího pole v tabulce nebo dotazu, pro který chcete spojení vytvořit.
Další informace o vytváření spojení najdete v článku Spojení tabulek a dotazů.
Přidání pole spojení ze strany N do výstupních polí dotazu
-
Otevřete dotaz v návrhovém zobrazení.
-
V návrháři dotazů vyhledejte spojení, které odpovídá příslušné relaci 1:N.
-
Poklikejte na pole spojení ze strany N relace 1:N. Pole spojení se zobrazí v mřížce polí, což znamená, že se jedná o výstupní pole.
Přidání jedinečných polí indexu z propojené tabulky ODBC
-
Otevřete dotaz v návrhovém zobrazení.
-
V návrháři dotazů vyhledejte propojenou tabulku ODBC.
-
Pole jedinečného indexu budou mít vedle názvu pole symbol klíče. Poklikejte na každé pole, které ještě není v mřížce polí. Každé pole se zobrazí v mřížce polí, což znamená, že se teď jedná o výstupní pole.