|
Microsoft Office Access |
|
|
Brojač zapisa i kumulativna sumaNivo:
Brojanje zapisa izvora podataka ili sabiranje rastuće sume (kumulativne sume) su vrednosti koje mogu predstavljati značajnu informaciju. Kumulativnu sumu ćete lako formirati na izveštaju: postavite odgovarajuću formulu za sabiranje vrednosti polja, a zatim osobinu RunningSum postavite na Yes. Međutim, jeste li pokušali da rastuću sumu dobijete u okviru upita ili formulara? Ako jeste, verovatno ste primetili da osobina RunningSum nije dostupna, a da grupisanjem zapisa i sabiranjem jednog polja ne dobijate željene vrednosti. Razlog što možete na izveštaju lako prikazati rastuću sumu je taj što sistem za formatiranje izveštaja formira polja izveštaja određenim redosledom, na način karakterističan samo za izveštaje. Zapravo, postoji nekoliko načina da se rastuća suma dobije u upitu. Takav upit ćete upotrebiti kao izvor podataka izveštaja, pa ćete dobiti rastuću sumu u okviru formulara. Prva metoda koristi funkciju DSum() koja sabira vrednost tekućeg zapisa sa svim prethodnim. Detaljan opis načina kreiranja upita nad bazom primera Northwind možete pronaći u Microsoftovoj bazi znanja u članku KB290136
RunTot: DSum("Freight","Orders","DatePart('m', _
[OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _
[OrderDate])<=" & [AYear] & ")
Pri čemu su korišćeni argumenti sledeći:
AMonth: DatePart("m", [OrderDate])
AYear: DatePart("yyyy", [OrderDate])
Drugi metod se sastoji u upotrebi funkcije Sum() i Count() i dvostruke, odnosno višestruke upotrebe SELECT klauzule u sklopu jednog upita. Za demonstriranje tehnike, upotrebićemo bazu primera Northwind (bazi možete pristupiti kroz meni Help / Sample Databases). Pređite na karticu upita i formirajte novi upit. Za izvor podataka odaberite tabelu Orders. Odaberite sva ili samo određena polja koja želite da upit vrati. U dva prazna polja mreže upita upišite naredne SQL naredbe: RecNo: (SELECT COUNT(OrderID) FROM Orders _ AS temp WHERE temp.OrderID <= Orders.OrderID) RunningSum: (SELECT Sum(Freight) FROM Orders _ AS temp WHERE temp.OrderID <= Orders.OrderID) Prva naredba RecNo je brojač slogova upita kod kojeg, za razliku od AutoNumber polja, brojevi idu od 1 do n, dok druga funkcija sabira vrednost prethodnog polja Freight sa vrednošću tekućeg zapisa. Primer možete upotrebiti i u slučaju kada imate dve kolone tabela, npr. uplata i isplata, a želite da dodate kolonu tekuće stanje kako biste pratili kretanje i stanje računa. Ujedno ove vrednosti (upit) možete upotrebiti kao izvor podataka izveštaja i odmah postići funkcije brojača i kumulativne sume bez modifikacije osobina polja izveštaja.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |