Microsoft Acess vyhledávání záznamů z několika tabulek současně
Dobrý den,
pokouším se v programu Microsoft Acess vytvořit databázi pro svoji sbírku hokejových karet a potřeboval bych poradit, jestli je možné nějak vyhledávat záznamy v několika tabulkách současně. Rád bych nějak docílil toho, že když zadám jméno a příjmení hráče, tak mi to prohledá všechny tabulky jednotlivých sérií karet a najde všechny záznamy o daném hráči.
Pokud to nějak jde udělat rád bych poprosil o nějaký návod.
Předem děkuji za odpověď
Přeji pěkný den.
Demer
Jestli jsi udelal pro kazdou serii zvlastni tabulku, pak to je chybne navrzeny databazovy model.
Jinak vyhledavat v nekolika tabulkach spucasne jde pomoci prikazu UNION, kterym spojis nekolik dotazu. Ale na to uz ti nepomuze wizard v Access, musis si dotazy napsat rucne
Děkuji za odpověď.
Je pravda, že se s Acessem teprve učím zacházet, tohle je můj první pokus o vytvoření přehledné databáze pro moji z sbírku.
Mohl bych případně poprosit o nějaký vzor nebo návod, jak vytvořit pro takovou sbírku přehlednou databázi?
Ty samostatné Tabulky jsem chtěl kvůli tomu, že každá série ná svoje vlastní číslování karet a kdybych v jedné tabulce měl karty z několika sérií se stejným číslem karty. Tak by v tom byl zmatek.
Typická začtečnická chyba - id karet se skoro NIKDY nevytváří podle jejich fyzických čísel, nebo jiných ukazatelů, ale nechává se na tzv. automatickém čísle (které je z pohledu vlastních dat "bezrozměrné" - v podstatě jen ukazuje na pořadí, v jakém záznamy vznikly.)
Vlastní filtrování dat pak řešíš filtrem nad více poli databáze. Např. zlatá série + číslo 5.
Děkuji za odpověď.
jinak já bych databázi karet navrhoval nějak takto:
1. tabulka karty - obsahuje hlavní část, v podstatě pouze propojovací pole k níže uvedeným tabulkám plus unikátní pole, např. datum zařazení, číslo karty v dané typové řadě apod.
2. tabulka osobnosti a týmy - předpokládám, že někteří lidé se objeví na vícero kartách. Zde se uvedou osobní/týmové informace (tedy klasická normalizace dat, tj. data jsou v DB pouze jednou)
3. tabulka typů karet (zlatá/stříbrná/bronzová/týmy/osobnosti/střelci apod. - důvod viz bod 2.)
relační vztahy budou vždy k tab.1, a to vždy 1:N (tj. 1 záznam v podtabulce, mnoho záznamů v hlavní)
edit: relace je mocná a šetří extrémně čas (a odolává chybám při opakovaném zápisu stejných hodnot). Jde tak např. jednoduše zjistit, na kterých kartách je např. Jágr. Základní chyby dělají uživatelé v tom, že k relační databázi přistupují jako k Excelu.
Navrh databaze (tabulek) obecne, bez ohledu na to, ze je to Access, My Sql nebo jiny databazovy stroj se dela tak, aby se v tabulkach neopakovaly udaje.
Protoze jsem karty nesbiral, nevim, jake udaje se eviduji.
Takze zacneme tabulkou serii karet, kde bude kazdy radek jedna serie a vsechny spolecne udaje o serii (nazev, rok,..). ID serie bude neco nezavisleho.
Tabulka tymu, pokud to neni serie
Tabulka hracu
Tabulka karet, kde bude odkaz na serii, tym, hrace
Pokud chceš řešit i složení týmu, asi bude třeba přidat tabulku ročníku/sezóny a tabulku ligových soutěží.
edit: ale to mi připomíná spíše už sportovní almanach, než databázi hráčských karet.
Neslo mi o slozeni tymu, ale o tymy jako takove (jmeno, soutez, domovske mesto, stat, ...)
Na zaklade spojeni hrac - karta - tym bys pak dostal i informaci, kterou jsi pozadoval - zjistil bys, ze ten hrac na jedne karte v konkretnim roce hral za jeden tym a na jine karte z jineho roku pak za dalsi tym, samozrejme by nebyly uplne, pouze na zaklade karet, ktere mas.
Ale dostal bys pak informaci:
karty, ktere se tykaji třeba Ajaxu
karty, kde je konkretni hrac
atd.
tohle bych asi řešil příznakem (tým/hráč) v rámci jedné tabulky - pokud to má být opravdu jen databáze karet a nikoli sportovní almanach (jak jsem psal výše).
Co je to pro tebe příznak? Odkaz do jiné tabulky nebo opakující se údaje v rámci jedné tabulky (rovnou jméno týmu)?