MS Access - funkcia IIF ako kritérium dotazu

"Rady nielen z Porady" - Tipy a triky, "how-to ...", nápady a riešenia k aplikáciam MS Office
pre všetky verzie až po MS Office 2010

MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Milan25 » 27.03.2015, 20:54

Zdravím,

máte niekto skúsenosť s používaním funkcie IIF ako kritérium v dotaze?
Viem ju použiť na vyselektovanie dát z jedného poľa - konkrétny parameter (Truepart), ale ako by som zadal filtrovať všetky hodnoty v časti Falsepart? Teda nefiltrovať a zobrať všetky hodnoty?
Skúšal som Is Not Null, aj "*", avšak mi to vyhodnotí ako chybu.

vďaka vopred za nápady :)
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Palo-admin » 02.04.2015, 11:12

Napr. takto:
Kód: Vybrať všetko
IIF_kec: IIf(InStr(1;[Pokec];"len toto")>0;Mid([Pokec];4;Len([Pokec]));[Pokec])


P.
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Milan25 » 09.04.2015, 08:09

Ďakujem pekne za odpoveď, ale neviem či sme sa pochopili, Vašu funkciu som skúšal, ale zrejme to bude niečo iné, alebo to neviem aplikovať.
Skúsim teda popísať bližšie:

Tabuľka farieb:
Farba = biela, čierna, ...
ID = 1, 2, ... (prislúcha farbe)

Tabuľka programu:
Program = program 1, program 2....

Dotaz:
Pre program 1 platí farba ID 1, ale napr. pre program 2 platia všetky farby, teda všetky ID bez obmedzenia.
Jedná sa o pole so zoznamom pri výbere farby, aby mi boli ponúknuté len relevantné farby k danému programu.

Ako to potom zapísať do časti falsepart funkcie IIF, aby vrátila všetky hodnoty a teda nefiltrovala?
ďakujem
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Palo-admin » 09.04.2015, 11:07

V tomto prípade by som to asi riešil inak, cez tzv. "referenčnú integritu", viď obrázky,
pretože cez IF-ovanie by to pri viacerých položkách nebolo možné.

T.j. číselník farieb, číselník programov a jedna prepojovacia tabuľka.

P.
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.

Za tento príspevok autor Palo-admin dostal poďakovanie :
Milan25
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Milan25 » 09.04.2015, 13:03

Ďakujem za potvrdenie s postupom IIF funkcie, skúšal som rôzne varianty, ale fungovalo to len pri exaktnom zadaní parametra.
Vyskúšam teda tento postup cez relácie, prípadne mám ešte jeden nápad na pomocné pole do tabuľky farieb.
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Milan25 » 10.04.2015, 23:04

Prepojovaciu tabuľku som vyskúšal, ale pre neštandardný prípad, keby som chcel filtrovať pole farieb mimo programu, existuje dáka možnosť po zadaní kritéria do dotazu ručne, aby to filtrovalo?
Mňa napadla taká možnosť, že si vytvorím v tabuľke farieb nové pole s hodnotou pre všetky riadky "1".
Potom v kritériu dotazu zadám presný parameter, avšak keď ho neplní, odvolám sa na toto nové pole a zadám parameter "1" a teda vyhodí všetky výsledky.
Je aj tento postup správny, alebo existuje niečo jednoduchšie?
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Access - funkcia IIF ako kritérium dotazu

Poslaťod Milan25 » 12.04.2015, 12:06

Pripájam znovu moju skúsenosť, problém som vyriešil s tým, že som si z dotazu vytvoril formulár, v ňom nadefinoval potrebné polia.
Relevantné filtrovanie som si nastavil cez VB a príkaz IF:

truepart:
rowsource = "Select - FROM - WHERE (zadanie potrebných kritérií) - GROUP BY"

falsepart:
rowsource = "Select - FROM - GROUP BY"

Milan
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát


Späť na Word, Excel, PowerPoint, Outlook, Access

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron