Microsoft Office Access |
|
|
Nasumično izdvajanje zapisaNivo:
Nasumično izdvojeni zapisi mogu poslužiti kod statističke obrade uzorka ili kod istraživačkih studija. Ali, kada poželite da izdvojite nasumično određeni broj zapisa iz tabele koristeći upit, možete se naći pred nereševim problemom. Slučajan izbor mora biti toliko slučajan, barem koliko vaš uticaj na kreiranje slučajnog broja možete smanjiti na minimum. Rešenje ovakvog problema ipak nije jednostavno kako to na prvi pogled izgleda zbog načina na koji Access pokušava da optimizuje funkciju pozvanu iz upita. Moguće rešenje je da pridružite novu kolonu postojećoj tabeli i zatim da pozivom VBA funkcije zapišete slučajan broj za svaki zapis tabele. VBA funkciju morate pozivate za svaki zapis tabele i dobijene vrednosti upisati u polje koje ste kreirali. Zatim možete sortirati tabelu po toj koloni i izdvojiti prvih nekoliko slogova koristeći Top Values upit. Indirektno, upotrebom upita možete kreirati dodatnu kolonu u kojoj će se pronaći slučajne vrednosti. Sortiranjem po toj koloni i izdvajanjem određenog broja zapisa, dobićete potreban broj slučajnih slogova. Pređite na karticu modula i kreirajte novi modul (ili otvorite postojeći, kojoj ćete pridružiti novu funkciju). Prenesite sledeću funkciju u njega i zatim ga snimite pod nekim imenom: Function NasumZapis(varPolje As Variant) Randomize NasumZapis = Rnd End Function Kreirajte novi upit i prenesite u njega polja tabele koje želite da vidite kao rezultat. U naredno, prazno polje upita dodajte poziv funkcije kako je prikazano na slici: Sluc: NasumZapis([Ime]) Funkciji prosleđujete vrednost jednog od polja tabele i to bilo kog, koga funkcija preuzima pod promenljivom varPolje. Potrudite se da prosledite samo ona polja čiji sadržaj je što kraći, kako bi funkcija brže radila. Ova vrednost se dalje ne koristi nigde, ali je bitno da se tu nađe kako biste naterali Access da za svaki zapis tabele ponovo pronađe slučajan broj. U protivnom, Accessova mašina upita bi mislila da funkcija nema nikakve veze sa podacima, bila bi obrađena samo jednom i dobio bi se isti nasumičan broj za sve zapise. Pređite na dizajn upita i otvorite karticu osobina klikom desnog tastera u prazno polje upita i odabirom stavke Properties iz konteksnog menija. Vrednost osobine Top Values postavite na onaj broj koliko nasumičnih zapisa želite da vidite (u ovom primeru tri). Vrednost osobine Unique Records postavite na Yes, kako biste osigurali da se za rezultat dobiju samo različiti zapisi, u slučaju da se određeni zapisi iz nekog razloga dupliraju. Pokrenite upit i pogledajte rezultat - ako ne želite da vidite kolonu sa nasumičnim brojevima, možete je isključiti u dizajn-pogledu upita. Ako pritisnete kombinaciju tastera SHIFT+F9, nateraćete Access da ponovo pokrene upit, pa ćete dobiti drugačiji skup zapisa. Naredbu Randomize iz funkcije možete izostaviti i u tom slučaju ćete dobiti jedinstven broj za sve zapise tabele. Isti efekat ćete dobiti kada potpuno izostavite funkciju i u dodatno polje upita upotrebite samo funkciju Rnd(). Toj funkciji možete proslediti i naziv polja tabele, ukoliko ono sadrži samo brojeve, ili upotrebiti funkciju za određivanje dužine tekstualnog zapisa Len([NazivPolja]) i, konačno, postići sličan efekat.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana. |