Viacnásobný parametrický dotaz v MS Access

Včera sme riešili s jednou čitateľkou možnosti použitia viacerých parametrov v dotaze, ktoré sa budú zadávať v dialógovom okne pomocou rozbaľovacieho zoznamu. Úloha je to jednoduchá pokiaľ budú vždy vyplnené všetky polia kritérií. Akonáhle jedno zostane prázdne, tak už treba urobiť určité zmeny v dotaze.

Písmo: A- | A+
Diskusia  (0)

Na priblíženie problému si skúste predstaviť klasický filter podľa formulára, kde môžete zadať podmienky filtrovania priamo v poliach. Tu ale nastáva v našom prípade zmena, lebo používateľka chcela kritéria filtrovania zadávať pomocou vlastného formulára a rozbaľovacích zoznamov. Vytvorte najprv tabuľku (číselník), ktorá bude obsahovať položky pre rozbaľovacie zoznamy. V mojom prípade je to: pracovná funkcia, mesto a krajina , pretože som použil ukážkovú tabuľku z databázy Northwind.

Formulár s poliami kritérii
Formulár s poliami kritérii 


Ak budete potrebovať vidieť všetkých majiteľov zo španielska a z Madridu, tak to bude fungovať vcelku bez problémov. Ak ale zostane niektoré pole prázdne, tak kritéria už nezobrazia žiadne výsledky dotazu , preto tam treba zapracovať ešte do kritéria hodnotu Null .

SkryťVypnúť reklamu
SkryťVypnúť reklamu
Článok pokračuje pod video reklamou

Z vytvoreného číselníka vytvorte formulárové polia - rozbaľovacie zoznamy v návrhovom zobrazení formulára. Následne je potrebné z požadovanej tabuľky, ktorá sa ma filtrovať urobiť dotaz, ktorý bude mať jedno kritérium v poli „pracovná funkcia" zadané ako odkaz na pole formulára v tomto tvare ako na obrázku.  

Kritéria v dotaze
Kritéria v dotaze 

Aby sme zabezpečili funkčnosť filtrovania, tak je potrebné pridať „nové pole" na konci dotazu s vhodným názvom poľa a odkazom na pole formulára, ako kritérium použite Is null , ale dajte pozor aby bolo o riadok nižšie (operátor OR) ako kritérium v pôvodnom stĺpci. Týmto sa zabezpečí, že ak bude pole kritéria obsahovať nejakú hodnotu, tak ju dotaz zobrazí. Ak nebude obsahovať žiadnu hodnotu, tak sa zobrazia všetky záznamy.Teraz treba urobiť ďalší dotaz, ktorý bude založený na predchádzajúcom dotaze , ale kritérium už bude v poli „krajina" vytvorené rovnakým spôsobom ako v prvom dotaze. V mojom prípade ešte treba vytvoriť jeden dotaz, ktorý bude založený na druhom dotaze a kritérium bude pre pole „mesto". Toto zabezpečí pohodlné „filtrovanie" bez ohľadu na to ktoré polia sú vyplnené a ktoré nie sú.

SkryťVypnúť reklamu
Výsledný tretí dotaz
Výsledný tretí dotaz 

Z posledného dotazu je vhodné urobiť formulár a ten otvárať tlačidlom na úvodnom formulári, aby ste videli požadované údaje. Prvé dva dotazy sú vlastne pomocné a stačí aby stále boli v databáze, keďže sa vytvorila medzi dotazmi závislosť.

Postup vytvárania objektov
Postup vytvárania objektov 

Netvrdím, že toto riešenie je jediné, ale bez znalostí programovania je asi najpohodlnejšie. Máte nejaký nápad ako by sa dalo postupovať inak? Mne pokusy zadať všetky 3 kritéria v jednom dotaze zlyhávali a dostával som nesprávne, alebo žiadne údaje.

Peter Belko

Peter Belko

Bloger 
  • Počet článkov:  345
  •  | 
  • Páči sa:  15x

Môžete ho stretnúť ako lektora na počítačových školeniach, pri IT konzultáciách vo firmách, na letných terasách a v kaviarňach ako pozoruje dianie okolo seba, ale aj na potulkách po gréckych ostrovoch, pretože počítače nie sú jediné čo ho zaujíma.Ostrovné správy popisuje na osobnej stránke www.dovolenkar.skAktívne prispieva na svoj portál Tipy a triky v MS Office.. Zoznam autorových rubrík:  Tipy a triky MS Office 2013/20Externé tipy a triky MS OfficeSharePoint, spolupráca,Office3Tipy a trikyNávodyStalo sa ...Office 2010/2013 BetaMicrosoft KB článkySúkromnéNezaradené

Prémioví blogeri

Marcel Rebro

Marcel Rebro

135 článkov
Lucia Šicková

Lucia Šicková

4 články
Juraj Hipš

Juraj Hipš

12 článkov
Karol Galek

Karol Galek

115 článkov
Roman Kebísek

Roman Kebísek

106 článkov
Yevhen Hessen

Yevhen Hessen

35 článkov
reklama
reklama
SkryťZatvoriť reklamu