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
 

Nazivi objekata u listi

Nivo:  NIVO 4 - klinite za objašnjenje


Kada želite da korisnicima date veću kontrolu nad objektima baze, bolje je da kreirate korisnički interfejs, nego da dajete pristup objektima u oknu Database. Situacije kada treba imitirati deo Accessovog korisničkog interfejsa su zaista specifične, pa ćemo ilustrovati moguće situacije jednim primerom.

Ako budete u prilici da vam zatreba, sledeća procedura poštedeće vas intervencija na lokacijama korisnika. Za demonstraciju tehnike poslužićemo se bazom primera Northwind. Kreirajte formu i na nju postavite padajuću listu. Snimite formu pod imenom frmObject. Vrednost RowSourceType postavite na Value, a u polju RowSource upišite: "Table"; "Query"; "Form"; "Report"; "Macro"; "Module"; "Data Access Page". Nazovite padajuću listu cboObjekti. Na formu postavite i jednu listu koju ćete nazvati ListObjekti. Nakon odabira tipa objekta padajuće liste, u listi podataka će se pojaviti nazivi objekata. Da biste ovo postigli, poslužite se sledećim programom, koji ćete postaviti u događaj AfterUpdate padajuće liste.

Dim frm As Form, ctl As ComboBox
Dim strObject As String, aob As AccessObject
Dim obj As Object, strTemp As String
Dim strList As String

Set frm = Forms!frmObject
Set ctl = frm!cboObjekti
strObject = ctl.ListIndex

Select Case strObject
  Case acTable
    Set obj = CurrentData.AllTables
  Case acQuery
    Set obj = CurrentData.AllQueries
  Case acForm
    Set obj = CurrentProject.AllForms
  'i tako dalje za sve ostale objekte
End Select

For Each aob In obj
  strTemp = aob.Name
  strList = strList & strTemp & "; "
Next

ListObjekti.RowSource = strList

Mada na prvi pogled komplikovana, ova procedura je zapravo veoma jednostavna. Većina koda definiše promenljive i utvrđuje selekciju padajuće liste; glavni deo se krije u For... Next petlji, koja čita nazive objekata i smešta ih u listu. Pridruživanjem nove vrednosti promenljive postojećoj, odvojenoj znakom ";", lista se nadopunjuje bez brisanja prethodnog sadržaja. Obratite pažnju da u ovom primeru ne postoji procedura za hvatanje grešaka, koje se mogu pojaviti ukoliko je lista objekata prazna.

Pokrenite formu, selektujte tip objekta u padajućoj listi i pogledajte rezultat.

Problem se može javiti kod prikaza tabela, jer ona prikazuje skrivene i sistemske tabele. Da biste izbegli njihovo ispisivanje, potrebno je da proverite početna četiri slova naziva tabele: ukoliko su ona jednaka sa "MSys", pređite na sledeći objekat baze. Takođe je potrebno proveriti osobinu GetHiddenAttribute i ispitati da li je tabela korisnička, ali skrivena.

For... Next petlju možete zameniti sledećim programom. Sistemskim tabelama svakako treba onemogućiti pristup, dok se prikaz skrivenih može omogućiti, zavisno od situacije.

For Each aob In obj
  If Left$(aob.Name, 4) <> "MSys" Then
    If Not (Application.GetHiddenAttribute(aob.Type, aob.Name)) Then
      strTemp = aob.Name
      strList = strList & strTemp & "; "
    End If
  End If
Next

Ograničenje ove procedure je dvojako: nemoguće je sortirati listu - prikaz zavisi od vremena izmene objekata; drugo ograničenje je veličina broja karaktera u polju RowSource liste. Bez obzira da li ste omogućili ili ne prikaz skrivenih i sistemskih objekata u oknu Database, ova procedura će uvek onemogućiti njihov ispis.

 

  (C) 2000-2009 Praktikum na Webu

Branislav Mihaljev, Access bajtovi, PC 92


 
 

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.