Ciao,
vorrei realizzare un motore di ricerca interno e ho cercato tra i post vecchi trovando questo esempio funzionante:
http://www.oscarjsweb.com/topic.asp?topid=27

però non volevo fare copia incolla ma volevo capire come funziona la ricerca di più parole inserite contemporaneamente nel campo di ricerca per poi adattare un mio script.

il nocciolo è questo:

set conn = server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&_
server.mappath("/cartella/database.mdb")

sql = "select * from tabella_ricerca where"

ArrSearch = Split(search)
x = 0
for each Word In ArrSearch

If Not x = UBound(ArrSearch) Then
sql = sql & " Keywords like '%" & word & "%' and"
Else
sql = sql & " Keywords like '%" & word & "%'"
End If

x = x + 1
Next

ma nel mio script:


.......

Dim rsa, cna, sqla
Set rsa = Server.CreateObject("ADODB.Recordset")
Set cna = Server.CreateObject("ADODB.Connection")
cna.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database/cnasp.mdb")
Set rsa.ActiveConnection = cna
rsa.CursorType = adOpenKeyset
rsa.LockType = adLockOptimistic
sqla = "select * from comunicatistampa where"
ArrSearch = Split(search)

for each Word In ArrSearch
x=0
If Not x = UBound(ArrSearch) Then
sqla = sqla & " testo like '%" & word & "%' and"
Else
sqla = sqla & " testo like '%" & word & "%'"
End If
x = x + 1
Next





rsa.Open sqla, cna

rsa_numRows = 0

ecc
......

nel caso di ricerche con più parole mi costruisce correttamente la nuova sql ma in fondo rimane in and che genera ovviamente un errore:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'testo like '%costo%' and testo like '%acciaio%' and'.

non capisco come ovviare.

Grazie a chi mi darà una dritta