Microsoft Office Access
uređuje Branislav Mihaljev, MVP

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

Još o Accessu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Nasumično izdvajanje zapisa

Nivo:  NIVO 4 - klinite za objašnjenje


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])

Klikni za punu sliku

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.

 

  (C) 2000-2009 Praktikum na Webu

PC 101


 
 

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.