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

 
Suština pasijansa
Suština pasijansa
 


 

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
 

OLE automatizacija

Nivo:  NIVO 4 - klinite za objašnjenje


Automatizacija je termin koji se odnosi na proces tokom kojeg jedna programska komponenta komunicira sa programskom komponentom drugog programa koristeći Microsoft Component Object Model (COM). Ova metoda se često koristi u programima koji razmenjuju informacije između komponenti programa, kao što je Visual Basic ili Visual Basic for Applications, jezik koji se koristi u Microsoft Office programima i dostupan je u većini Office programa.

U procesu automatizacije koristi se termin binding koji se odnosi na povezivanje, gde razlikujemo rano povezivanje i kasno povezivanje. Binding je proces pozivanja odgovarajućih funkcija koje je programer napisao u programskom jeziku koje zapravo implementiraju funkciju.

Proces opvezivanja se lako razume na primeru pripreme teksta za knjigu gde sam tekst menja program. Pisac knjige često može navesti reference tipa "Pogledajte stranu X za više informacija". Strana X nije poznata sve dok se knjiga ne "prelomi" i pripremi za štampu, a neposredno pre štampe sve reference "X" se moraju zameniti stvarnim brojevima stranica knjige, tj. sve se mora "povezati". Povezivanje programa funkcioniše na veoma sličan način. Program se sastoji od delova koji se moraju uklopiti pre nego što program postane čitljiv ili upotrebljiv. U osnovi, povezivanje je akcija tokom koje se funkcije zamenjuju adresama u memoriji na koje će program "skočiti" kada se funkcija pozove.

Uzmimo primer u kome ćemo pomoću Accessa pokretati Excel i razmenjivati podatke između dva programa. U ranom povezivanju potrebno je uključiti referencu za aplikaciju kojom će se manipulisati, što ćete učiniti tako da u meniju Tools VBA prozora odaberete References, a zatim uključite aplikaciju iz liste, npr. Microsoft Excel 8.0 Object Library. Nova instanca Excela se pokreće upotrebom sledećeg programskog koda:

Dim oXL As Excel.Application
Set oXL = New Excel.Application

Kasno povezivanje koristi klauzulu CreateObject za kreiranje instance aplikacije objekta kojom možete upravljati:

Dim oXL As Object
Set oXL = CreateObject("Excel.Application")

U oba slučaja treba proveriti da li je Excel već pokrenut i, eventualno, iskoristiti već pokrenutu instancu programa. Ako program vrati grešku, uz pomoć koda za kontrolu greške možete preusmeriti program na deo koji kreira novu instancu programa.

Obe metode imaju svojih prednosti.

Kod ranog povezivanja, program se izvršava neznatno brže jer se može kompajlirati pre izvršavanja, nasuprot kasnom povezivanju kod kojeg se program kompajlira kako se izvršava. Zahvaljujući ovoj osobini, program možete proveriti odabirom stavke menija Debug / Compile u VBE okruženju, čime nalažete Accessu da kompajlira program. Tokom ovog procesa, kompajler je u mogućnosti da ukaže na sintaksne greške programa koje se inače mogu javiti kod kasnog povezivanja.

Kod programiranja automatizacije upotrebom ranog povezivanja na raspolaganju vam je pomoćna tehnika IntelliSense koja se odnosi na postupak tokom kojeg ukucate reč i tačku, a zatim u padajućoj listi vidite dostupna svojstva i metode dostupne upravo ukucanoj ključnoj reči. Reč možete obeležiti i pritiskom na taster F1 pristupiti opisu objektnog modela aplikacije (Object Browser i VBA sistem pomoći). Konačno, na raspolaganju su vam sve generičke (mnemoničke) konstante pokrenute aplikacije. Na primer, ako automatizujete Word iz Accessa, možete koristiti:

Dim objWord As Word.Application
Set objWord = New Word.Application

With objWord
  .Visible = True
  .Activate
  .WindowState = wdWindowStateMaximize
  .Documents.Open ("c:\Dokument.doc")
End With

Tokom pisanja ovog programa, čim otkucate .WindowState = , videćete u padajućoj listi sve dostupne konstante i prosto odabrati wdWindowStateMaximize. Kod kasnog povezivanja, ekvivalentna naredba ima oblik .WindowState = 1. To znači da morate znati, gledajući u Wordov objektni model (Object Browser) da konstanta wdWindowStateMaximize odgovara brojčanoj oznaci 1. U praksi, to je sporo, naporno i podložno greškama.

Sve navedeno govori u prilog ranom povezivanju koje je, čini se, daleko lakše za implementaciju u odnosu na kasno povezivanje. Međutim, kasno povezivanje ima jednu veliku prednost: program ne zavisi od verzije programa koji pokrećete. Ako u vašem programu referencirate biblioteku verzije Excela 8, a korisnik ima biblioteku verzije 9 ili 10 tj. noviju verziju Excela, program neće raditi. U ovom slučaju, program će verovatno raditi uz proceduru za presretanje grešaka; kod ranog povezivanja može se desiti da program čak ne može da se pokrene.

Preostale prednosti nemaju nekog velikog značaja, ali ih valja pomenuti: što više referenci je uključeno u program, datoteka je veća i sporije se izvršava; određena programska okruženja ne dozvoljavaju kreiranje referenci ka drugim aplikacijama.

Koji od ova dva metoda odabrati? Zbog svojih prednosti i mana možda je najbolje - oba! Sledeći program demonstrira jedan takav pristup. Tokom razvoja možete koristiti rano povezivanje, a kasnije (u finalnoj verziji programa) preći na kasno povezivanje.

Sub Povezivanje()
Dim ref As Reference

' 0 za kasno povezivanje
' 1 ako postoji referenca
#Const ExcelRef = 0
#If ExcelRef = 0 Then ' kasno povezivanje
    Dim objXL As Object
    Dim objWkb As Object
    Dim objSht As Object
    Set objXL = CreateObject("Excel.Application")
    ' Ukloniti referencu ako postoji
    On Error Resume Next
    Set ref = References!Excel
    If Err.Number = 0 Then
        References.Remove ref
    ElseIf Err.Number <> 9 Then
        MsgBox Err.Description
        Exit Sub
    End If
' Presretanje greške:
' On Error GoTo ErrorHandler
#Else
    ' Referenca za verziju Excela se mora navesti
    Dim objXL As Excel.Application
    Dim objWkb As Excel.Workbook
    Dim objSht As Excel.Worksheet
    Set objXL = New Excel.Application
#End If
End Sub


Ovaj prilog možete komentarisati ako pristupite najavi priloga na blogu Praktikuma na Webu
 

 

  (C) 2000-2011 Praktikum na Webu

PC 145


 
 

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.