Hledání v databázi - nevázané textové pole
Vyhledávání patří mezi základní operace s daty v databázích. Údaje hledáme vždy v tabulkách, protože všechny informace jsou v databázích uchovávány v tabulkách. Nalezená data následně zobrazujeme ve vhodném formuláři.
Nejdříve si vytvoříme vychozí formulář pro hledání studenta podle čísla (f_hleda_cislo_stud).
Pro zadání čísla použijeme nevázané textové pole. Ve vlastnostech zjistíme jeho název - v našem případě Text0. Názvy objektů múžeme případně i změnit. Tlačítko nemá zatím připojenou žádnou akci, odpovídající makro vytvoříme později. Předpokládáme, že po stisknutí tlačítka se zobrazí nalezená data.
Pro zobrazení nalezených informací budeme potřebovat další formulář. Když hledáme data podle primárního klíče, volíme jednoduchý formulář. V případě, že můžeme najít více záznamů, které vyhovují hledané informaci (více studentů má stejnou třídu), volíme formulář nekonečný.
Navržený formulář zatím zobrazuje první záznam ze zdrojové tabulky. Pomocí makra nastavíme, aby zobrazoval informaci zadanou uživatelem.
Vytvoříme potřebné makro:
- nejdřív otevřeme formulář f_zobraz_cislo_stud. Ve vlastnostech akce nastavíme "podmínku where" následovně: číslo v tabulce studenti se má rovnat údaji, který je zadán v poli Text0. Podmínku sestavíme v Tvůrci výrazů.
- následně můžeme zavřít výchozí formulář pro hledání f_hleda_cislo_stud, dále ho nebudeme potřebovat.
Pořadí akcí v makru nemůžeme zaměnit. Makro pojmenujeme m_hleda_cislo_stud
Navržené makro připojíme k tlačítku Vyhledat a zkontrolujeme jeho funkčnost. V případě, že zadáme existující číslo studenta, zobrazí se nám informace o studentovi.
Dále si ukážeme, jak můžeme vyřešit chybové hlášení v prípadě neúspěchu hledání. Předcházející makro rozšíříme. Nalezená data budeme testovat, zda neobsahují prázdné hodnoty (tak je to v případě neúspěchu).
Poznámka: Pro testování je vhodné zvolit sloupec, který je formátu text a má nastavenou v tabulce vlastnost "je nutno zadat".
Dále řešíme situaci, kdy formulář zobrazuje prázdné hodnoty a tedy informaci v tabulce nenašel. Zavřeme nepotřebný formulář (stejně nic nezobrazuje), uživateli oznámíme, co se stalo a přesměrujeme ho na vybraný formulář. Po úpravě bude makro vypadat následovně: