Ole Nilsson skrev:
> Jeg har en lille søgefunktion. Jeg lurer på hvordan jeg får
> "isoleret" hvert ord i en søgetekst.
Kig på funktionen Split. Den deler en streng op i et array.
> Hvis brugeren f.eks. skriver "ride udstyr",
Skal brugeren have ekstra dansktimer (undskyld, undskyld, men det
hedder bare "rideudstyr").
> så kunne jeg godt tænke med at skille disse ord ud
> i to variabler og gennemsøge databasen efter links der passer til
> HVER at orderne og ikke KUN på begge orderne.
Der er flere muligheder.
Du kan få databasen til at søge på begge ord (placeret vilkårligt):
Søgeudtrykket "foo bar" bliver så til
"WHERE feltnavn LIKE '%foo%' AND feltnavn LIKE '%bar%'
Hvis et match med blot det ene ord er nok kan du skrive:
"WHERE feltnavn LIKE '%foo%' OR feltnavn LIKE '%bar%'
Du kan lave sqlsætningen ved at gennemløbe arrayet fra split. Her
er et skitseforslag:
Dim sqlWhere
sqlWhere = ""
Dim soegeord, ord
soegeOrd = Split(soegeUdtryk, " ")
For each ord In soegeOrd
sqlWHERE = sqlWhere & " OR feltnavn LIKE '%" & ord & "%' "
Next
If sqlWhere <> "" Then
sqlWhere = " WHERE " & Mid(sqlWhere, 4)
End If
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html