Používanie polí s viacerými hodnotami v dotazoch

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

V programe Microsoft Office Access 2007 je možné vytvoriť pole, ktoré obsahuje viaceré hodnoty, ako napríklad zoznam ľudí, ktorým ste priradili určitý problém. Polia s viacerými hodnotami sú vhodné pre určité situácie, napríklad pri používaní programu Office Access 2007 na prácu s informáciami uloženými v zozname programu Windows SharePoint Services 3.0, pričom daný zoznam obsahuje pole, ktoré používa jeden z typov polí s viacerými hodnotami dostupných v programe Windows SharePoint Services 3.0.

V tomto článku sú popísané polia s viacerými hodnotami a ich použitie v dotazoch.

Obsah tohto článku

Čo je pole s viacerými hodnotami?

Úvodné informácie o dotazoch

Zobrazenie poľa s viacerými hodnotami v dotaze

Zobrazenie jednotlivých hodnôt v poli s viacerými hodnotami

Princíp viazaná hodnota a zobrazená hodnota vo vyhľadávacom poli

Zobrazenie viazanej hodnoty v dotaze

Zadanie jednoduchého dotazu kritériá pre pole s viacerými hodnotami

Vyhľadávanie viac ako jednu hodnotu v poli s viacerými hodnotami

Pochopenie vplyvu vrátane. Poľa hodnoty v zozname polí

Sčítanie, zoskupenie a použitie iných agregačných funkcií

Pomocou pripájacieho dotazu s poľom s viacerými hodnotami

Použitie aktualizačného dotazu s poľom s viacerými hodnotami

Použitie odstraňovacieho dotazu s poľom s viacerými hodnotami

Na začiatok stránky

Čo je pole s viacerými hodnotami?

Predpokladajme, že potrebujete jednému zo zamestnancov alebo dodávateľov priradiť úlohu, ale rozhodnete sa, že ju priradíte viacerým osobám. V programe Office Access 2007 môžete vytvoriť pole s viacerými hodnotami, ktoré vám umožní vybrať osoby zo zoznamu.

Pole s viacerými hodnotami

Keď kliknete na pole so zoznamom, zobrazia sa začiarkavacie políčka, pričom začiarknuté políčka označujú vaše voľby. Ak chcete voľby odoslať, môžete začiarknuť alebo zrušiť začiarknutie položiek v zozname a potom kliknúť na tlačidlo OK.

Pole s viacerými hodnotami rozbaľovacieho poľa

Vybrané osoby sú uložené v poli s viacerými hodnotami a pri zobrazení sú oddelené čiarkami (predvolené nastavenie).

Pole s viacerými hodnotami s hodnotami oddelenými čiarkou

Polia s viacerými hodnotami podporujú prípady, keď potrebujete vybrať a uložiť viac ako jednu možnosť bez toho, aby bolo nutné vytvárať komplexnejší návrh databázy. Polia s viacerými hodnotami sú dôležité aj na integráciu s aplikáciou Windows SharePoint Services, pretože zoznamy SharePoint taktiež podporujú polia s viacerými hodnotami.

Možno sa pýtate, prečo program Office Access 2007 umožňuje uložiť do poľa viac ako jednu hodnotu, keď väčšina systémov na spravovanie relačných databáz to nepovoľuje. Dôvodom je fakt, že databázový mechanizmus programu Office Access 2007 hodnoty v skutočnosti neukladá do jedného poľa. Aj keď zdanlivo vidíte a pracujete iba s jedným poľom, hodnoty sa v skutočnosti ukladajú samostatne a spravujú v skrytých systémových tabuľkách. Databázový mechanizmus programu Access spracováva tieto úlohy namiesto používateľa, pričom údaje automaticky oddeľuje a znova zoskupuje, aby sa zobrazili v jednom poli.

Z technického hľadiska predstavuje pole s viacerými hodnotami v programe Access vzťah „viaceré-viaceré“. Predstavte si napríklad tabuľku udalostí, v ktorej priraďujete zodpovednosť za každú udalosť jednému alebo viacerým zamestnancom. Predpokladajme, že vytvoríte pole s viacerými hodnotami s názvom „PriradenéK“ na priradenie udalostí zamestnancom. Vzťah medzi udalosťami a zamestnancami je vzťahom „many-to-many“. Znamená to, že k ľubovoľnej udalosti môžete priradiť viacerých zamestnancov a tiež, že ľubovoľného zamestnanca môžete priradiť k viacerým udalostiam.

Na začiatok stránky

Úvod do dotazov

Databázy existujú kvôli hlavnému účelu podávať informácie: „Ktorý náš výrobok sa najlepšie predáva? Kto je naším najlepším zákazníkom? V ktorých oblastiach nespĺňame naše ciele predaja?“ Toto všetko sú otázky, ktoré by ste mohli požadovať od dobre navrhnutej databázy. Aby ste mohli získať odpovede od databázy programu Access, vytvoríte dotaz a zadáte potrebné kritériá. Údaje v dotaze môžu pochádzať z jednej alebo z viacerých tabuliek. Keď program Access vyhľadá údaje, ktoré odpovedajú na vašu otázku, môžete údaje zobraziť a analyzovať. Keď ste vytvorili dotaz, môžete ho využiť ako základ pre formulár, zostavu, graf alebo dokonca pre ďalší dotaz.

Program Office Access 2007 umožňuje využiť polia s viacerými hodnotami v určitých dotazoch a určitým spôsobom. Je možné zobraziť pole s viacerými hodnotami v dotaze, zobraziť jednotlivé hodnoty v poli s viacerými hodnotami v dotaze a previesť určité vybrané úhrnné operácie a akčné dotazy použitím polí s viacerými hodnotami.

Na začiatok stránky

Zobrazenie poľa s viacerými hodnotami v dotaze

Keď zobrazujete v dotaze pole s viacerými hodnotami, musíte sa rozhodnúť, či chcete zobraziť celé pole s viacerými hodnotami, ktoré obsahuje všetky hodnoty oddelené čiarkami, alebo osobitný riadok pre každú hodnotu. Predpokladajme napríklad, že máte tabuľku s problémami, ktorá obsahuje pole AssignedTo, ktoré používate pre priradenie problémov ľuďom. Dotaz, ktorý obsahuje pole AssignedTo, je možné zostaviť použitím nasledovného postupu.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky návrhu dotazu. V tomto príklade presuňte pole Názov a pole s viacerými hodnotami s názvom AssignedTo do mriežky dotazu.

  7. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Váš výsledok dotazu bude vyzerať podobne ako nasledovný obrázok – jeden stĺpec zobrazuje názov problému a druhý stĺpec zobrazuje pole s viacerými hodnotami:

Výsledok dotazu, ktorý zobrazuje polia Názov a AssignedTo

Keď vytvoríte dotaz použitím návrhového zobrazenia, program Access automaticky vygeneruje príslušný príkaz jazyka SQL (Structured Query Language). Jazyk SQL je jazyk dotazu, ktorý sa používa v programe Access. Ak chcete zobraziť príkaz SQL, môžete prepnúť na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

Na začiatok stránky

Zobrazenie jednotlivých hodnôt v poli s viacerými hodnotami

Predpokladajme, že chcete zobraziť pole s viacerými hodnotami rozbalené (niekedy nazývané aj vyrovnané), aby sa každý názov alebo hodnota poľa AssignedTo zobrazila v osobitnom riadku. Aby ste to mohli urobiť, musíte zadať vlastnosť Hodnota pripojením reťazca „.Value“ k poľu „AssignedTo“ v riadku Pole, ako je to zobrazené nižšie v mriežke dotazu:

Mriežka dotazu zobrazujúca názov a AssignedTo.Value

Keď zadáte pole AssignedTo v riadku Pole, program Access zobrazí po spustení dotazu všetky hodnoty v poli s viacerými hodnotami iba v jednom riadku. Keď však použijete vlastnosť Hodnota, ako v hodnote AssignedTo.Value, program Access zobrazí pole s viacerými hodnotami v rozbalenej forme, takže každá hodnota sa zobrazí v samostatnom riadku. Dotaz, ktorý zobrazuje jednotlivé hodnoty, je možné vytvoriť použitím nasledovného postupu.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Presuňte polia, ktoré chcete použiť (v tomto príklade pole s viacerými hodnotami „PriradenéK.Value“) do mriežky dotazu.

  7. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Výsledok dotazu, ktorý zobrazuje názov a jednotlivé hodnoty poľa AssignedTo

Keď vytvoríte dotaz použitím návrhového zobrazenia, program Access automaticky vygeneruje príslušný príkaz jazyka SQL (Structured Query Language). Jazyk SQL je jazyk dotazu, ktorý sa používa v programe Access. Ak chcete zobraziť príkaz SQL, môžete prepnúť na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

Na začiatok stránky

Viazaná a zobrazená hodnota vo vyhľadávacom poli

Pole s viacerými hodnotami je vyhľadávacím poľom. Vyhľadávacie pole je pole v tabuľke, ktorého hodnota sa načíta z inej tabuľky, dotazu alebo zoznamu hodnôt. Program Access podporuje vyhľadávacie polia s jednou hodnotou vo viacerých verziách. Vyhľadávacie polia s viacerými hodnotami sú v programe Office Access 2007 novou funkciou. Vyhľadávacie pole sa používa ako náhrada za zobrazenie čísla, napríklad identifikácie (alebo inej hodnoty cudzieho kľúča), niečím zmysluplnejším, napríklad menom. Namiesto zobrazenia napríklad identifikačného čísla kontaktu môže program Access zobraziť meno kontaktu. Identifikačné číslo kontaktu je viazanou hodnotou. Automaticky sa vyhľadá v zdrojovej tabuľke alebo v dotaze a nahradí sa menom kontaktu. Meno kontaktu je zobrazenou hodnotou.

Tak ako pri vyhľadávacom poli s jednou hodnotou a zobrazenou a viazanou hodnotou, aj vyhľadávacie pole s viacerými hodnotami má zobrazené hodnoty, ktoré sa zobrazia v používateľskom rozhraní, a viazané hodnoty, ktoré sú uložené v tabuľke. V poli s viacerými hodnotami je zobrazená hodnota každého záznamu „vyhľadaná“ na základe viazanej hodnoty.

To znamená, že program Access často zobrazí zobrazenú hodnotu vyhľadávania, ktorá je odlišná od viazanej hodnoty uloženej v poli. Napríklad v predchádzajúcom príklade, ktorý používa pole AssignedTo, je množina hodnôt identifikačných čísel zamestnancov z rozšíreného dotazu kontaktov uložená v poli AssignedTo. Rozšírený dotaz kontaktov bol vybratý ako zdroj riadka pri vytvorení poľa s viacerými hodnotami.

Tieto identifikačné čísla zamestnancov sú viazanými hodnotami. Keďže pole AssignedTo je však vyhľadávacím poľom, program Access zobrazí množinu vyhľadaných hodnôt vo výsledku dotazu – v tomto prípade sú to mená kontaktov. Mená kontaktov predstavujú zobrazené hodnoty.

Porovnanie údajového hárka so zobrazenými hodnotami a údajového hárka s viazanými hodnotami

1. Zobrazené hodnoty.

2. Viazané hodnoty.

V návrhovom zobrazení je možné vidieť vyhľadávacie vlastnosti pre pole s viacerými hodnotami. Postupujte nasledovne:

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Na navigačnej table kliknite pravým tlačidlom na tabuľku, v ktorej je uložené pole s viacerými hodnotami.

  4. Kliknite na položku Návrhové zobrazenie.

  5. Kliknite na pole s viacerými hodnotami (napríklad kliknite na pole AssignedTo).

  6. V časti Vlastnosti poľa kliknite na kartu Vyhľadávanie.

Vlastnosti vyhľadávacieho poľa s viacerými hodnotami

Je dôležité pochopiť rozdiel medzi zobrazenou hodnotou vyhľadávacieho poľa a jeho viazanou hodnotou. Zobrazená hodnota sa podľa predvoleného nastavenia automaticky zobrazí v údajovom zobrazení. Viazaná hodnota je však to, čo je uložené, čo sa používa v kritériách dotazu a čo program Access používa podľa predvoleného nastavenia pri spojení s inými tabuľkami.

Na začiatok stránky

Zobrazenie viazanej hodnoty v dotaze

Zobrazená hodnota sa podľa predvoleného nastavenia zobrazí v údajovom zobrazení automaticky. Keď vytvárate dotaz, toto správanie je možné potlačiť a zobraziť namiesto toho viazanú hodnotu. Potrebné kroky sú popísané v nasledovnom postupe:

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky návrhu dotazu. V tomto príklade presuňte pole Názov a pole s viacerými hodnotami s názvom AssignedTo.Value do mriežky dotazu.

  7. V mriežke dotazu kliknite na pole AssignedTo.Value, čím sa toto pole vyberie.

  8. Na karte Návrh v skupine Zobraziť/Skryť kliknite na položku Hárok vlastností.

  9. V hárku vlastností vyberte na karte Vyhľadávanie vo vlastnosti Zobraziť ovládací prvok položku Textové pole.

Vlastnosť ovládacieho prvku zobrazenia v návrhu dotazu

Keď zmeníte vlastnosť Zobraziť ovládací prvok na Textové pole, zmeníte normálne správanie stĺpca pri vyhľadávaní, takže sa namiesto zobrazenej hodnoty zobrazí viazaná hodnota.

Viazaná hodnota zobrazená v výsledok dotazu

Na začiatok stránky

Vloženie jednoduchých kritérií dotazu pre pole s viacerými hodnotami

Predstavte si, že chcete vidieť Problémy priradené osobe „Kelly Rollin“. Kritériá dotazu je možné zadať v riadku Kritériá v mriežke návrhu, ale keď zadávate kritériá pre vyhľadávacie pole, musíte zadať viazanú hodnotu, nie zobrazenú hodnotu. V tomto prípade určíte, že viazaná hodnota pre Kelly Rollin je 6. To je zodpovedajúca hodnota primárneho kľúča v rozšírenom dotaze kontaktov pre Kelly.

Postup pri vytváraní dotazu, ktorý zobrazuje problémy priradené osobe Kelly:

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky dotazu. V tomto príklade presuňte položku Názov do prvého stĺpca v mriežke. Potom do druhého stĺpca presuňte položku AssignedTo.

  7. Na karte mriežky dotazu zadajte v časti AssignedTo v riadku Kritériá hodnotu 6. Zapamätajte si, že zadávate viazanú hodnotu, nie zobrazenú hodnotu.

    Do mriežky dotazu kritériá v poli s viacerými hodnotami

  8. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení. Dotaz vracia iba riadky, v ktorých sa nachádza text „Kelly Rollin“.

Výsledok dotazu, kde hodnota poľa AssignedTo zahŕňa hodnotu 6

Keď vytvoríte dotaz použitím návrhového zobrazenia, program Access automaticky vygeneruje príslušný príkaz jazyka SQL (Structured Query Language). Jazyk SQL je jazyk dotazu, ktorý sa používa v programe Access. Ak chcete zobraziť príkaz SQL, môžete prepnúť na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Vyhľadanie textu namiesto identifikačného čísla

Čo ak zistíte, že zadávanie identifikačných čísel je nepohodlné a uprednostníte zadanie mena „Kelly Rollin“ ako hodnoty pre vyhľadávanie? Aby to fungovalo, musíte mať vo výsledku dotazu pole, ktoré obsahuje meno v textovej podobe. Týmto spôsobom je možné v tomto poli hľadať reťazec „Kelly Rollin“.

Nie je možné použiť pole AssignedTo.Value, pretože jeho viazaná hodnota je identifikačné číslo, a preto musíte zadať pre filtráciu tohto poľa identifikačné číslo.

V tomto príklade pole mena kontaktu nie je v tabuľke. Namiesto toho je v zdrojovom dotaze, ktorý poskytuje údaje pre pole AssignedTo s viacerými hodnotami. Zdrojovú tabuľku alebo dotaz pre pole s viacerými hodnotami môžete spojiť s tabuľkou, ktorá obsahuje pole s viacerými hodnotami, aby sa pole (v tomto príklade meno kontaktu) zahrnulo zo zdrojovej tabuľky alebo dotazu do výsledku dotazu. Potom môžete namiesto poľa s viacerými hodnotami hľadať toto pole.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na položku Pridať.

  5. V dialógovom okne Zobrazenie tabuľky kliknite na kartu Dotazy a potom kliknite na dotaz (v tomto príklade „Kontakty - rozšírené“), ktorý je zdrojom pre pole s viacerými údajmi, a potom kliknite na položku Pridať.

  6. Kliknite na tlačidlo Zavrieť.

  7. Polia, ktoré chcete používať, presuňte do mriežky dotazu. V tomto príklade presuňte položku Názov z tabuľky Problémy do prvého stĺpca v mriežke. Potom presuňte pole Meno kontaktu z dotazu Kontakty - rozšírené do druhého stĺpca a zrušte začiarknutie políčka Zobraziť. Potom do tretieho stĺpca presuňte položku AssignedTo.

  8. Pokiaľ sa nezobrazuje prepájacia čiara medzi poľom identifikačného čísla v dotaze Kontakty - rozšírené a poľom AssignedTo.Value, ako je to zobrazené nižšie, kliknite do poľa identifikačného čísla v dotaze Kontakty - rozšírené a premiestnite ho do poľa AssignedTo.Value v tabuľke Problémy.

    Zobrazí sa prepájacia čiara.

    Pokiaľ sa zobrazujú aj iné prepájacie čiary, odstráňte ich. Ak chcete odstrániť prepájaciu čiaru, kliknite na ňu, čim ju zvýrazníte, a potom stlačte kláves Delete.

  9. V mriežke dotazu pod položkou Názov kontaktu v riadku Kritériá zadajte reťazec „Kelly Rollin“.

    Mriežka dotazu s kritériom AssignedTo, ktoré obsahuje meno „Kelly Rollin“

  10. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení. Všimnite si, že výsledky dotazu zobrazujú iba tie riadky, v ktorých sa zobrazuje reťazec „Kelly Rollin“. Táto technika funguje, pretože prepojenie medzi identifikačným číslom v zdrojovej tabuľke alebo dotaze a poľom AssignedTo.Value vracia oddelený riadok pre každú hodnotu v poli s viacerými hodnotami; okrem toho každý riadok obsahuje pole s Menom kontaktu s celým menom. Keďže Meno kontaktu je vypočítané pole, a nie vyhľadávacie pole, neexistuje žiadna viazaná hodnota a zobrazená hodnota. Existuje iba jedna hodnota – meno kontaktu. Týmto spôsobom je možné nahradiť zhodný text, v tomto prípade text „Kelly Rollin“.

Výsledok dotazu s poľom AssignedTo, ktoré obsahuje meno „Kelly Rollin“

Keď vytvoríte dotaz použitím návrhového zobrazenia, program Access automaticky vygeneruje príslušný príkaz jazyka SQL (Structured Query Language). Jazyk SQL je jazyk dotazu, ktorý sa používa v programe Access. Ak chcete zobraziť príkaz SQL, môžete prepnúť na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON
[Contacts Extended].ID = Issues.AssignedTo.Value
WHERE ((([Contacts Extended].[Contact Name])=
"Kelly Rollin"));

Na začiatok stránky

Vyhľadanie viac než jednej hodnoty v poli s viacerými hodnotami

Niekedy je potrebné hľadať zhodu pre viac ako jednu hodnotu. Predpokladajme, že chcete zobraziť tie problémy, v ktorých sa medzi hodnotami v poli AssignedTo nachádza „Kelly Rollin“ aj „Lisa Miller“. Viazaná hodnota pre Kelly Rollin je 6 a viazaná hodnota pre Lisa Miller je 10. Ak chcete určiť niekoľko kritérií pre pole s viacerými hodnotami, môžete použiť operátory AND a OR.

Dotaz vytvoríte pomocou nasledovného postupu.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Ďalšie kliknite na položku Návrh dotazu.

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na položku Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky dotazu. V tomto príklade presuňte položku Názov do prvého stĺpca v mriežke. Potom do druhého stĺpca presuňte položku AssignedTo.

  7. V mriežke dotazu v časti AssignedTo v riadku kritériá zadajte 6 až 10.

    Dotaz zobrazuje použitie operátora AND v poli s viacerými hodnotami

  8. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení.

Výsledok dotazu, ktorý zobrazuje použitie operátora AND v poli s viacerými hodnotami

Výsledok zobrazuje iba problémy, ku ktorým sú priradené osoby Kelly Rollin aj Lisa Miller. Keď vytvoríte dotaz použitím návrhového zobrazenia, program Access automaticky vygeneruje príslušný príkaz jazyka SQL (Structured Query Language). Jazyk SQL je jazyk dotazu, ktorý sa používa v programe Access. Ak chcete zobraziť príkaz SQL, môžete prepnúť na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
And (Issues.AssignedTo.Value)=10));

Použitie operátora OR namiesto operátora AND

Predpokladajme, že chcete zmeniť dotaz tak, aby sa zobrazil zoznam tých riadkov, ktoré obsahujú reťazec „Kelly Rollin“ alebo „Lisa Miller“. Je možné upraviť príkaz SQL tak, aby sa použil operátor OR namiesto operátora AND. Príkaz by potom mal vyzerať takto:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
Or (Issues.AssignedTo.Value)=10));

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení.

Dotaz, ktorý používa alebo operátora s pole s viacerými hodnotami

Výsledok zobrazuje iba problémy, ku ktorým je priradená Kelly Rollin alebo Lisa Miller.

Na začiatok stránky

Vplyv vloženia poľa .Value do zoznamu polí

Je dôležité porozumieť vplyvu vloženia poľa .Value do zoznamu výstupných stĺpcov (zoznam SELECT) v dotaze. Keď sa spracováva dotaz, prvým krokom je vytvorenie množiny výsledkov bez vplyvu klauzuly WHERE alebo filtra. Filter sa potom aplikuje na túto pôvodnú množinu. Preto môže byť užitočné rozmýšľať o tejto množine výsledkov, ako keby sa najprv vygenerovala a potom zredukovala pomocou filtra v klauzule WHERE. Predstavte si napríklad tento príklad:

SELECT Issues.Title, AssignedTo
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Počiatočná množina výsledkov by mohla pred filtrovaním vyzerať nasledovne:

Funkcia

AssignedTo

Problém 1

David Hamilton, Eva Valverde

Problém 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Problém 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Problém 4

Wei Yu, Lisa Miller

Problém 5

David Hamilton, Kathleen Gail Jensen

Problém 6

Sanjay Jacob, Kelly Rollin

Problém 7

Jesper Aaberg, Susan Burk

Problém 8

David Hamilton

Problém 9

Kelly Rollin, Lisa Miller

Problém 10

Eva Valverde, Tom Michaels

Krok filtrovania potom prechádza cez pôvodnú množinu výsledkov a vyberá riadky, ktoré neobsahujú meno David Hamilton, ktorého identifikačné číslo je 3:

Funkcia

AssignedTo

Problém 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Problém 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Problém 4

Wei Yu, Lisa Miller

Problém 6

Sanjay Jacob, Kelly Rollin

Problém 7

Jesper Aaberg, Susan Burk

Problém 9

Kelly Rollin, Lisa Miller

Problém 10

Eva Valverde, Tom Michaels

Teraz si predstavte druhý príklad – taký, ktorý do zoznamu polí zahrnie pole .Value. Najprv si všimnite, ako prítomnosť poľa .Value mení pôvodnú množinu výsledkov pred filtrovaním:

SELECT Issues.Title, AssignedTo.Value
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Počiatočná množina výsledkov vyzerá pred filtrovaním nasledovne:

Funkcia

AssignedTo.Value

Problém 1

David Hamilton

Problém 1

Eva Valverde

Problém 2

Kathleen Gail Jensen

Problém 2

Kelly Rollin

Problém 2

Lisa Miller

Problém 2

Susan Burk

Problém 3

Eva Valverde

Problém 3

Jesper Aaberg

Problém 3

Kelly Rollin

Problém 3

Tom Michaels

Problém 4

Lisa Miller

Problém 4

Wei Yu

Problém 5

David Hamilton

Problém 5

Kathleen Gail Jensen

Problém 6

Kelly Rollin

Problém 6

Sanjay Jacob

Problém 7

Jesper Aaberg

Problém 7

Susan Burk

Problém 8

David Hamilton

Problém 9

Kelly Rollin

Problém 9

Lisa Miller

Problém 10

Tom Michaels

Problém 10

Eva Valverde

Teraz krok filtrovania prechádza cez pôvodnú množinu výsledkov a vyberá iba riadky, ktoré neobsahujú meno David Hamilton, ktorého identifikačné číslo je 3:

Funkcia

AssignedTo.Value

Problém 1

Eva Valverde

Problém 2

Kathleen Gail Jensen

Problém 2

Kelly Rollin

Problém 2

Lisa Miller

Problém 2

Susan Burk

Problém 3

Eva Valverde

Problém 3

Jesper Aaberg

Problém 3

Kelly Rollin

Problém 3

Tom Michaels

Problém 4

Lisa Miller

Problém 4

Wei Yu

Problém 5

Kathleen Gail Jensen

Problém 6

Kelly Rollin

Problém 6

Sanjay Jacob

Problém 7

Jesper Aaberg

Problém 7

Susan Burk

Problém 9

Kelly Rollin

Problém 9

Lisa Miller

Problém 10

Tom Michaels

Problém 10

Eva Valverde

Vizualizácia množiny výsledkov pred a po aplikovaní filtra by vám mala uľahčiť správne predvídať výsledok dotazu.

Na začiatok stránky

Sčítanie, zoskupenie a použitie iných agregačných funkcií

Možno budete chcieť prevádzať výpočty na skupinách hodnôt, ktoré sú uložené v poli s viacerými hodnotami. Koľko problémov je napríklad priradených ku každej osobe? Koľko ľudí je priradených ku každému problému? Tento typ výpočtu je možné previesť s použitím agregačnej funkcie v dotaze Súčty.

Agregačná funkcia vykonáva výpočet na množine hodnôt a potom vracia jedinú hodnotu. Napríklad Súčet, Počet a Priemer sú tri agregačné funkcie, ktoré môžete použiť na výpočet súčtov. Súčty je možné vypočítať pre všetky záznamy alebo pre skupiny záznamov. Ak chcete sčítavať podľa skupiny, musíte vybrať pole alebo polia pre zoskupenie v mriežke dotazu.

Nasledovný postup ukazuje, ako vytvoriť dotaz pre sčítanie počtu problémov priradených každej osobe.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky dotazu. V tomto príklade presuňte položku AssignedTo.Value do prvého stĺpca v mriežke. Potom do druhého stĺpca presuňte položku Názov.

  7. Na karte Návrh v skupine Zobraziť/Skryť kliknite na položku Súčty.

    Riadok Celkom sa zobrazí v mriežke dotazu. Ako predvolená hodnota sa zobrazí položka Zoskupiť podľa v bunke Celkom pod každým poľom v dotaze.

  8. V mriežke dotazu kliknite v časti Názov v riadku Celkom na položku Počet.

  9. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

Pri návrhu dotazu určujete, ktoré polia použiť pre zoskupovanie a ktoré polia použiť pre súčty (výpočty). V tomto príklade pole AssignedTo.Value bolo poľom, ktoré sa používalo na zoskupovanie, a pole Názov bolo poľom, ktoré sa používalo na výpočet súčtu. Pre polia, ktoré chcete použiť pre zoskupovanie, vyberte položku Zoskupiť podľa v riadku Celkom. Pre polia, ktoré chcete využiť pre celkový výpočet, vyberte typ výpočtu (napríklad Súčet alebo Priemer). Zapamätajte si, že keď na zoskupovanie použijete pole s viacerými hodnotami, musíte použiť pole .Value. V tomto príklade nie je možné použiť pre zoskupovanie pole AssignedTo – musíte použiť pole AssignedTo.Value. Pole .Value musíte použiť aj vtedy, keď na triedenie použijete pole s viacerými hodnotami.

Poznámka : Keď použijete na zoskupovanie pole s viacerými hodnotami, musíte použiť pole .Value. Keď použijete na triedenie pole s viacerými hodnotami, musíte použiť pole .Value.

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení.

Dotaz, ktorý počíta problémy priradené každej osobe

Ak chcete zobraziť príkaz SQL pre tento dotaz, prepnite na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.AssignedTo.Value, 
Count(Issues.Title) AS CountOfTitle
FROM Issues
GROUP BY Issues.AssignedTo.Value;

Predpokladajme, že chcete vedieť, koľko ľudí je priradených ku každému problému. Je možné zoskupovať podľa Názvu a zvoliť Počet ako výpočet pre pole s viacerými hodnotami. Dotaz vytvoríte pomocou nasledovného postupu.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tabuľku, ktorá obsahuje polia s viacerými hodnotami (v tomto príklade to bude tabuľka Problémy), a potom kliknite na tlačidlo Pridať.

  5. Kliknite na tlačidlo Zavrieť.

  6. Polia, ktoré chcete používať, presuňte do mriežky dotazu. V tomto príklade by ste presunuli položku Názov do prvého stĺpca v mriežke. Potom do druhého stĺpca presuňte položku AssignedTo.

  7. Na karte Návrh kliknite v skupine Zobraziť/Skryť na položku Súčty.

    Riadok Celkom sa zobrazí v mriežke dotazu. Ako predvolená hodnota sa objaví Zoskupiť podľa v bunke Celkom pod poľom Názov v dotaze. Ako predvolená možnosť sa objaví Výraz v bunke Celkom pod poľom AssignedTo – je to preto, lebo operáciu Zoskupiť podľa nemôžete previesť na poli s viacerými hodnotami. Je možné to vykonať iba pre pole s viacerými hodnotami .Value.

  8. V mriežke dotazu kliknite v časti AssignedTo v riadku Celkom na položku Počet.

  9. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

Pri spustení dotazu sa výsledok zobrazí v údajovom zobrazení.

Výsledok dotazu, ktorý zobrazuje počet ľudí pre každý problém

Ak chcete zobraziť príkaz SQL pre tento dotaz, prepnite na zobrazenie SQL použitím nasledovného postupu.

  1. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  2. Kliknite na položku Zobrazenie SQL.

Príkaz SQL vyzerá asi takto:

SELECT Issues.Title, 
Count(Issues.AssignedTo) AS CountOfAssignedTo
FROM Issues
GROUP BY Issues.Title;

Poznámka : V tomto príkaze SQL SELECT nezáleží na tom, či používate Count(Issues.AssignedTo) alebo Count(Issues.AssignedTo.Value) – výsledok je rovnaký.

Na začiatok stránky

Použitie pripájacieho dotazu s poľom s viacerými hodnotami

Do poľa s viacerými hodnotami je možné vložiť jednu hodnotu s použitím dotazu Insert (Vložiť). Predpokladajme napríklad, že chcete pridať meno „Kelly Rollin“ k problému do poľa s viacerými hodnotami AssignedTo. Najprv by ste určili hodnotu hlavného kľúča pre problém a pre záznam kontaktu pre Kelly. Predpokladajme, že hodnoty sú 10 pre problém a 6 pre Kelly.

Nasledovný postup ukazuje, ako sa vytvára dotaz.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Iné kliknite na položku Návrh dotazu.

    Pridanie aplikácie

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tlačidlo Zavrieť.

  5. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  6. Kliknite na položku Zobrazenie SQL.

  7. V zobrazení SQL napíšte nasledovný príkaz SQL:

    INSERT INTO Issues ( AssignedTo.[Value] )
    VALUES (6)
    WHERE ID = 10;
  8. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

    Program Access vás možno požiada o potvrdenie, či pripojiť zvolený riadok. Kliknite na tlačidlo Áno, ak chcete riadok vložiť, alebo kliknite na tlačidlo Nie, ak chcete voľbu zrušiť.

Meno Kelly je teraz v zozname poľa AssignedTo pre daný problém. Toto je jediný formulár vkladacieho dotazu, ktorý bude fungovať s poľom s viacerými hodnotami.

Poznámka : Pripájací dotaz je dotaz, ktorý sa používa pre pridanie záznamov z jednej tabuľky do inej existujúcej tabuľky. V programe Office Access 2007 nie je možné použiť pripájací dotaz, ktorý odkazuje na tabuľku, ktorá obsahuje pole s viacerými hodnotami. Napríklad nasledovný dotaz je neplatný:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

Na začiatok stránky

Použitie aktualizačného dotazu s poľom s viacerými hodnotami

Aktualizačný dotaz je možné použiť na zmenu hodnôt v existujúcich záznamoch. Keď použijete aktualizačný dotaz na aktualizáciu tabuľky, ktorá obsahuje polia s viacerými hodnotami, je možné zmeniť jednu hodnotu v poli s viacerými hodnotami na inú hodnotu. Predpokladajme, že chcete aktualizovať pole s viacerými hodnotami AssignedTo pre konkrétny problém – chcete napríklad nahradiť meno „Kelly Rollin“ menom „Lisa Miller“. Najprv určíte hodnotu hlavného kľúča pre problém a pre záznamy kontaktu pre mená Kelly a Lisa. Predpokladajme, že 8 je hodnota pre problém, 6 je hodnota pre meno Kelly a 10 je hodnota pre menoLisa.

Nasledovný postup ukazuje, ako sa vytvára dotaz.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Ďalšie kliknite na položku Návrh dotazu.

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tlačidlo Zavrieť.

  5. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  6. Kliknite na položku Zobrazenie SQL.

  7. V zobrazení SQL napíšte nasledovný príkaz SQL:

    UPDATE Issues 
    SET Issues.AssignedTo.Value = 10
    WHERE (((Issues.AssignedTo.Value)=6)
    AND ((Issues.ID)=8));

    Poznámky : 

    • Vždy by ste mali zaradiť klauzulu WHERE, ktorá označuje iba záznamy, ktoré chcete aktualizovať. Inak budete aktualizovať záznamy, ktoré ste nechceli meniť. Aktualizačný dotaz, ktorý neobsahuje klauzulu WHERE, mení každý riadok v tabuľke.

    • Je možné určiť jednu hodnotu, ktorú chcete zmeniť.

  8. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

    Program Access vás možno požiada o potvrdenie, či sa má aktualizovať záznam. Kliknite na tlačidlo Áno, ak chcete záznam aktualizovať, alebo kliknite na tlačidlo Nie, ak chcete voľbu zrušiť.

Meno Lisa Miller je teraz v zozname na mieste, kde bolo meno Kelly Rollin v poli AssignedTo pre daný problém.

Na začiatok stránky

Použitie odstraňovacieho dotazu s poľom s viacerými hodnotami

Na odstránenie záznamov z tabuľky je možné použiť odstraňovací dotaz. Pri práci s tabuľkou, ktorá obsahuje pole s viacerými záznamami, je možné použiť odstraňovací dotaz, ak chcete odstrániť záznamy, ktoré obsahujú určitú hodnotu v poli s viacerými hodnotami, alebo ak chcete odstrániť určitú hodnotu z poľa s viacerými hodnotami vo všetkých záznamoch v tabuľke.

Predpokladajme, že chcete odstrániť meno „Kelly Rollin“ z poľa AssignedTo v celej tabuľke. Dotaz vytvoríte použitím nasledovného postupu.

  1. Kliknite na tlačidlo Microsoft Office Obrázok tlačidla Office a potom na položku Otvoriť.

  2. V dialógovom okne Otvorenie vyberte databázu a otvorte ju.

  3. Prejdite na kartu Vytvoriť a v skupine Ďalšie kliknite na položku Návrh dotazu.

  4. V dialógovom okne Zobrazenie tabuľky kliknite na tlačidlo Zavrieť.

  5. Prejdite na kartu Návrh a kliknutím na šípku pod položkou Zobraziť v skupine Výsledky zobrazte ponuku Zobraziť.

  6. Kliknite na položku Zobrazenie SQL.

  7. V zobrazení SQL napíšte nasledovný príkaz SQL:

    DELETE Issues.AssignedTo.Value
    FROM Issues
    WHERE (((Issues.AssignedTo.Value)=6));
  8. Prejdite na kartu Návrh a kliknutím na položkuSpustiť v skupine Výsledky spustite dotaz.

    Program Access vás možno požiada o potvrdenie, či sa majú odstrániť záznamy. Kliknite na tlačidlo Áno, ak chcete záznamy odstrániť, alebo kliknite na tlačidlo Nie, ak chcete voľbu zrušiť.

Nasledovný príklad dotazu neodstráni žiadne záznamy z tabuľky Problémy. Odstráni hodnotu z poľa s viacerými hodnotami AssignedTo v každom zázname, kde sa hodnota objaví. Ak chcete odstrániť záznamy z tabuľky Problémy, pole nezadávajte za klauzulou DELETE v príkaze SQL. Ak napríklad chcete odstrániť všetky problémy, ktoré majú v zozname meno „Kelly Rollin“ medzi ľuďmi, ktorým bol priradený problém, vložte nasledovný príkaz SQL:

DELETE 
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Poznámka : Pri odstraňovaní záznamov použitím odstraňovacieho dotazu buďte opatrní. Záznamy po odstránení nie je možné obnoviť.

Na začiatok stránky

Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×