Ak chcete rýchlo odstrániť veľké množstvo údajov alebo pravidelne odstraňovať množinu údajov v počítačovej databáze Accessu, odstraňovací alebo aktualizačný dotaz môže byť užitočný, pretože dotazy umožňujú zadať kritériá na rýchle vyhľadanie a odstránenie údajov. Použitie dotazu môže tiež ušetriť čas, pretože uložený dotaz môžete opätovne použiť.
Poznámka
Pred odstránením akýchkoľvek údajov alebo spustením odstraňovacieho dotazu skontrolujte, či máte vytvorenú zálohu accessovej počítačovej databázy.
Ak chcete odstrániť len niekoľko záznamov, nepotrebujete dotaz. Stačí iba otvoriť tabuľku v údajovom zobrazení, vybrať polia (stĺpce) alebo záznamy (riadky), ktoré chcete odstrániť, a potom stlačiť kláves DELETE.
Dôležité
Informácie v tomto článku sú určené na použitie len pri databázach v počítači. Vo webových aplikáciách Accessu nemožno používať odstraňovacie ani aktualizačné dotazy.
Obsah tohto článku
- Výber typu dotazu
- Použitie odstraňovacieho dotazu
- Použitie aktualizačného dotazu
- Ďalšie informácie
- Tipy na riešenie problémov
Výber typu dotazu
Na odstránenie údajov z databázy môžete použiť aktualizačný alebo odstraňovací dotaz. Vyberte dotaz na základe podrobností v nasledujúcej tabuľke:
| Typ dotazu | Použitie | Výsledky |
|---|---|---|
| Použitie odstraňovacieho dotazu | Odstránenie celých záznamov (riadkov) z tabuľky alebo z dvoch súvisiacich tabuliek naraz. Poznámka: Ak sa záznamy nachádzajú na strane "one" vzťahu "one-to-many", je možné, že pred spustením odstraňovacieho dotazu bude pravdepodobne potrebné zmeniť vzťah. Pozrite si časť o odstraňovaní údajov zo súvisiacich tabuliek. |
Odstraňovacie dotazy Odstránia všetky údaje v každom poli vrátane hodnoty kľúča, ktorá robí záznam jedinečným |
| Použitie aktualizačného dotazu | Odstránenie hodnôt jednotlivých polí z tabuľky. | Uľahčuje odstraňovanie hodnôt aktualizáciou existujúcich hodnôt na hodnotu null (t. j. žiadne údaje) alebo reťazec s nulovou dĺžkou (dvojité úvodzovky bez medzery medzi nimi). |
Čo je potrebné overiť pred použitím dotazu na odstránenie údajov
Skontrolujte, či súbor nie je určený iba na čítanie:
- Kliknite pravým tlačidlom myši na tlačidlo Štart a kliknite na položku Otvoriť program Windows Prieskumník.
- Kliknite pravým tlačidlom myši na databázový súbor a potom na položku Vlastnosti.
- Skontrolujte, či je začiarknuté políčko atribútu iba na čítanie .
Overte, či máte potrebné povolenia na odstránenie záznamov z databázy. V prípade nejasností sa obráťte na správcu systému alebo návrhára databázy.
Skontrolujte, či je povolený obsah v databáze. Access predvolene blokuje všetky akčné dotazy (odstraňovací, aktualizačný a vytvárajúci dotaz), kým databáze najprv nenastavíte ako dôveryhodnú. Informácie o dôverovaní databáze nájdete v časti Zastavenie blokovania dotazu režimom vypnutia.
Požiadajte ostatných používateľov databázy, aby zatvorili všetky tabuľky, formuláre, dotazy a zostavy používajúce údaje, ktoré chcete odstrániť. Pomáha to zabrániť porušeniu zámku.
Pred úpravou alebo odstránením záznamov je vhodné vytvoriť záložnú kópiu databázy pre prípad, že chcete vrátiť vykonané zmeny.
Tip
Ak sa k databáze pripája veľký počet používateľov, môže byť potrebné zavrieť databázu a potom ju znova otvoriť vo výhradnom režime.
Otvorenie databázy vo výhradnom režime
- Kliknite na kartu >Súbor– Otvoriť.
- Vyhľadajte databázu a ukážte na ňu, kliknite na šípku vedľa tlačidla Otvoriť a potom kliknite na položku Výhradný prístup.
Zálohovanie databázy
- Kliknite na kartu Súbor a ukážte na položku Uložiť ako.
- Kliknite na položku Uložiť databázu ako a potom na položku Zálohovať databázu. Program Access zatvorí pôvodný súbor, vytvorí záložnú kópiu a potom znova otvorí pôvodný súbor.
- Kliknite na položku Uložiť ako , zadajte názov a umiestnenie záložnej kópie a potom kliknite na položku Uložiť.
Poznámka
Ak používate databázu iba na čítanie alebo databázu vytvorenú v predchádzajúcej verzii Accessu, môže sa zobraziť hlásenie, že nie je možné vytvoriť zálohu databázy.
Ak sa chcete vrátiť k zálohe, zavrite a zmeňte názov pôvodného súboru, takže záložná kópia môže použiť názov pôvodnej verzie. Priraďte názov pôvodnej verzie záložnej kópii a v programe Access otvorte premenovanú záložnú kópiu.
Použitie odstraňovacieho dotazu
Ak chcete vytvoriť odstraňovací dotaz, kliknite na kartu Vytvoriť a v skupine Dotazy kliknite na položku Návrh dotazu. Dvakrát kliknite na každú tabuľku, z ktorej chcete odstrániť záznamy, a potom kliknite na tlačidlo Zavrieť.
Tabuľka sa zobrazí ako okno v hornej časti mriežky návrhu dotazu. V zozname polí dvakrát kliknite na hviezdičku (*), čím pridáte všetky polia v tabuľke do mriežky návrhu.
Použitie konkrétnych kritérií v odstraňovacom dotaze
Dôležité
Použite kritériá na vrátenie len tých záznamov, ktoré chcete odstrániť. V opačnom prípade odstraňovací dotaz odstráni všetky záznamy v tabuľke.
Dvakrát kliknite na pole, ktoré chcete určiť ako kritériá na odstránenie, zadajte jedno z kritérií do riadka Kritériá návrhára dotazu a potom zrušte začiarknutie políčka Zobraziť pre každé pole kritérií.
Príklad prípadov, keď môžete chcieť použiť túto možnosť: Predpokladajme, že chcete odstrániť všetky čakajúce objednávky pre určitého zákazníka. Ak chcete nájsť len tieto záznamy, pridáte polia ID zákazníka a Dátum objednávky do mriežky návrhu dotazu, zadáte identifikačné číslo zákazníka a dátum, kedy sa objednávky tohto zákazníka stali neplatnými.
- Na karte Návrh kliknite na položku Zobraziť>údajové zobrazenie.
- Skontrolujte, či dotaz vracia záznamy, ktoré chcete odstrániť, a potom stlačením kombinácie klávesov CTRL + S dotaz uložte.
- Ak chcete dotaz spustiť, dvakrát kliknite na dotaz na navigačnej table.
Použitie aktualizačného dotazu
Poznámka
Možnosť aktualizačného dotazu nemožno použiť vo webovej aplikácii Accessu.
Táto časť vysvetľuje, ako odstrániť jednotlivé polia z tabuliek pomocou aktualizačného dotazu. Nezabudnite, že spustením aktualizačného dotazu na odstránenie údajov sa existujúce hodnoty zmenia na NULL alebo reťazec s nulovou dĺžkou (dvojica dvojitých úvodzoviek bez medzery medzi nimi), v závislosti od zadaných kritérií.
Kliknite na kartu Vytvoriť a v skupine Dotazy kliknite na položku Návrh dotazu.
Vyberte tabuľku obsahujúcu údaje, ktoré chcete odstrániť (ak tabuľka súvisí, vyberte tabuľku na strane "one" vzťahu), kliknite na položku Pridať a potom na položku Zavrieť.
Tabuľka sa zobrazí ako okno v hornej časti mriežky návrhu dotazu. V okne sa zobrazí zoznam všetkých polí vo vybratej tabuľke.Dvojitým kliknutím na hviezdičku (*) pridáte všetky polia v tabuľke do mriežky návrhu. Pridaním všetkých polí tabuľky odstráni odstraňovací dotaz celé záznamy (riadky) z tabuľky.
Voliteľne môžete zadať kritériá pre jedno alebo viacero polí v riadku Kritériá návrhára a potom zrušiť začiarknutie políčka Zobraziť pre každé pole kritérií. Ďalšie informácie o používaní kritérií nájdete v tabuľke Vzorové kritériá pre výberové dotazy .Poznámka
Kritériá sa používajú na vrátenie len tých záznamov, ktoré chcete zmeniť. V opačnom prípade bude aktualizačný dotaz nastavovať hodnotu NULL pre každý záznam vo všetkých poliach vášho dotazu.
Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Zobraziť a potom na položku Údajové zobrazenie.
Overte, či dotaz vráti záznamy, ktoré chcete nastaviť na hodnotu NULL alebo reťazec s nulovou dĺžkou (dvojité úvodzovky bez medzery medzi nimi ("").
Podľa potreby zopakujte kroky 3 až 5 a vymieňajte polia alebo kritériá, kým dotaz nevráti iba údaje, ktoré chcete odstrániť, a potom stlačením kombinácie klávesov CTRL + S dotaz uložte.
Ak chcete dotaz spustiť, dvakrát kliknite na dotaz na navigačnej table.
Ďalšie informácie
Odstránenie údajov zo súvisiacich tabuliek
Ak chcete odstrániť údaje z viacerých súvisiacich tabuliek, musíte pre každý vzťah povoliť možnosti Referenčná integrita a Kaskádové odstránenie súvisiacich záznamov . Váš dotaz tak bude môcť odstrániť údaje z tabuliek na stranách "one" a "many" v danom vzťahu. Príprava na odstránenie súvisiacich údajov vyžaduje overenie nasledujúcich faktorov:
- Určite, ktoré záznamy sa nachádzajú na strane "one" tohto vzťahu a ktoré na strane "many".
- Ak potrebujete odstrániť záznamy na strane "one" vzťahu a súvisiace záznamy na strane "many", povolíte množinu pravidiel s názvom Referenčná integrita a povolíte kaskádové odstránenia. Postup v tejto časti vysvetľuje referenčnú integritu a spôsob vykonania oboch týchto úloh.
- Ak potrebujete odstrániť záznamy vzťahu len na strane "one", najprv odstráňte tento vzťah a potom odstráňte údaje.
Ak potrebujete odstrániť údaje vzťahu len na strane "many", môžete vytvoriť a spustiť odstraňovací dotaz bez toho, aby ste museli zmeniť vzťah.
Ak chcete zistiť, ktoré záznamy sa nachádzajú na strane "one" a "many" vzťahu, na karte Databázové nástroje v skupine Vzťahy kliknite na položku Vzťahy. Na karte Vzťahy sa zobrazia tabuľky v databáze a vzťahy. Každý vzťah je zobrazený ako čiara, ktorá spája tabuľky medzi poľami.
Nasledujúci obrázok zobrazuje typický vzťah. Väčšina, ak nie všetky vzťahy v databáze majú strany "one" a "many". Vzťahový diagram označuje stranu "one" číslicou jeden (1) a stranu "many" symbolom nekonečna (∞).
Keď odstránite záznamy na strane "one" tohto vzťahu, odstránite tiež všetky súvisiace záznamy na strane "many" tohto vzťahu. Keď však odstránite záznamy vzťahu na strane "many", zvyčajne sa neodstránia záznamy na strane "one".
Access tiež automaticky vynucuje množinu pravidiel, ktoré sa nazývajú referenčná integrita. Tieto pravidlá zabezpečujú, že cudzie kľúče v databáze obsahujú správne hodnoty. Cudzí kľúč je stĺpec, ktorého hodnoty sa zhodujú s hodnotami v stĺpci hlavného kľúča inej tabuľky.
Úprava vzťahu
Podľa týchto krokov postupujte len vtedy, ak potrebujete odstrániť údaje vzťahu na strane "jedna" a "many".
Na karteDatabázové nástroje v skupine Vzťahy kliknite na položku Vzťahy.
Pravým tlačidlom myši kliknite na vzťah (čiaru), ktorý spája tabuľky zapojené do operácie odstraňovania, a potom v kontextovej ponuke kliknite na položku Upraviť vzťah .
V dialógovom okne Úprava vzťahov skontrolujte, či je začiarknuté políčko Zabezpečiť referenčnú integritu .
Začiarknite políčko Kaskádové odstránenie súvisiacich záznamov .
Poznámka
Kým túto vlastnosť znova nevypnete, odstránením záznamu na strane "one" v tomto vzťahu sa odstránia všetky súvisiace záznamy na strane "many" tohto vzťahu.
Kliknite na tlačidlo OK, zavrite tablu Vzťahy a potom prejdite na ďalšiu skupinu krokov.
Odstránenie vzťahu
- Ak ste to ešte neurobili, otvorte tablu Vzťahy .
- Na karteDatabázové nástroje v skupine Vzťahy kliknite na položku Vzťahy.
Poznačte si polia zahrnuté vo vzťahu, aby ste mohli vzťah obnoviť aj po odstránení údajov. - Kliknite pravým tlačidlom myši na vzťah (čiaru), ktorý spája tabuľky zahrnuté do operácie odstraňovania, a potom v kontextovej ponuke kliknite na položku Odstrániť .
Poznámka
Ak chcete vzťah obnoviť, podľa predchádzajúcich krokov otvorte tablu Vzťahy a potom presuňte myšou pole hlavného kľúča z tabuľky "one" do poľa cudzieho kľúča v tabuľke "many". Zobrazí sa dialógové okno Úprava vzťahu . Ak starý vzťah vynútil referenčnú integritu, vyberte možnosť Zabezpečiť referenčnú integritu a potom kliknite na položku Vytvoriť. V opačnom prípade kliknite na položku Vytvoriť.
Vzorové kritériá pre výberové dotazy
V nasledujúcej tabuľke sú uvedené niektoré vzorové kritériá, ktoré môžete použiť v dotazoch Select, ak chcete mať istotu, že odstránite iba údaje, ktoré chcete odstrániť. V niektorých z týchto príkladov sa používajú zástupné znaky.
| Kritériá | Vplyv |
|---|---|
| > 234 | Vráti všetky čísla väčšie ako 234. Ak chcete nájsť všetky čísla menšie ako 234, použite < číslo 234. |
| >= "Cajhen" | Vráti všetky záznamy od položky Cajhen po koniec abecedy. |
| Between #2. 2. 2010# And #1. 12. 2010# | Vráti všetky záznamy s dátumom od 2. februára 2010 do 1. decembra 2010 (ANSI-89). Ak databáza používa zástupné znaky ANSI-92, namiesto znaku mriežky (#) použite jednoduché úvodzovky ('). Príklad: Between '2/2/2010' And '12/1/2010'. |
| Not "Nemecko" | Vyhľadá všetky záznamy poľa, ktoré neobsahujú presne hodnotu Nemecko. Kritérium vráti záznamy, ktoré okrem reťazca Nemecko obsahujú aj ďalšie znaky, ako napríklad záznam "Nemecko (euro)" alebo záznam "Európa (Nemecko)". |
| Not "T*" | Vyhľadá všetky záznamy okrem tých, ktoré sa začínajú písmenom "T". Ak databáza používa množinu zástupných znakov ANSI-92, namiesto hviezdičky (*) použite znak percenta (%). |
| Not "*t" | Vyhľadá všetky záznamy, ktoré sa nekončia písmenom „t“. Ak databáza používa množinu zástupných znakov ANSI-92, namiesto hviezdičky (*) použite znak percenta (%). |
| In(Kanada,UK) | Vyhľadá v zozname všetky záznamy obsahujúce slovo Kanada alebo Spojené kráľovstvo. |
| Like [A-D]* | V poli typu Text vyhľadá všetky záznamy, ktoré sa začínajú na písmená A až D. Ak databáza používa množinu zástupných znakov ANSI-92, namiesto hviezdičky (*) použite znak percenta (%). |
| Like "*ar*" | Vyhľadá všetky záznamy, ktoré obsahujú skupinu znakov „ar“. Ak databáza používa množinu zástupných znakov ANSI-92, namiesto hviezdičky (*) použite znak percenta (%). |
| Like "Maison Dewe?" | Vyhľadá všetky záznamy, ktoré začínajú slovom „Maison“ a obsahujú druhý reťazec pozostávajúci z piatich písmen, z ktorých prvé štyri písmená sú „Dewe“ a posledné písmeno je neznáme. Ak databáza používa množinu zástupných znakov ANSI-92, namiesto otáznika (?) použite podčiarknutie (_). |
| #2/2/2010# | Vyhľadá všetky záznamy s dátumom 2. februára 2010. Ak databáza používa skupinu zástupných znakov ANSI-92, namiesto znaku mriežky použite okolo dátumu jednoduché úvodzovky ('2.2.2010'). |
| < Dátum() - 30 | Používa funkciu Date na vrátenie všetkých dátumov starších ako 30 dní. |
| Date() | Používa funkciu Date na vrátenie všetkých záznamov s dnešným dátumom. |
| Between Date() And DateAdd("M"; 3; Date()) | Funkcie Date a DateAdd sa používajú na vrátenie všetkých záznamov medzi dnešným dátumom a tromi mesiacmi od dnešného dátumu. |
| Is Null | Vráti všetky záznamy obsahujúce nezadanú (prázdnu alebo nedefinovanú) hodnotu. |
| Is Not Null | Vráti všetky záznamy obsahujúce ľubovoľnú hodnotu (ktoré nemajú hodnotu null). |
| "" | Vráti všetky záznamy, ktoré obsahujú reťazec s nulovou dĺžkou. Reťazec s nulovou dĺžkou sa používa vtedy, ak potrebujete do povinného poľa zadať hodnotu, v ktorej však ešte neviete, aká je skutočná hodnota. Môže sa napríklad stať, že povinné pole požaduje číslo faxu zákazníka, ale niektorí zákazníci ešte nemajú fax. V takomto prípade zadajte namiesto čísla dvojité úvodzovky bez medzery medzi nimi (""). |
Tipy na riešenie problémov
Prečo sa zobrazuje toto chybové hlásenie a ako je možné tento problém odstrániť?
Ak zostavujete odstraňovací dotaz použitím viacerých tabuliek a vlastnosť dotazu Jedinečné záznamy je nastavená na hodnotu Nie, Access zobrazí chybové hlásenie. Nepodarilo sa odstrániť zo zadanej tabuľky pri spustení dotazu.
Tento problém odstránite nastavením vlastnosti dotazu Jedinečné záznamy na hodnotu Áno.
- Otvorte odstraňovací dotaz v návrhovom zobrazení.
- Ak hárok vlastností nie je otvorený, otvorte ho stlačením klávesu F4.
- Kliknutím na návrhára dotazu zobrazte vlastnosti dotazu (a nie vlastnosti poľa).
- V hárku vlastností dotazu vyhľadajte vlastnosť Jedinečné záznamy a nastavte ju na hodnotu Áno.
Ukončenie režimu vypnutia blokujúceho dotaz
Ak otvoríte počítačovú databázu, ktorej nedôverujete alebo ktorá sa nenachádza v dôveryhodnom umiestnení, program Access predvolene zablokuje spustenie všetkých akčných dotazov.
Ak sa pokúšate spustiť akčný dotaz a zdá sa, že sa nevykonala žiadna akcia, skontrolujte stavový riadok programu Access, či sa nezobrazuje nasledovné hlásenie:
Akcia alebo udalosť boli blokované režimom vypnutia.
Keď sa zobrazí toto hlásenie, blokovaný obsah povolíte vykonaním nasledujúceho kroku:
- Na paneli hlásení upozornenia zabezpečenia kliknite na položku Povoliť obsah a dotaz spustite znova.