[ tjelka @ 14.10.2003. 19:56 ] @
Koji je najbolji naćin za pretraživanje access datoteke, pomoču asp.
Naime problem se javlja kada u tablici "podaci" u polju "opis" postoji više riječi. Moj sql upit je sljedeći:
SELECT * FROM podaci WHERE (proizvodac LIKE '%" & strSearchterm & "%') or (opis LIKE '%" & strSearchterm & "%') order by proizvodac

strSearchterm je polje iz forma u koji upišem traženi pojam.

Ako je u polju upisano :

"Odlična kopija gibson gitare, crna"

ja upišem traženi pojam "Odlična kopija gibson gitare, crna" i ne pronađe ništa. Ako upišem samo slovo koje sadrži bilo koja riječ iz polja onda pronađe.

Kako da definiram sql upit da traži između više rijeći, odnosno ako upišem "Odlična kopija" da pronađe taj zapis.

Sa ovim upitom gore pronađem zapis samo ako upišem jednu riječ, ako i slovo više nikada ništa ne pronađe.
[ degojs @ 14.10.2003. 20:19 ] @
Ima vise nacina.

Posto se radi o Access-u mozes da koristis funkciju INSTR:
Code:

SELECT Table1.AutoID, Table1.Tekst
FROM Table1
WHERE INSTR(Table1.Tekst,'gibs')>0;

ce da nadje sve zapise koji u polju Tekst sadrze 'gibs', bilo gde.

Ili mozda:
.. LIKE '" & strSearchterm & "%';"

Sto znaci da upit ide ovako ... LIKE 'trazenarec%';

Pozdrav
[ dotnet @ 14.10.2003. 21:44 ] @
Pozdrav

Kada je Access u pitanju umesto '%' koristi '*', upit bi trebao da radi.
[ byTer @ 14.10.2003. 23:06 ] @
A komplikovanije je ukoliko zelis da trazi bilo koju rec iz unetog stringa. Tada moras da rastavljas na reci taj string pa da trazis za svaki!
[ tjelka @ 15.10.2003. 00:16 ] @
Hvala degojs, pomoći će.

byTer imaš li neki primjer koji si radio , ako možeš pustiti malo koda za razdvajanje stringa na rječi.

Hvala najljepša!
[ degojs @ 15.10.2003. 03:20 ] @
Pošto radiš u ASP možeš da iskoristiš Split funkciju za rastavljanje rečenice na reči.
Code:

<%
Dim s
s = "prva druga treca cetvrta"
s = Trim(s)     ' odbacujemo moguce znake " " na pocetku i kraju stringa

Dim n
n = Split(s, " ")

Dim i
For i = LBound(n) To UBound(n)
  Response.Write ( n(i) & "<br>")
Next
%>


I onda SQL ovako nekako:

SELECT rec FROM .. WHERE rec IN ('rec1','rec2','rec3'.. );