Pokud chcete rychle odstranit velké množství dat nebo pravidelně odstraňovat sadu dat v desktopové databázi Accessu, může být užitečný odstraňovací nebo aktualizační dotaz, protože tyto dotazy umožňují zadat kritéria pro rychlé vyhledání a odstranění dat. Použití dotazu taky může ušetřit čas, protože uložený dotaz můžete znovu použít.
Poznámka
Před odstraněním libovolných dat nebo spuštěním odstraňovacího dotazu nezapomeňte zálohovat desktopovou databázi Accessu.
Pokud chcete odstranit jen několik záznamů, nepotřebujete dotaz. Stačí otevřít tabulku v zobrazení Datový list, vybrat pole (sloupce) nebo záznamy (řádky), které chcete odstranit, a stisknout DELETE.
Důležité
Informace v tomto článku jsou určeny pouze pro použití s desktopovými databázemi. Odstraňovací ani aktualizační dotazy nemůžete používat ve webových aplikacích pro Access.
V tomto článku
- Volba typu dotazu
- Použití odstraňovacího dotazu
- Použití aktualizačního dotazu
- Další informace
- Tipy pro odstraňování potíží
Volba typu dotazu
K odstranění dat z databáze můžete použít buď aktualizační dotaz, nebo odstraňovací dotaz. Vyberte dotaz na základě podrobností v následující tabulce:
| Typ dotazu | Kdy použít | Výsledky |
|---|---|---|
| Použití odstraňovacího dotazu | Odebrání celých záznamů (řádků) z jedné nebo ze dvou souvisejících tabulek současně. Poznámka: Pokud se záznamy nacházejí na straně 1 relace 1:N, bude před spuštěním odstraňovacího dotazu pravděpodobně potřeba relaci změnit. Viz část o odstraňování dat ze souvisejících tabulek. |
Odstraňovací dotazy odeberou všechna data v jednotlivých polích, včetně hodnoty klíče, která činí záznam jedinečným |
| Použití aktualizačního dotazu | Odstranění jednotlivých hodnot polí z tabulky. | Usnadní odstranění hodnot aktualizací existujících hodnot na hodnotu Null (tj. žádná data) nebo řetězec nulové délky (dvojice dvojitých uvozovek bez mezery). |
Co je potřeba ověřit, než použijete dotaz k odstranění dat
Ujistěte se, že soubor není jen pro čtení:
- Klikněte pravým tlačítkem myši na tlačítko Start a klikněte na příkaz Otevřít Průzkumníka Windows.
- Klikněte na soubor databáze pravým tlačítkem myši a klikněte na příkaz Vlastnosti.
- Podívejte se, jestli je vybraný atribut Jen pro čtení .
Ověřte, zda máte potřebná oprávnění k odstranění záznamů z databáze. Pokud si nejste jisti, obraťte se na správce systému nebo na návrháře databáze.
Ujistěte se, že jste v databázi povolili obsah. Ve výchozím nastavení Access blokuje všechny akční dotazy (odstraňovací, aktualizační a vytvářecí dotazy) – pokud databázi předtím neoznačíte za důvěryhodnou. Informace o důvěryhodnosti databáze najdete v části Ukončení blokování dotazů režimem vypnutí dotazu.
Požádejte ostatní uživatele databáze, aby zavřeli všechny tabulky, formuláře, dotazy a sestavy používající data, která chcete odstranit. To pomáhá zabránit porušení uzamčení.
Před úpravou nebo odstraněním záznamů je vhodné vytvořit záložní kopii databáze pro případ, že byste chtěli vrátit změny zpět.
Tip:
Pokud se k databázi připojuje velký počet uživatelů, budete možná muset databázi zavřít a znovu ji otevřít ve výhradním režimu.
Otevření databáze ve výhradním režimu
- Klikněte na kartu>Soubor Otevřít.
- Vyhledejte databázi a ukažte, abyste ji vybrali, klikněte na šipku vedle tlačítka Otevřít a pak klikněte na příkaz Otevřít s výhradním přístupem.
Zálohování databáze
- Klikněte na kartu Soubor a přejděte na příkaz Uložit jako.
- Klikněte na Uložit databázi jako a klikněte na Zálohovat databázi. Access zavře původní soubor, vytvoří jeho záložní kopii a znovu otevře původní soubor.
- Klikněte na Uložit jako , zadejte název a umístění záložní kopie a klikněte na Uložit.
Poznámka
Pokud používáte databázi jen pro čtení nebo databázi vytvořenou v předchozí verzi Accessu, může se zobrazit zpráva, že není možné vytvořit záložní kopii databáze.
Chcete-li se vrátit k záloze, zavřete původní soubor a přejmenujte jej tak, aby záložní kopie mohla používat název původní verze. Přiřaďte název původní verze záložní kopii a otevřete přejmenovanou záložní kopii v Accessu.
Použití odstraňovacího dotazu
Pokud chcete vytvořit odstraňovací dotaz, klikněte na kartě Vytvořit , ve skupině Dotazy klikněte na Návrh dotazu. Poklikejte na každou tabulku, ze které chcete odstranit záznamy, a pak klikněte na tlačítko Zavřít.
Tabulka se zobrazí v podobě okna v horní části návrhové mřížky dotazu. V seznamu polí poklikejte na hvězdičku (*), abyste do návrhové mřížky přidali všechna pole v tabulce.
Použití konkrétních kritérií v odstraňovacím dotazu
Důležité
Pomocí kritérií vracejte jenom ty záznamy, které chcete odstranit. V opačném případě odstraňovací dotaz odebere všechny záznamy v tabulce.
Poklikejte na pole, které chcete určit jako kritérium odstranění, zadejte jedno z kritérií do řádku Kritéria v návrháři dotazu a potom zrušte zaškrtnutí políčka Zobrazit u jednotlivých polí kritérií.
Příklad, kdy můžete chtít tuto možnost použít: Předpokládejme, že chcete odebrat všechny nevyřízené objednávky zákazníka. Pokud chcete najít jenom tyto záznamy, přidejte do návrhové mřížky dotazu pole Kód zákazníka a Datum objednávky a potom zadejte identifikační číslo zákazníka a datum, kdy se objednávky tohoto zákazníka staly neplatnými.
- Na kartě Návrh klikněte na Zobrazit>zobrazení datového listu.
- Ověřte, zda dotaz vrací záznamy, které chcete odstranit, a poté stisknutím kombinace kláves CTRL+S dotaz uložte.
- Chcete-li dotaz spustit, poklikejte na něj v navigačním podokně.
Použití aktualizačního dotazu
Poznámka
Možnost aktualizačního dotazu nemůžete použít ve webové aplikaci pro Access.
Tato část vysvětluje, jak pomocí aktualizačního dotazu odstranit jednotlivá pole z tabulky. Nezapomeňte, že spuštění aktualizačního dotazu za účelem odstranění dat změní stávající hodnoty v závislosti na zadaných kritériích buď na hodnotu NULL, nebo na řetězec nulové délky (dvojice uvozovek bez mezery mezi nimi).
Klikněte na kartu Vytvoření a ve skupině Dotazy klikněte na Návrh dotazu.
Vyberte tabulku obsahující data, která chcete odstranit (pokud tabulka souvisí, vyberte tabulku na straně 1 relace), klikněte na tlačítko Přidat a potom klikněte na tlačítko Zavřít.
Tabulka se zobrazí v podobě okna v horní části návrhové mřížky dotazu. V okně se zobrazí seznam všech polí ve vybrané tabulce.Poklikáním na hvězdičku (*) přidáte všechna pole v tabulce do návrhové mřížky. Po přidání všech polí tabulky bude odstraňovací dotaz moct z tabulky odebrat celé záznamy (řádky).
Volitelně můžete zadat kritéria pro jedno nebo více polí v řádku Kritéria návrháře a potom zrušit zaškrtnutí políčka Zobrazit pro každé pole kritérií. Další informace o používání kritérií najdete v tabulce Ukázková kritéria pro výběrové dotazy .Poznámka
Pomocí kritérií se vracejí jenom záznamy, které chcete změnit. V opačném případě aktualizační dotaz nastaví hodnotu NULL u všech záznamů v jednotlivých polích dotazu.
Na kartě Návrh klikněte ve skupině Výsledky na položku Zobrazení a potom na položku Zobrazení Datový list.
Ověřte, že dotaz vrací záznamy, které chcete nastavit na hodnotu NULL nebo řetězec nulové délky (dvojice uvozovek bez mezery ("").
Podle potřeby opakujte kroky 3 až 5 a měňte pole nebo kritéria tak dlouho, dokud dotaz nevrátí pouze data, která chcete odstranit. Potom stisknutím kombinace kláves CTRL+S dotaz uložte.
Chcete-li dotaz spustit, poklikejte na něj v navigačním podokně.
Další informace
Odstranění dat ze souvisejících tabulek
Pokud chcete odstranit data z několika souvisejících tabulek, musíte pro každou relaci povolit možnosti Referenční integrita a Kaskádové odstranění souvisejících záznamů . Díky tomu může dotaz odstranit data z tabulek na straně 1 a N relace. Příprava na odstranění souvisejících dat vyžaduje ověření následujících skutečností:
- Určete, které záznamy jsou umístěné na straně 1 relace a které na straně N.
- Pokud potřebujete odstranit záznamy na straně 1 relace a související záznamy na straně N, povolte sadu pravidel nazvanou referenční integrita a kaskádové odstranění. Postupy v této části vysvětlují referenční integritu a provedení obou úloh.
- Pokud potřebujete odstranit záznamy pouze na straně 1 relace, je třeba nejprve odstranit tuto relaci a potom odstranit data.
Pokud potřebujete odebrat data jenom na straně N relace, můžete vytvořit a spustit odstraňovací dotaz, aniž byste museli relaci měnit.
Chcete-li zjistit, které záznamy jsou umístěny na straně 1 a N relace, klikněte na kartě Databázové nástroje ve skupině Relace na položku Relace. Karta Relace zobrazuje tabulky v databázi a relace. Každá relace je znázorněna jako čára, která spojuje tabulky mezi poli.
Následující obrázek znázorňuje typickou relaci. Většina relací v databázi má stranu 1 a stranu N. Diagram vztahů označuje stranu "1" číslicí jedna (1) a stranu "N" symbolem nekonečna (∞).
Při odstranění záznamů na straně 1 této relace odstraníte také všechny související záznamy na straně N této relace. Pokud však odstraňujete záznamy na straně N relace, obvykle neodstraňujete záznamy na straně 1.
Access taky automaticky vynucuje sadu pravidel nazývaných referenční integrita. Tato pravidla zajišťují, aby cizí klíče v databázi obsahovaly správné hodnoty. Cizí klíč je sloupec, jehož hodnoty odpovídají hodnotám ve sloupci primárního klíče jiné tabulky.
Úprava relace
Použijte tento postup pouze v případě, že potřebujete odstranit data na straně 1 a N relace.
Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.
Klikněte pravým tlačítkem myši na relaci (čáru) spojující tabulky zahrnuté do operace odstranění a v místní nabídce klikněte na příkaz Upravit relaci .
V dialogovém okně Upravit relace ověřte, zda je zaškrtnuto políčko Zajistit referenční integritu .
Zaškrtněte políčko Kaskádové odstranění souvisejících záznamů .
Poznámka
Dokud tuto vlastnost znovu nezakážete, odstraní se při odstranění záznamu na straně 1 relace všechny související záznamy na straně N relace.
Klikněte na OK, zavřete podokno Relace a přejděte k další skupině kroků.
Odstranění relace
- Pokud jste to ještě neudělali, otevřete podokno Relace .
- Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.
Poznamenejte si pole, která jsou součástí relace, abyste mohli relaci po odstranění dat obnovit. - Klikněte pravým tlačítkem myši na relaci (čáru) spojující tabulky zahrnuté v operaci odstranění a v místní nabídce klikněte na příkaz Odstranit .
Poznámka
Chcete-li obnovit relaci, postupujte podle předchozích kroků pro otevření podokna Relace a potom přetáhněte pole primárního klíče z tabulky 1 do pole cizího klíče v tabulce N. Zobrazí se dialogové okno Upravit relaci . Pokud stará relace vynucovala referenční integritu, vyberte Zajistit referenční integritu a klikněte na Vytvořit. V opačném případě stačí kliknout na Vytvořit.
Ukázková kritéria pro výběrové dotazy
V následující tabulce jsou uvedena některá ukázková kritéria, která můžete použít ve výběrových dotazech, když chcete mít jistotu, že odstraníte jenom data, která chcete odstranit. Některé z těchto příkladů používají zástupné znaky.
| Kritéria: | Vliv |
|---|---|
| > 234 | Vrátí všechna čísla větší než 234. Chcete-li nalézt všechna čísla menší než 234, použijte < 234. |
| >= "Cajhen" | Vrátí všechny záznamy od Novák až do konce abecedy. |
| Between #2.2.2010# And #1.12.2010# | Vrátí data od 2. 2. 2010 do 1. 12. 2010 (ANSI-89). Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo křížků (#) jednoduché uvozovky ('). Příklad: Between '2.2.2010' And '1.12.2010'. |
| Not "Německo" | Najde všechny záznamy, ve kterých obsah pole není přesně „Německo“. Toto kritérium vrátí i záznamy, které kromě textu „Německo“ obsahují ještě další znaky, například „Německo (euro)“ nebo „Evropa (Německo)“. |
| Not "T*" | Najde všechny záznamy s výjimkou těch, které začínají písmenem T. Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo hvězdičky (*) znak procenta (%). |
| Not "*t" | Vyhledá všechny záznamy, které nekončí písmenem t. Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo hvězdičky (*) znak procenta (%). |
| In(Kanada,VB) | V seznamu vyhledá všechny záznamy obsahující slova Kanada nebo VB. |
| Like "[A-D]*" | Vyhledá v textovém poli všechny záznamy začínající na písmena A až D. Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo hvězdičky (*) znak procenta (%). |
| Like "*ar*" | Vyhledá všechny záznamy obsahující po sobě jdoucí písmena „ar“. Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo hvězdičky (*) znak procenta (%). |
| Like "Maison Dewe?" | Najde všechny záznamy začínající slovem Maison a obsahující druhý řetězec o délce pět písmen, jehož první čtyři písmena jsou Dewe a poslední písmeno je libovolné. Pokud se v databázi používá sada zástupných znaků ANSI-92, používejte místo otazníku (?) podtržítko (_). |
| #2/2/2010# | Vyhledá všechny záznamy z 2. 2. 2010. Pokud se v databázi používá sada zástupných znaků ANSI-92, ohraničte datum místo křížků jednoduchými uvozovkami ('2.2.2010'). |
| < Date() - 30 | Použije funkci Date k vrácení všech dat starších než 30 dní. |
| Date() | Použije funkci Date k vrácení všech záznamů obsahujících aktuální datum. |
| Between Date() And DateAdd("M"; 3; Date()) | Pomocí funkcí Date a DateAdd vrátí všechny záznamy mezi aktuálním datem a datem za tři měsíce. |
| Is Null | Vrátí všechny záznamy obsahující hodnotu Null (prázdná nebo nedefinovaná hodnota). |
| Is Not Null | Vrátí všechny záznamy, které obsahují libovolnou hodnotu (které nejsou null). |
| "" | Vrátí všechny záznamy obsahující řetězec nulové délky. Řetězec nulové délky použijete, chcete-li přidat hodnotu do požadovaného pole, ale ještě nevíte, jaká je skutečná hodnota. Pole může například vyžadovat faxové číslo, ale některý z vašich zákazníků možná nevlastní fax. V takovém případě zadejte místo čísla dvojici uvozovek bez mezery (""). |
Tipy pro odstraňování potíží
Proč se zobrazuje tato chybová zpráva a jak je možné chybu opravit?
Pokud vytvoříte odstraňovací dotaz s použitím více tabulek a vlastnost Jedinečné záznamy daného dotazu je nastavena na hodnotu Ne, zobrazí Access chybovou zprávu. Při spuštění dotazu nejde odstranit ze zadaných tabulek .
Tento problém vyřešíte nastavením vlastnosti Jedinečné záznamy dotazu na hodnotu Ano.
- Otevřete odstraňovací dotaz v návrhovém zobrazení.
- Pokud není zobrazen seznam vlastností dotazu, otevřete ho stisknutím klávesy F4.
- Kliknutím na návrhář dotazů zobrazíte vlastnosti dotazu (a nikoli vlastnosti pole).
- V seznamu vlastností dotazu vyhledejte vlastnost Jedinečné záznamy a nastavte ji na hodnotu Ano.
Ukončení blokování dotazů režimem vypnutí
Pokud otevřete desktopovou databázi, kterou jste neoznačili za důvěryhodnou nebo která není uložena v důvěryhodném umístění, Access ve výchozím nastavení zablokuje spuštění všech akčních dotazů.
Není-li při pokusu o spuštění akčního dotazu provedena žádná akce, ověřte, zda není na stavovém řádku Accessu zobrazena následující zpráva:
Akce či událost byly blokovány režimem vypnutí.
Když uvidíte tuto zprávu, proveďte následující krok a blokovaný obsah povolte:
- Na panelu zpráv upozornění zabezpečení klikněte na Povolit obsah a spusťte dotaz znovu.