[ zslavko @ 14.02.2008. 18:26 ] @
Dali i kako mogu vršiti pretragu po bilo kom delu reči u access bazi?Znači kada kucam neki deo reči nekog proizvoda da mi automacki nudi taj proizvod. Unapred hvala. |
[ zslavko @ 14.02.2008. 18:26 ] @
[ Getsbi @ 14.02.2008. 18:28 ] @
Promašio si forum. Inače preporučujem korišćenje Combo Box-a.
Molio bih moderatore da prebace ovo u Access forum. [ SLOJ.1973 @ 14.02.2008. 21:46 ] @
Evo ti primer.Forma artikli ti je primer za Combo box pretragu, a Form1 ti je primer forme za pretragu preko listboxa.Nadam se da ćeš se snaći.Pozdrav
[ sdds @ 15.02.2008. 09:46 ] @
Kako u ovom primeru namestiti da dok se kuca naziv artikla u polju "pretraga" , lista da se istovremeno menja, da ne moram da pritisnem ENTER da bi on odradio requery
[ domaci_a_nas @ 15.02.2008. 11:46 ] @
Koristi On Change event i Text1.text dok kucaš
[ sdds @ 15.02.2008. 12:05 ] @
Nisam te bas razumeo text1.text????
[ zslavko @ 15.02.2008. 12:06 ] @
Iyvinjavam se zbog pogrešne adrese za ovu temu ali još samo nešto.
Imam 800 artikala i nekad mi je lakše pronaći artikal putem combo boxa a nekad bi mi bilo lakše putem list boxa. Pitanje, dali je moguće koristiti i jedno i drugo na formi i kako? Puno hvala [ sdds @ 15.02.2008. 18:35 ] @
Uspeo sam da namestim da istovremeno odradi requery na listboxu ( Like "*" & [Forms]![Form1]![pretraga].Text & "*" ) pomocu on_change event-a na polju "pretraga". Jedino sto sada kad ukucam npr jedno slovo za pretragu, ne mogu da izlistam sve artikle koji pocinju na to slovo da budu slozeni prvo ti artikli (trebalo bi i po azbucnom redu) kao sto je kod obicnog comboboxa. Kako to da se sredi???
Znaci treba da prikazuje rezultate u listboxu prvo one koje zadovoljavaju kriterijum na pocetku naziva artikla. [ domaci_a_nas @ 15.02.2008. 19:13 ] @
Ja bih koristio Union query, nešto kao:
Ovo je validno samo dok Text1 (ili kako god ti se zove kontrola kojom filtriras listbox) ima focus Select Proizvod From Proizvodi Where Proizvod Like Text1.Text & "*", 1 as SortOrder Union Select Proizvod From Proizvodi Where Proizvod Like "*" & Text1.Text & "*", 2 as SortOrder Order By SortOrder [ zslavko @ 16.02.2008. 00:18 ] @
Pošto sam početnik može li malo detaljnije,pošto nemogu da nađem On Change event.
Ustvari preciznije gde i šta da upišem da se istovremeno menja lista u ovom primeru. [ domaci_a_nas @ 16.02.2008. 10:15 ] @
Odeš u design forme, zatim u Visual Basic Editor za tu formu, iz liste objekata gore levo izabereš naziv textboxa, iz liste događaja (event) izaberes Change i tu ukucaš ovaj kod iz prošlog posta. Ne mogu da ti dam detaljniji odgovor od onoga pošto je pitanje jednostavno. Većina stvari se može rešiti sa malo koda ako se model podataka dobro postavi.
Ako si već početnik, pokušaj da nađeš neku osnovnu literaturu, takođe možeš koristiti help i object browser (dobijaš ga kad u Visual Basic Editoru pritisneš F2) i videćeš šta se za koji tip objekata može koristiti. [ zslavko @ 16.02.2008. 15:29 ] @
Private Sub pretraga_Change()
Like "*" & [Forms]![Form1]![pretraga].Text & "*" End Sub ja ovo uradim ali ništa od toga, ako može još malo pomoći [ Getsbi @ 16.02.2008. 16:09 ] @
@ zslavko
Najbolje da zakačiš svoj fajl (u sadašnjem obliku) pa da ti kolega domaci_a_nas to popravi. [ zslavko @ 16.02.2008. 16:23 ] @
Može namestiti na gore već zakačenom fajlu.
[ sdds @ 16.02.2008. 18:01 ] @
Evo
[ domaci_a_nas @ 16.02.2008. 18:31 ] @
Moram da se izvinim zbog svog prošlog posta, bio sam u sred posla i malo nestrpljivo odreagovao, a kad sam počeo da ga editujem otišao na drugu stranu i ostade zapis o mojoj prekoj naravi
![]() Evo zSlavko primer, bio si na dobrom putu, samo što dok pišeš kod ti moraš da navedeš na koji se objekat taj kod odnosi, znači na početku ti fali Lista.RowSource = Select ... i tako dalje. Znači kompletan kod izgleda doslovce ovako za ovaj primer Code: Private Sub pretraga_Change() LISTA.RowSource = "Select artikli.*, 1 As SortOrder From Artikli Where nazivartikla Like '" & pretraga.Text & _ "*' Union Select artikli.*, 2 As SortOrder From Artikli Where nazivartikla Like '*" & pretraga.Text & _ "*' And nazivartikla not like '" & pretraga.Text & "*' Union Select artikli.*, 3 As SortOrder " & _ "From Artikli Where NazivArtikla not like '*" & pretraga.Text & "*' Order By SortOrder, nazivartikla" End Sub Ostaje ti i dalje da zameniš naziv tabele koju pretražuješ i naziv kontrola na formi i to je to. Ovaj kod je malo komplikovaniji nego što sam očekivao, ali eto da bi sprečio duplikaciju malo sam modifikovao kod za drugi korak i izbacio one artikle koji su se našli već u prvom koraku. Ovo sam napisao čisto da ne bude da nisam u pravu i da može tako ![]() Code: Private Sub pretraga_Change() Dim SortStr As String SortStr = "IIf(InStr(1, [NazivArtikla], '" & pretraga.Text & "')" LISTA.RowSource = "SELECT artikli.šifraartikla, artikli.nazivartikla, " & SortStr & _ " = 1, 1, " & SortStr & " > 1, 2, 3)) AS SortOrder FROM artikli ORDER BY " & SortStr & _ " = 1, 1, " & SortStr & " > 1, 2, 3)), artikli.nazivartikla;" End Sub Sa funkcijom Instr smo odredili početnu poziciju reči u polju pretraga, ako je ono 1 sa SortOrder ga prikazujemo na vrhu, ako se nalazi u reči, samo reč ne počinje tim stringom onda mu se dodeljuje SortOrder 2 i finalno, ostao je slučaj kada reč nije nađena (Instr daje vrednost 0) i to prikazujemo na kraju. Pozdrav svima, sad ako ga ne ubodeš naljutiću se ![]() Eto ja dok sam pisao poruku, isprobavao, preteče me kolega sdds, probaj da kombinacijom ova dva rešenja nađeš pravo, s tim što njegovo rešenje i dalje sortira po ID i ne postavlja na vrh one podatke koji počinju sa pojmom za pretragu. Uvek možeš da postaviš u kod Debug.Print Lista.RowSource i da dobijeni rezultat pastuješ u query builder, a rezultat ćeš videti ako pritisneš ALT + G u Visual basic editoru. [ zslavko @ 16.02.2008. 19:21 ] @
Veliko hvala i "sdds" i "domaci_a_nas".Radi sve ekstra.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|