HEJ!
Jag har en sökfunktion på vanligt sätt till Access:
SELECT * FROM report WHERE content LIKE '%" & word & "%'
Söker jag på 'JohnNy' hittas alla texter med 'johnny' oavsett stavningssätt.
Hur får man LIKE att matcha exakt?
4 svar · 329 visningar · startad av J.N.
HEJ!
Jag har en sökfunktion på vanligt sätt till Access:
SELECT * FROM report WHERE content LIKE '%" & word & "%'
Söker jag på 'JohnNy' hittas alla texter med 'johnny' oavsett stavningssätt.
Hur får man LIKE att matcha exakt?
Tror nog inte att det går att få like att ändra beteende.
SELECT * FROM report WHERE instr(content ,'" & word & "',1)
kanske. Om inte intsr fungerar direkt i SQL-satsen så är ett alternativ att göa en extra jämförelse i ditt skript
HEJ!
Det fungerade inte, som du trodde.
Att ändra LIKE:s beteende var jag inte direkt ute efter, utan att få reda på hur man gör istället.
Man kan ju tycka det är konstigt att LIKE inte skiljer på tecken som default.
Testade direkt i Access, och det fungerar likadant där.
Att skriva
SQL = "SELECT * FROM report WHERE content='%" & word & "%'"
är inget alternativ, eftersom texterna innehåller mer än ett ord, detta är ju helt och endast exakt.
Vi går över till ursprungsproblemet:
Hur markerar jag det sökta ordet oavsett stavning?
Replace(Rs("content"),word,"<b>"&word&"</b>")
Sätter jag LCase(RS("content")) skrivs ju texten ut i endast gemener, och det vill jag ju inte!
Replace(Rs("content"),word,"<b>"&word&"</b>",,1)
HEJ!
Om man läser dokumentationen för Replace, http://www.devguru.com/Technologies/vbscript/quickref/replace.html skulle det fungera, men det gör det inte.
Det som markeras är det exakta, men ordet hittas, dvs posten visas?
Varför det inte gör det kan jag inte förstå!
Jag testade med DevGuru-exemplet, 'BluE' etc, och då var det inga problem.
Replace(Left(Rs("content"),500),word,"<b>"&word&"</b>,1,10,1")
OBS! 10 måste stå (antal Replace) annars fungerar det inte.