[ drla stroga @ 13.05.2011. 11:27 ] @
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.
[ banem @ 13.05.2011. 11:46 ] @
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.
[ drla stroga @ 13.05.2011. 12:53 ] @
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.
[ Getsbi @ 13.05.2011. 18:11 ] @
Jel ovo možda pomaže?
[ skahu @ 19.05.2011. 21:31 ] @
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
[ banem @ 19.05.2011. 21:52 ] @
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.
[ skahu @ 20.05.2011. 21:17 ] @
hvala na odgovoru, probaću

[ skahu @ 22.05.2011. 18:58 ] @
funkcioniše, thanks,