|
Microsoft Office Access |
|
|
Razni trikoviNivo:
Verujemo da su trikovi u radu sa nekim programom uvek rado čitani. Pod "trikovima" smatramo jednostavne rutine kojima se postižu naizgled proste, ali svakako korisne operacije u Accessu. Pogledajmo neke od njih. Promena aktivnog štampačaPoznato vam je da Access 2003 lokalizovan na srpski jezik. Kada korisnik zatraži da mu omogućite jednostavan odabir štampača, verovatno ćete mu omogućiti opcije podešavanja štampača (Print Setup) dostupnim. Od tog koraka, Windows preuzima dalje operacije - ako korisnik ima instaliran lokalizovani Windows, videće okno podešavanja štampača na srpskom jeziku. Svejedno, postoji nekoliko načina da u samom Accessu podesite željeni štampač na koji će biti prosleđeni izveštaji. Za Access u verziji 2000 i ranije, potrebno je da napišete funkcije koje će se preko API interfejsa obraćati sistemu i "izvući" podatke o štampaču. Čak i najkraća funkcija koju smo uspeli da pronađemo poziva tri API funkcije i toliko je velika da je besmisleno da je ovde prenosimo (ako želite primer funkcije za odabir štampača, ). Međutim, ako koristite Access 2002 ili noviji, postoji veoma jednostavan način da odaberete štampač upotrebom objekta Printer. Da biste utvrdili vrednost osnovnog štampača iskoristite sledeće komande: dim strOsnovniStampac as string strOsnovniStampac = Application.Printer.DeviceName Zatim možete privremeno promeniti štampač sa osnovnog na neki drugi jednostavnom komandom: Set Application.Printer = Application.Printers("Naziv štampača")
I konačno vratiti štampač na osnovni: Set Application.Printer = Application.Printers(strOsnovniStampac) Ugnežđeni upitiU jednom od prošlih priloga, dotakli smo se tehnike ugnežđenih upita
Tabela inventara će sadržati ulaze robe u magacin, dok će tabela OrderDetails sadržati izlaze robe iz magacina. Ulaznu količinu utvrdite pozitivnom vrednošću polja UnitAdd, dok za izlaz možete koristiti vrednost polja Quantity tabele OrderDetails. Za ovaj primer je bitno da napunite tabelu inventara sa što više različitih vrednosti. Recimo da bi 200.000 zapisa u tabeli inventara i par hiljada zapisa u tabeli OrderDetails bilo dovoljno za test. Kreirajte i novi upit i pređite u SQL prikaz. Prenesite sledeću SQL strukturu:
SELECT
Products.ProductName, Products.SerialNumber, Products.UnitPrice,
(SELECT sum(UnitsAdd)
FROM inventory
WHERE ProductID = Products.ProductID) AS TotalAddStock,
(SELECT sum(Quantity)
FROM OrderDetails
WHERE ProductID = Products.ProductID) AS TotalSoldStock,
(TotalAddSTock-TotalSoldStock) AS InStock
FROM Products;
Prvi ugnežđeni upit će sabrati sve ulaze robe u magacin, dok će drugi ugnežđeni upit sabrati sve količine na izlazu. Količina prodate robe će biti oduzeta od broja kupljene. Pokrenite upit na prosečnom računaru i pokušajte da utvrdite vreme za koje će biti proračunato stanje zaliha. Upit će rezultate vratiti trenutno! Otključavanje zaštite spoljaDa li se sećate komande za onemogućavanje automatskog pokretanja programa ili objekata u Access bazi? Možda je i koristite? Da vas podestimo: u dijalogu Tools / StartUp možete podesiti da se po učitavanju baze podataka pokrene određeni formular, a da se isključi prikaz ostalih objekata baze. U tom slučaju, bazu možete učitati bez automatskog pokretanja kada tokom učitavanja držite pritisnut taster Shift. Kako biste dodatno zaštitili aplikaciju, osobinu AllowBypassKey ćete postaviti na True; time ćete sprečiti dejstvo tastera SHIFT, ali ćete tako zaštititi bazu i od vas samih! I sad, šta ako nemate verziju baze koja nije zaštićena automatskim pokretanjem? Postoji nekoliko trikova da pomenutu osobinu vratite na False, ali postoji i veoma jednostavan i univerzalan način. Iskoristite sledeći program:
Dim db As Dao.Database
Set db = OpenDatabase(NazivBaze)
MsgBox ("Zaštita isključena, rezultat = " & _
ChangeProperty("AllowBypassKey",
_dbBoolean, False, MyDb))
Program možete upotrebiti u zasebnoj bazi podataka. Dovoljno je da izmenite parametar NazivBaze i pokrenete program. Generisanje slučajnog datumaDa li vam je nekada zatrebalo da generišete nasumični datum? Recimo, to bi moglo biti korisno u prilikama kada je potrebno da testirate aplikaciju na različite vrednosti datuma. Slučajni broj ćete generisati funkcijom Rnd, ali istu funkciju možete upotrebiti i za generisanje nasumičnog datuma. Prilažemo dva primera pomoću kojih možete generisati nasumični datum u zadatom intervalu, odnosno bilo koji nasumični datum. 'Generiše nesumičan datum u zadatom intervalu Int((UpperDate - LowerDate + 1) * Rnd + LowerDate) 'Generiše bilo koji nasumičan datum Int(Rnd() * CDbl(Date + 1)) Od ovih komandi možete generisati funkcije koje možete pozvati iz bilo kojeg događaja:
Function RandomDateInRange(LowerDate As Date, _
UpperDate As Date) As Date
RandomDateInRange = Int((UpperDate - LowerDate + 1) * _
Rnd + LowerDate)
End Function
Function RandomDate() As Date
RandomDate = Int(Rnd() * CDbl(Date + 1))
End Function
Funkciju možete testirati zadavanjem sledeće komande u oknu Intermediate: ? RandomDateInRange(#1/1/2006#, #31/12/2006#) ? RandomDate Rezultat će biti nasumični datum 2006. godine, odnosno proizvoljan nasumični datum.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |