Řešení chyb, ke kterým může dojít při aktualizaci dat v dotazech a formulářích Accessu

Původní číslo KB: 328828

Poznámka

Vyžaduje základní dovednosti v oblasti maker, kódování a vzájemné spolupráce. Tento článek se týká databáze aplikace Microsoft Access (.mdb a .accdb) a projektu aplikace Microsoft Access (.adp).

Tento článek popisuje chyby, ke kterým může dojít v aplikaci Microsoft Access při aktualizaci dat v dotazech a formulářích. Tento článek také popisuje příčiny chyb a způsob řešení těchto chyb.

Při pokusu o aktualizaci dat v dotazu nebo ve formuláři se může zobrazit jedna z následujících chybových zpráv:

Operace musí používat aktualizovatelný dotaz.

-Nebo-

Tato sada záznamů není aktualizovatelná.

Informace o řešení potíží, ke kterým může dojít při aktualizaci dat v dotazu

  • Pokud je dotaz založený na třech nebo více tabulkách a existuje relace M:1:N, nemůžete data aktualizovat přímo v dotazu. Data můžete aktualizovat ve formuláři nebo na datové stránce. Můžete to udělat na základě dotazu, když RecordsetType je vlastnost formuláře nastavená na Dynaset(Nekonzistentní Aktualizace).

  • Pokud se jedná o křížový dotaz, nemůžete aktualizovat data v dotazu.

  • Pokud je dotazem předávací dotaz Microsoft SQL, nemůžete data v dotazu aktualizovat.

  • Když dotaz počítá součet, průměr, počet nebo jiný typ součtu z hodnot v poli, nemůžete data v dotazu aktualizovat. Nelze také aktualizovat dotaz, který odkazuje na pole v řádku Aktualizovat do z křížové tabulky, dotazu, výběrového dotazu nebo poddotazu, který obsahuje součty nebo agregační funkce. Chcete-li tento problém vyřešit, použijte funkci Domain Aggregate v řádku Aktualizovat do aktualizačního dotazu. Na pole můžete odkazovat z křížového dotazu, výběrového dotazu nebo poddotazu, který obsahuje součty nebo agregační funkce.

  • Pokud je dotazem sjednocovací dotaz, nemůžete aktualizovat data v dotazu.

  • Pokud je vlastnost Jedinečné hodnoty dotazu nastavená na Hodnotu Ano, nelze aktualizovat data v dotazu. Chcete-li tento problém vyřešit, nastavte vlastnost Jedinečné hodnoty dotazu na Hodnotu Ne.

  • Pokud dotaz obsahuje propojenou tabulku ODBC bez jedinečného indexu nebo tabulku Paradox bez primárního klíče, nemůžete aktualizovat data v dotazu. Chcete-li tento problém vyřešit, přidejte primární klíč nebo jedinečný index do propojené tabulky.

  • Pokud nemáte oprávnění Aktualizovat data pro dotaz nebo podkladovou tabulku, nemůžete aktualizovat data. Pokud chcete tento problém vyřešit, přiřaďte oprávnění k aktualizaci dat.

  • Pokud dotaz obsahuje více než jednu tabulku nebo jeden dotaz a tabulky nebo dotazy nejsou v návrhovém zobrazení spojeny spojnicovým řádkem, nelze data v dotazu aktualizovat. Pokud chcete tento problém vyřešit, musíte tabulky správně spojit, abyste je mohli aktualizovat.

  • Pokud je pole, které chcete aktualizovat, počítané pole, nelze aktualizovat data v dotazu.

  • Pokud je pole, které se pokoušíte aktualizovat, jen pro čtení, databáze je otevřená jen pro čtení nebo je databáze umístěna na jednotce jen pro čtení, nelze aktualizovat data v dotazu. Chcete-li se tomuto problému vyhnout, neotevírejte databázi jen pro čtení. Pokud se databáze nachází na jednotce, která je jen pro čtení, odeberte z jednotky atribut jen pro čtení nebo přesuňte databázi na jednotku, která není jen pro čtení.

  • Když je pole v záznamu, který se pokoušíte aktualizovat, odstraněno nebo uzamčeno jiným uživatelem, nelze aktualizovat data v dotazu. Uzamčený záznam je možné aktualizovat, jakmile se záznam odemkne.

  • Pokud je dotaz založený na tabulkách s relací 1:N, pak typy polí, které možná nebudete moct upravit, jsou následující:

    • Spojit pole ze strany "jedna".
    • Pole spojení na straně N se v datovém listu nezobrazuje.
    • Pole spojení ze strany N po aktualizaci dat na straně "jedna"
    • Existuje prázdné pole z tabulky na straně "1" relace 1:N s vnějším spojením.
    • Celý jedinečný klíč tabulky ODBC není výstupem.

    Některý z těchto problémů můžete vyřešit, pokud provedete správnou akci z následujícího seznamu:

    • Povolte kaskádové aktualizace mezi těmito dvěma tabulkami.
    • Přidejte do dotazu pole join ze strany N, abyste mohli přidat nové záznamy.
    • Uložte záznam. V poli spojení na straně "N" můžete provést změny.
    • Zadejte hodnoty do polí tabulky na straně N. Můžete to udělat jenom v případě, že spojené pole ze strany "jedna" obsahuje hodnotu pro daný záznam.
    • Vyberte všechna pole primárního klíče tabulek ODBC, aby bylo možné je vložit.

Informace o řešení potíží, ke kterým může dojít při aktualizaci dat ve formuláři

  • Data ve formuláři nelze aktualizovat, pokud je formulář založen na uložené proceduře s více než jednou tabulkou.

  • Data ve formuláři nelze aktualizovat, pokud je formulář založen na sadě záznamů ADO (ActiveX Data Objects). Formuláře aplikace Access umožňují upravovat data ze sady záznamů ADO, pokud je sada záznamů ADO vytvořena pomocí kombinace zprostředkovatelů MSDataShape a SQL Server OLEDB.