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
 

Nova vrednost u padajućoj listi

Nivo:  NIVO 2 - klinite za objašnjenje


Padajuća lista (combo box) se koristi u mnogim prilikama. Njena vrednost može poslužiti za pretragu podataka, može sadržati listu podataka koje korisnici mogu odabirati, Access je može dopunjavati postojećom vrednošću sa započetim unosom teksta, možete ograničiti korisnika na izbor podataka iz liste, itd. Problem sa kojim se programeri obavezno sreću glasi: kako dodati zapis u skup podataka kada operator unese vrednost koja nije u listi?

Primer za ovo je trgovina u koju dolazi novi kupac. Tom prilikom, bilo bi uobičajeno da se svi matični podaci o kupcu unsu u bazu, kako bi bili raspoloživi z asledeću priliku. Sledeći put kada taj kupac dođe u kupovinu, dovoljno je da ga odaberete iz padajuće liste i obradite podatke o kupovini. Naziv kupca je potrebno transparentno uneti u postojeći skup podataka, osvežiti listu i ponovo prikazati vrednost.

Osobina koja kontroliše mogućnost unosa proizvoljnog teksta u padajuću listu se naziva Limit To List. Kada je ova osobina postavljena na vrednost No, tada korisnik aplikacije može upisati bilo koju vrednost u polje. Ovo je dobro, ali i pogrešno: ako je potrebno da ta vrednost ostane trajno zapisana u bazi podataka, sam upis u listu ne znači ništa, jer se upisana vrednost na ovakav način gubi - ona je trenutno prikazana u listi, a kada pređete na novu vrednost, postojeća biva obrisana.

Čuvanje svih podataka u bazi ima smisla, a dodavanje novih vrednosti upisivanjem u listu je često i obavezno. Da biste omogućili korisniku da može da dodaje nove zapise, postavite osobinu Limit To List na Yes. Takvim postupkom najpre ograničavate korisnika da ne može da upiše proizvoljan tekst u listu, ali zauzvrat omogućavate okidanje događaja NotInList u koji ćete postaviti program koji dalje preuzima brigu o novom podatku.

U događaj NotInList postavite sledeći program:

Private Sub cmbLista_NotInList _
   (NewData As String, Response As Integer)
 Dim ctl As Control

 Set ctl = Me.cmbLista
 Response = acDataErrAdded
 ctl.RowSource = ctl.RowSource & ";" & NewData
End Sub

Argument Response govori Accessu kako da se ponaša kada dođe do greške. Dodavanjem vrednosti acDataErrAdded nalažemo Accessu da ne prikazuje generičku poruku o grešci. Zatim listi pridodajemo novu vrednost dodajući vrednost NewData (sadrži uneti tekst koji se ne nalazi u listi), koristeći pritom osobinu RowSource.

Nažalost, ova jednostavna procedura funkcioniše samo ako je osobina Row Source Type postavljena na Value List. Ukoliko za izvor podataka postavite tabelu ili upit (Table/Query), moraćete da upotrebite drugačiji program:

Private Sub cmbLista_NotInList _
   (NewData As String, Response As Integer)
 Dim new_data As String
 Dim conn As ADODB.Connection

 Set conn = CurrentProject.Connection
 new_data = Replace(NewData, "'", "''")
 Response = acDataErrAdded
 conn.Execute "Insert Into " & _
   "tblImenik(fldPrezime) Values('" & _
    new_data & "')"
End Sub

U ovom primeru, izvor podataka je tabela tblImenik, a polje tabele u koje će biti upisana nova vrednost je fldPrezime. Izmenite ove dve vrednosti tako da odgovaraju nazivu vaše tabele i pripadajućeg mu polja.

 

  (C) 2000-2011 Praktikum na Webu

PC 114


 
 

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.