[ System alert @ 08.02.2005. 19:47 ] @
Ucitao sam bazu podataka u VB i sve lepo radi(dodavanje,brisanje..).Ali nikako ne mogu da uspem da pretrazujem bazu.Napisao sam jedan kod ali on ocigledno nije u redu.Pojavljuje mi se greska.
Kod:
Data1.Recordset.FindFirst "Dug = `160`"

Ovo bi trebalo da pretrazi polje "Dug" i da mi pronadje broj 160.

Greska:Operation is not supported for this type of object
[ Marko_L @ 08.02.2005. 20:20 ] @
Podesi da ti Recordset Type property Data kontrole bude "dynaset" umesto "table", što je verovatno slučaj kod tebe.
[ quattor @ 08.02.2005. 20:21 ] @
Ja sam malo zarđao pa još deljem DAO no mislim da ti može biti od koristi. Najpre, koji recordset koristiš - Dynaset, Table, Snapshot? FindFirst je OK kod Dynaset-a, Seek kod Table-a... Proveri help. Dalje, ukoliko recordset podržava FindFirst, proveri tip podatka, tj. da li je broj ili string. Ovo kako si napisao je za string tip podatka (stavio si br. 160 pod navodnike). Ukoliko u tabeli to nije string već broj, izbriši navodnike, npr. Data1.Recordset.FindFirst "Dug=160". Ima još fora, recimo ako je recordset rezultat upita i spojio si dve tabele, a obe imaju polja istih imena, moraš navesti i ime table - ImeTabele.ImePolja i sl. Mislim da ćeš ovim rešiti problem. No ne zaboravi - ovim se pozicioniraš na prvi slog u recordsetu koji zadovoljava dati kriterijum. Ukoliko hođeš da pretražiš bazu i da vidiš koliko i koji slogovi zadovoljavaju kriterijum - recimo "Dug>0" onda moraš da koristiš SQL, bilo nad istim recordsetom bilo da kreiraš novi.

Pozdrav.
[ Marko_L @ 08.02.2005. 20:24 ] @
Citat:
Dalje, ukoliko recordset podržava FindFirst, proveri tip podatka, tj. da li je broj ili string.

Citat:
recimo ako je recordset rezultat upita i spojio si dve tabele, a obe imaju polja istih imena, moraš navesti i ime table - ImeTabele.ImePolja i sl.

U ova dva slučaja, dobio bi drugačije poruke o grešci.
[ System alert @ 08.02.2005. 21:36 ] @
Hvala.Nadam se da ce mi ovo biti od koristi.
[ System alert @ 08.02.2005. 21:46 ] @
Sad sam probao i radi.Samo sam umesto Table stavio Dynaset.Hvala vam obojici
[ System alert @ 08.02.2005. 21:48 ] @
Sad sam probao i radi.Samo sam umesto Table stavio Dynaset.Hvala vam obojici
[ System alert @ 10.02.2005. 00:17 ] @
Opet mi treba pomoc.Kako da pretrazujem bazu a da reci za pretrazivanje upisujem u TextBox.Probao sam nekoliko puta ali nesto nije u redu.Jel moze neko da mi napise primer?
[ mladenovicz @ 10.02.2005. 09:19 ] @
Postuj kod koji nije u redu
[ System alert @ 10.02.2005. 23:16 ] @
Skinuo sam neki primer pa sam iz njega izvukao kod i sad lepo radi.Tako da sam resio problem
[ System alert @ 12.02.2005. 00:15 ] @
Bazu podataka pretrazujem uz pomoc ovog koda:
Data1.RecordSource = "Select * from Igre where NazivIgre = '" & txtPretraga.Text & "'"
Medjutim javlja se jedan problem.Kada pronadjem podatak ili ga ne pronadjem uopste,posle toga ne mogu da lista bazu podataka.
Jel zna neko neki drugi nacin za pretragu(naravno,da zeljeni kriterijum za pretragu upisujem u TextBox).
[ Marko_L @ 12.02.2005. 15:45 ] @
To što si niaveo nije pretraga već upit koji vraća određeni broj slogova, u tvom slučaju verovatno samo jedan, jer je verovatno svaka igra upisana samo jednom.Pretragu možeš vršiti sa FindFirst, FindNext, FindLast ili FindPrevious, što bi u tvom slučaju izgledalo ovako:
Code:
Data1.RecordSet.FindFirst "NazivIgre = '" & txtPretraga.Text & "'"
[ quattor @ 12.02.2005. 20:25 ] @
Onog trenutka kad na upit nakačiš WHERE to postaje i pretraga. Pitanje je samo da li ti je to cilj ili nije.

Da ne dužimo više - Postavi sledeći upit - IF Text box za pretragu <>"" Then koristi SELECT * FROM Igre WHERE ImeIgre bla bla bla (BTW predlažem da koristiš Like i *) Else koristi SELECT * FROM Igre.

Na ovaj način ćeš imati izlistane (ukoliko koristiš neku od DataList kontrola, DBGrid i sl.) rezultate pretrage, a ako ne uneseš ništa i pritisneš Pretragu, izlistaš ponovo sve igre koje postoje u bazi.

FindFirst, Find..., Seek se samo pozicioniraju na slog koji zadovoljava kriterijum, ne dobijaš podatak koliko njih ga zadovoljva. No, neki put ti baš ovo i treba, neki put je to SELECT ... WHERE ... Izbor je tvoj.

Pozdrav.
[ System alert @ 13.02.2005. 00:06 ] @
Hvala vam obojici.