Microsoft Office Excel
uređuje Dragan Grbić

 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 Excelu
 


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
 

Da li je upit izvršen?

Nivo:  NIVO 4 - klinite za objašnjenje


Programirana kontrola stanja izvršenosti upita je veoma osetljivo pitanje. Ne možete predvideti vreme izvršavanja i zato bi bilo najbolje da uspostavite redosled komandi pre i posle izvršenog upita. Evo kako ćete to učiniti...

Mogućnost Excela da pristupi spoljnom sadržaju i uveze neke podatke predstavlja važnu alatku u korporativnom okruženju. Lakoća kojom se prave razne analize podataka rasterećuje projektante baza podataka od potrebe da formiraju namenske upite i analize u samoj bazi. Međutim, u automatizaciji postupaka postoji jedna nezgoda: ne može se predvideti koliko će tačno trajati osvežavanje ranije formiranog upita. Ako se upit pozove iz makroa, nije prikladno nastavljati neko izvršavanje u istom makrou, pošto VBA ne ispituje da li je osvežavanje završeno; to znači da ne smete izvoditi kompletan posao unutar istog makroa.

Rešenje ipak postoji, a sastoji se u tome da ćete poziv osvežavanja upita odvojiti u poseban makro; prethodno ćete definisati klasu upita i u njoj pripremiti makroe događaja BeforeRefresh i AfterRefresh, u kojima ćete definisati sve potrebne akcije pre i posle osvežavanja.

Evo vrlo skraćene šeme koda: uđite u VBE, ubacite novi modul klase (Insert/Class Module) i u njemu formirajte sledeće makroe događaja:

' kod koji treba uneti u Class Module
' pretpostavka je da se klasa zove Class1

Public WithEvents qt As QueryTable

Private Sub qt_BeforeRefresh(Cancel As Boolean)
  '
  ' sve akcije pre osvežavanja upita
  '
End Sub

Private Sub qt_AfterRefresh(ByVal Success As Boolean)
  '
  ' sve akcije posle osvežavanja upita
  '
End Sub

Potom ubacite novi (običan) modul i tamo napišite sledeći makro:

' kod koji treba ubaciti u običan modul
Dim Upit As New Class1

Sub OsveziUpit()
  Set Upit.qt = Thisworkbook.Sheets(1).QueryTables(1)
End Sub

Kada želite da osvežite upit, pokrenite makro iz dijaloga Tools/Macro/Macros (ALT+F8). Da bi se ceo scenario pravilno izveo pri otvaranju radne sveske, kada se upit podrazumevano osvežava, obezbedite i makro Auto_Open koji će pozvati celu spremljenu garnituru na izvršavanje:

' obezbeđujemo izvršavanje upita
' pri otvaranju radne sveske
'
Sub Auto_Open()
OsveziUpit
End Sub

Detaljniji komentar i opis ove tehnike pronaći ćete u bazi znanja Microsofta u članku Q182735.

 

  (C) 2000-2009 Praktikum na Webu

PC 80


 
 

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.