Access – Brojevi i slova u istom polju
Numeričko polje tabele može imati neku vrednost, može biti prazno, ali može imati i vrednost nula. Prazno polje tipa Number zapravo ima vrednost Null, što nije isto što i 0 (nula).
Za čoveka je, doduše, 0 i prazno polje praktično isto, pa i u nekim programskim jezicima razlika ne postoji, ali Access razlikuju nulu i prazno polje, na pricipu „ima informacija / nema informacija“ – nula označava da informacija postoji.
Ovakve male konfuzije se obično ispravljaju tako što se za potrebe prikazivanja podataka na izveštajima praznim poljima dodeljuje vrednost nula, posebno kod izveštaja koji sadrže više kolona. Ako je previše praznih polja, onda postaje teško da se prate podaci po redovima. Tipična tabela sa početnim podacima data je na slici 1.
Prazno polje može da se prevede u polje sa vrednošću nula upotrebom upita ili pomoću formule na polju izveštaja. Prvi način se češće koristi zbog velike brzine izvršavanja upita. Kreirajte novi upit i dodajte vašu tabelu (ili više njih, ako ujedinjavate podatke). Prazno polje možete pretvoriti u vrednost 0 upotrebom funkcije NZ(polje) ili funkcije IIF(uslov, vrednost 1, vrednost 2). Na slici 2 je prikazan upit u režimu dizajna i izgled podataka pokretanjem upita (uokvireni deo).
Funkcija NZ() je zapravo svedeni oblik funkcije IIF(); u ovom slučaju obe rade istu stvar, ali s malom razlikom. Pogledajte ukvireni deo slike 2 tj. rezultat izvršavanja upita. U prvom i trećem polju brojevi su s leve strane polja, dok je u drugom polju broj s desne strane, što obično ukazuje da su prvo i treće polje formatirani za prikaz teksta, odnosno da funkcija NZ() pretvara broj u string. Preciznije rečeno, funkcija NZ() vraća nulu, string nulte dužine ili neku drugu vrednost kada ulazni parametar tipa Variant ima vrednost Null. U dokumentaciji funkcije ima i važna napomena: kada se ova funkcija koristi u upitu, a ne navede se izlazna vrednost, za uslov da je ulazna vrednost Null, ona uvek vraća string nulte dužine. Tu se negde krije savet: kada ovu funkciju koristite u upitu, obavezno navedite i vrednost koju će funkcija da vrata kada je ulazni podatak Null, da biste izbegli mešanje tipova podataka unutar kolone.
Druga funkcija IIF() sastoji se iz tri dela. Prvi je uslov koji se provera, drugi je vrednost koja se vraća kada je uslov ispunjen i treći je vrednost koja se vraća kada uslov nije ispunjen. Pošto je ulazna vrednost iskaz (logička provera uslova), tip podataka se ne menja, pa se u ovom slučaju izlazni tip podataka ne menja. Razlike nemaju značaja u ovom primeru, ali mogu imati značaja tamo gde je vrsta podataka bitna, tamo gde se ulazni i izlazni tipovi podataka razlikuju.
Primetite na slici 2 da se ispred obe funkcije nalazi najmanje jedna reč odvojena dvotačkom od funkcije. U ovom slučaju je to „Vrednost 1:“, što je naziv polja kakvo će se prikazivati na upitu i dalje gde se upit koristi. Ovaj naziv se naziva i alias. Pravilo kod pisanja ove dve, ali i većine ostalih funkcija, je da alias ne sme da ima isto ime kao polje tabele. Mi smo dodali razmak između „Vrednost“ i „1“, dok je naziv polja tabele „Vrednost1“.
Drugi, čest slučaj prikaza praznih polja na izveštajima, jeste upotrebom karaktera „‑“ umesto nule. Zadržava se urednost izveštaja, ali se ne odvlači pažnja na broj kao sa nulama, gde čitalac izveštaja mora da pročita nulu koja liči na osmicu. U funkcijama broj 0 zamenite karakterima „‑“ (s obaveznim navodnicima), tako da funkcije postanu: NZ([Vrednost1], “–”) i IIf(IsNull([Vrednost2]), “–”, [Vrednost2]). Umesto karaktera „‑“ možete napisati bilo koji željeni znak ili reč, npr. na engleskom govornom području se koristi „N/A“ (non‑available). Na slici 3 su prikazane obe varijante rezultujućeg izveštaja, pa odaberite onu koja vam više odgovara.
Uređuje Branislav Mihaljev