Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretraživanje pomoću combo box-a

[es] :: Access :: Pretraživanje pomoću combo box-a

[ Pregleda: 3690 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dragan Tomić
Mate Risov
Bosna i Hercegovina

Član broj: 86135
Poruke: 66
*.tel.net.ba.



Profil

icon Pretraživanje pomoću combo box-a26.02.2006. u 00:47 - pre 220 meseci
Poštovanje svima,

Ako u nekoj formi imalo subformu na kojoj se nalazi combo box preko kojeg možemo pretraživati jedan element iz tablice (npr. ime) da li je ikako moguće to pretraživanje proširiti i na recimo prezime?

Tablica ima sljedeće elemente: ime, prezime, godina rodjenja, mjesto rodjenja, itd...

Primjer: U tablici su sljedeći zapisi:

- Dejan - Matić - 1975
- Nenad - Jokić - 1976
- Dragan - Trolić - 1980

Znači kada upišem u polje comba recimo dejan da mi odmah ponudi padajući meni s tim imenom ili kada upišem matić da mi ponovo ponudi istu stvar.

Ne znam da li ovo uopće može pa sam odlučio zamoliti nekoga od vas da mi proba odgovoriti na ovo pitanje.

Hvala

Mate
 
Odgovor na temu

nidisa

Član broj: 78939
Poruke: 88
*.halliburton.com.



Profil

icon Re: Pretraživanje pomoću combo box-a26.02.2006. u 12:19 - pre 220 meseci
ne znam za combo box, ali znam sigurno da moze sa list boxom:

- postavis 3-4 radio button-a u jedan frame, (u mom slucaju to je frmSearch)
- dodijelis vrijednosti buttonima 0, 1, 2 zavisno od toga po kojoj koloni u list boxu ces da trazis
- prva kolona u list boxu ima vrijednost nula
- onda postavis jedan text box koji ce biti namjesten na text
- onda mozes da postavis na "after Update" sljedece:

Dim rstSearch As DAO.Recordset
Dim cSearch As String
Dim i As Integer

On Error GoTo EditError
cSearch = Me.txtSearch.Text
If "" & cSearch = "" Then Exit Sub
With Me.lstDrivers
For i = 0 To .ItemsSelected.Count - 1
.Selected(.ItemsSelected(0)) = False
Next i
For i = 0 To .ListCount
If InStr(1, .Column(Me.frmSearch.Value, i), cSearch) > 0 Then
.Selected(i) = True
Me.txtSearch.SelStart = Len(cSearch)
Set rstSearch = Me.RecordsetClone
rstSearch.FindFirst "Name = " & .ItemData(.ItemsSelected(0)) & ""
If Not rstSearch.EOF Then
Me.Bookmark = rstSearch.Bookmark
End If
Me.txtSearch.SetFocus
Me.txtSearch.SelStart = Len(cSearch)
Set rstSearch = Nothing
Exit For
End If
Next i
End With
Me.txtSearch.Value = cSearch
Me.txtSearch.SelStart = Len(cSearch)
Exit Sub


Kod mene radi....

[Ovu poruku je menjao nidisa dana 26.02.2006. u 13:22 GMT+1]
----There is no place like 127.0.0.1-----
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Re: Pretraživanje pomoću combo box-a26.02.2006. u 12:27 - pre 220 meseci
Vrlo teško. Vjerovatno bi se moglo ali bi trebalo napisati puno kooda u VBA. Znači kod unosa tog imena da ti provjeri u combu dali postoji ta vrijednost pod ime, pa ako postoji da ti mijenja record source.. Uglavnom morao bi koodom objasniti sve moguće iznimke i dobro to testirati al vjeruj mi na kraju nebi bio zadovoljan rješenjem problema.
Zašto jednostavno ne staviš dva comba jedan iza drugog sa istim control source-om, pa da ti prvi pretražuje sistemom Prezime-Ime-Godina a drugi sistemom Ime-Prezime-Godina? Pa nek onaj ko pretražuje odabere onaj koji mu paše. Ovo ti je najbezbolnije i najbolje rješenje.
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Re: Pretraživanje pomoću combo box-a26.02.2006. u 12:33 - pre 220 meseci
Da, zaboravio sam, postavljanje radio button-a na subformu ti nebi nikako bilo dobro rješenje, najviše zbog ergonomskih razloga, ali za običnu formu bi se tim sistemom nešto dalo napraviti i s combom.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Pretraživanje pomoću combo box-a27.02.2006. u 14:03 - pre 220 meseci
Mozda je potpuna prmena pristupa bolje resenje. Sta je tvoj zadatak? Jedno od ova dva:

1) omoguciti korisniku pretrazivanje table/rekordseta na sto fleksibilniji nacin

ili

2) napraviti kombob box koji omogucuje pretrazivanje po prezimenu, pa zatim po imenu itd

Meni se cini da je ono pod 1) tvoj zadatak, a da si ti bez mnogo razmisljanja usvojio 2) kao moguce resenje. Zsto? Pa zato sto si to negde video, a ima i u knjigama. Doduse ne toliko kompleksno kao sto tebi treba, uglavnom pretraga po jednom parametru, ali hej, zar mi nismo pametan narod pa cemo to lako prosiriti na vise. tacno je da smo pametan narod, mi smo Teslu izrodili, ali samo jednog za poalednjih 2000 godina. Sta je bilo pre toga, ne znam, mozd aje bio jos neki, mada simnjam.

Svrha pretrazivanja je da korisnik locira neki podatak u bazi, da bi kasnije pogledao vise detalja o tom podatku. Za sada je najefikasniji nacin za lociranje bilo cega u bilo kom datasetu, da se set koji se pretrazuje prikaze korisniku u datasheet formatu (moze i contin. form). Onda korisniku stoje na raspolaganju Accessovi ugradjeni metodi za filtriranje (Right Click na neko polje, bilo koje, pa onda Filter For, pa upises sta god hoces, mogu i wildcard karakteri, ili Filter by Selction, gde selection moze da bude celo polje, ili deo teksta u polju) Naravno, pomazu i ugradjeni metodi za sortitranje. Ako ih sortiras po kljucu Prezime,Ime onda najobicnije skrolovanje po datasheetu dovodi cesto do resenja. I sta kad ga nadjes u datasheetu? Dupli klik na neko od polja otvara formu/report ili sta god hoces, gde se vide detalji o izabranom rekordu. Pogledaj top teme Kafic, Magacin i Maloprodaja. Opisani princip se uporno primenjuje i niko se do sada nije bunio niti trazio Combo box.

Gde ja radim, ova se logika primanjuje i na web aplikacije i pogodi sta se dogadja - korisnici su monogo zadovoljniji jer imaju mnogo vecu fleksibilnost nego ranije. I programeri su mnogo zadovoljniji, jer moraju mnogo manje da rade da bi postigli isti rezultat. Testeri su zadovoljniji, jer se javlja daleko manje gresaka nego pre. Sve u svemu, 'nobody works harder, just smarter'

Jos jednom, tvoj zadatak je da omogucis korisniku fleksibilno pretrazivanje, a ne da pravis kombo boxove , liste, forme ili bilo sta drugo.
 
Odgovor na temu

Dragan Tomić
Mate Risov
Bosna i Hercegovina

Član broj: 86135
Poruke: 66
*.tel.net.ba.



Profil

icon Re: Pretraživanje pomoću combo box-a27.02.2006. u 19:39 - pre 220 meseci
Pozdrav Zidar, vidim da si tata-mata za ovakve stvari i da radiš sve što poželiš u accessu.

Neka drago mi je da ima naših ljudi te veličine.

Radim nekakav program u accesu pa mi treba pretraživanje po dva parametra (dvije šifre - po broju i po imenu) pa me zanima dal je to moguće! Recimo u combo, list box ili bilo što drugo što bi trebao koristiti vezuje se tekst box u kojem bi trebao pisati taj rezultat.

Npr. ako u combu upišem 2 da mi se u nastavku text box-a pojavi recimo Predrag ili ako ukucam u isti combo umjeto 2 riječ Predrag da se ponovu u nastavku text boxa pojavi Predrag itd.

Možda bi se ovo moglo rješiti da postavim dva comba tako da u jednom se može izabrati šifra po broju a u drugom šifra po tekstu a da isti rezultat se dobije u text boxu.

I još jedna stvar. Ako bi htio podinuti primjer baze na forum kako to napraviti pošto nisam nigdje vidio dugme attach?

Hvala na svemu,

Dragan Tomić
Mate
 
Odgovor na temu

Kiro
Akir Žalić
BiH

Član broj: 19085
Poruke: 114
*.dlp213.bih.net.ba.

Sajt: www.icentar.ba


Profil

icon Re: Pretraživanje pomoću combo box-a27.02.2006. u 19:47 - pre 220 meseci
Na kraju tvog posta dole desno imaš opcije
Upload uz poruku |Izmena/Brisanje | Odgovor na temu

Klik na Upload pa izaberi svoju bazu mora biti manja od 200 kb čini mise i poželjno ja da je zipovana
Kiro
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Pretraživanje pomoću combo box-a27.02.2006. u 20:16 - pre 220 meseci
Za Dragan Tomic:
Pitanje:
Citat:
Radim nekakav program u accesu pa mi treba pretraživanje po dva parametra (dvije šifre - po broju i po imenu) pa me zanima dal je to moguće! Recimo u combo, list box ili bilo što drugo što bi trebao koristiti vezuje se tekst box u kojem bi trebao pisati taj rezultat.

Odgovor:
Citat:
Možda bi se ovo moglo rješiti da postavim dva comba tako da u jednom se može izabrati šifra po broju a u drugom šifra po tekstu a da isti rezultat se dobije u text boxu.

Dobra ti je zamisao. Napravi dva kombo boxa, unbound, imena cboIme i cboSifra.

Dalje:
- Stavi isti row source za oba, na primer,
SELECT Sifra, IME FROM tblNekaTabela
- Stavi ColumnCount=2 za oba combo boxa
- Stavi Bound Column=1 za oba kombob boxa
- Stavi za cboSifra Column widths: 1,0
- stavi za cboIme Column Widths: 0, 1

Na AfterUpdate za cboSifra stavi izmedju ostalog i ovo: me!cboIme=me!cboSifra

Na After Update za cboIme stavi: me!cboSifra=me!cboIme

Imaj posebnu funkciju koja radi nesto na osnovu izabrane opcije (otvara report, formu itd). Na After Update za oba cbo stavi poziv te funkcije.

Ako ti treba pretrazivanje po jos necem trecem, ozbiljno razmisli o onome sta sam ti rekao u prethodnom postu.

:-)
 
Odgovor na temu

[es] :: Access :: Pretraživanje pomoću combo box-a

[ Pregleda: 3690 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.