Microsoft Office Access
uređuje Branislav Mihaljev, MVP

 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 Accessu
 


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
 

ADO ili DAO

Nivo:  NIVO 4 - klinite za objašnjenje


Iako je novi sloj za komunikaciju sa bazom već predstavljen u Accessu 97, prelaz na Access 2000 je ipak izazvao grdne probleme korisnicima.

Umrežavanje računara i rad sa bazama podataka u mreži doveo je do promene i u samom Accessu 2000. DAO (Data Access Object) se seli u penziju i zamenjuje ga ADO (ActiveX Data Object). DAO je Microsoftova prva objektna (struktura/kod) bilbioteka za manipulaciju bazom podataka. Prva verzija je došla sa Accessom 1, druga sa Accessom 1.1, treća se pojavila u Accessu 2, sa Accessom 95 "uselila" se i u Visual Basic 4... Verzije DAO biblioteka su, zbog kompatibilnosti sa programima pisanim starijim verzijama DAO biblioteka, zadržane, a inicijalno nisu uključene, kako bi se izbegla njihova "slučajna" upotreba.

DAO je prvenstvo namenjen radu sa lokalnim bazama podataka uz mogućnost rada sa "udaljenim" bazama kroz ODBC (Oracle, DB2, SQL Server, Paradox, FoxPro...). Reč "mogućnost" ovde znači da se neke stvari ne mogu uraditi koristeći DAO.

Ono što ne može DAO, može ADO koji je tiho predstavljen u verziji Accessa 97, dok ga je verziji 2000 potpuno zamenio. Generalna preporuka Microsofta je da se pređe na ADO. Pre ili kasnije moramo to učiniti, kako bismo postigli kompatibilnost sa narednim verzijama Accessa i iskoristili pogodnosti koje ADO sada pruža. To automatski ne znači da se programi pisani u VBA za Access 97 ne mogu koristiti bez ispravki. DAO je i dalje još uvek prisutan (poslednja verzija je 3.6 koja sarađuje sa slojem JET 4.0), ali je inicijalno neaktivan. Ova neaktivnost je podsećanje korisniku da se izbegava korišćenje DAO biblioteke.

Šta uraditi kada VBA program za Access 97 ne radi u Accessu 2000?

Kao što se programi pisani za ranije verzije Accessa mogu koristiti u Accessu 97 uključivanjem određene biblioteke DAO, tako se i u Accessu 2000 može koristiti kôd pisan u Accessu 97, pri čemu se koristi biblioteka DAO 3.6. Korisnici koji ne čitaju literaturu su se našli zatečeni: jednostavna linija

Dim dbs As Database

ne radi u Accessu 2000! Pošto je to sintaksa DAO biblioteke, a ona nije inicijalno uključena, program neće raditi.

Dakle, da bi program pisan DAO "jezikom" radio u Accessu 2000 potrebne je uključiti DAO 3.6 biblioteku. Ovu bibliotekćete uključiti u VBA prozoru bilo kog modula; potrebno je da je ključna baza otvorena u Accessu 2000. Pritiskom na kombinaciju tastera CTRL+G otvorite prozor VBA modula. U meniju Tools\References pronađite klauzulu Microsoft DAO 3.6 i uključite je.

Ako pak pišete novi VBA modul za koji ne planirate da ga pokrenete u ranijim verzijama Accessa koristite ADO, koji je stvoren za efikasan rad u klijent/server okruženju. Težnjom ka umrežavanju i smanjivanju razlike u terminima "lokalni" ili "mrežni", pojam "lokacije" gubi na značaju. Stoga će ADO raditi jednako efikasno bez obzira na lokaciju baze. Pošto se uvodi nova terminologija i sam način rada pomenućemo kroz primere neke od razlika u sintaksi između DAO i ADO biblioteka.

Primer 1: Postavljanje reference na trenutno otvorenu bazu

 (Verzija Accessa)

(Primer)

Access 1.x

Dim dbs As Database
Set dbs = CurrentDb

Access 2.x

Dim dbs As Database
Set dbs = DBEngine.Workspaces(0).Databases(0)

ili

Dim dbs As Database
Set dbs = DBEngine(0)(0)

Access 7.0 ili kasnija verzija

Dim dbs As DAO.Database
Set dbs = CurrentDb

Access 9.0 (preporučljivo)

Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection

Primer 2: Otvaranje baze i postavljanje reference

Access 1.x

Set dbs = OpenDatabase("Contacts.mdb")

Access 2.x i kasnije verzije

Set dbs = DBEngine.Workspaces(0).OpenDatabase("Contacts.mdb")

ili

Set dbs = Workspaces(0).OpenDatabase("Contacts.mdb")

ili

Set dbs = OpenDatabase("Contacts.mdb")

Access 9.x (preporučljivo)

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Contact.mdb"

Primer 3: DAO

Otvaranje Recordseta

Dim db as Database

Dim rs as DAO.Recordset
Set db = CurrentDB()
Set rs = db.OpenRecordset("Employees")

Editovanje Recordseta

rs("TextFieldName") = "NewValue"
rs.Update

Primer 4: ADO

Otvaranje Recordseta

Dim rs as New ADODB.Recordset
rs.Open "Employees", CurrentProject.Connection, adOpenKeySet, adLockOptimistic

Editovanje Recordseta

rs("TextFieldName") = "NewValue"
rs.Update

Razlike između DAO i ADO sintakse potražite u Helpu Accessa 2000, u sledećim referencama:
Programming Information\Conversion\Converting DAO Code to ADO
Programming Information\Conversion\Examples of Converting DAO Code

 

  (C) 2000-2009 Praktikum na Webu

Branislav Mihaljev, maj 2000; PC 57


 
 

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.