Microsoft Office Access
uređuje Branislav Mihaljev, MVP

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Accessu
 


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

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 Praktikum na Webu
 

Razni trikovi

Nivo:  NIVO 1 - klinite za objašnjenje


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ča

Poznato 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 upiti

U jednom od prošlih priloga, dotakli smo se tehnike ugnežđenih upita (upitima unutar upita). Proširimo stečeno znanje ne jednom primeru. Otvorite bazu primera Northwind i kreirajte tabelu Inventar (ili Inventory ako koristite engleski jezik). Polja tabele i relacije postavite prema slici:

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 spolja

Da 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 datuma

Da 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.

 

  (C) 2000-2010 Praktikum na Webu

PC 123


 
 

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.