• 7 odgovora
  • 2.501 pregleda
instant search podataka u formi 13.05.2011. u 11:27 · pre 188 meseci #1
Pokušavam da napravim nešto što bi se ponašalo kao instant search ali mi baš i ne ide.
Naime, zamislio sam da imam jednostavnu formu sa tekst boxom za pretragu i subform-om ispod u obliku tabele(datashet) gdje će iz queryja da se filtriraju podaci kako ja kucam u tekst box.
U query-ju je za polja nad kojim vršim pratragu postavljen sledeći uslov: Like "*"&forms!frmLivePretraga.Text1&"*", i to definitivno radi ali šta je problem: ako na onChange event text boxa stavim me.subformTabela.requery ne izvrši mi osvježavanje podataka u tabeli a ako stavim za kompletnu formu me.requery onda se događa glupava stvar: text box dobije fokus nakon svakog ukucanog slova tako da kad otkucam drugi karakter on "pregazi" prvi i sve tako.
Neka ideja bi mi dobro došla.
Potpis
piti il' ne piti pitanje je sad
Re: instant search podataka u formi 13.05.2011. u 11:46 · pre 188 meseci #2
Napravi formu sa podacima baziranu na tom upitu.

Sad napravi novu formu i stavi ovu prvu kao podformu.

Stavi na formu jedan nevezan text box. U njegovom OnChange događaju piši ovako:

Dim strSQL As String
strSQL = "SELECT * FROM tblTabela WHERE txtPolje Like '*" & txtPolje.Text & "*'"
sfrmForma.Form.RecordSource = strSQL

Tako nekako. SQL iskaz prekopiraj iz upita i izbaci onaj deo gde se podaci filtiriraju, a tu stavi da se filtira prema nevezanom polju. Bitno je ono txtPolje.Text, odnosno .Text. Dok god je kursor u polju i neko kuca nešto, to ne možeš da čitaš drugačije osim ako ne dodaš .Text. Dakle, praviš dinamički SQL po svakom pritisnutom tasteru.
Potpis
Pozdrav,
Branislav
Re: instant search podataka u formi 13.05.2011. u 12:53 · pre 188 meseci #3
Nije mi uspjelo. Još. mada je ideja dobra, mislim da negdje imam problem sa ovim sql iskazom u VBA jer oni znakovi navoda i apostrofi u stringu me malo zezaju, pošto je iskaz malo komplikovaniji, uključuje i one Iner Join-e, treba mi vremena da to malo skontam.
Ako uspijem javim.
Hvala banem u svakom slučaju.
Potpis
piti il' ne piti pitanje je sad
Re: instant search podataka u formi 19.05.2011. u 21:31 · pre 187 meseci #5
fino funkcioniše, a meni treba nešto slično:
kada otkucam neki podatak u polje pretraga kako da me odvede na new record ako ne postoji u listi.
konkretno baza se zasniva na matičnim brojevima, pa ako tog broja nema da mi otvori formu spremnu za unos novog podatka (new record)
nadam se da razumijete šta hoću.
hvala
Re: instant search podataka u formi 19.05.2011. u 21:52 · pre 187 meseci #6
Zato služi ComboBox i događaj NotInList. Inače ima da se oteli kako će sporo da radi ako ideš to da programiraš. Ako ne znaš šta da pišeš u NotInList, ovako npr.

Code:
Response = 0
Me.fldNazivComboPolja.Undo
If MsgBox("JMBG ne postoji u bazi. Dodavanje novog?", vbYesNo+vbQuestion, "Novi JMBG") = vbYes Then
   DoCmd.GoToRecord , , acNewRec
   Me.fldJMBG = NewData
End If


ComboBox postaviš tako da "gleda" u polje JMBG. Tako nekako je najjednostavnije.
Potpis
Pozdrav,
Branislav
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme