Avatar billede krogstrup Nybegynder
17. november 2004 - 23:24 Der er 18 kommentarer og
1 løsning

Hvordan kan man søge efter tegnet % i en database

Tjah - ganske enkelt:

Når en bruger indtaster tegnet % i søgefeltet ønsker jeg at min søgescript skal finde sider der indeholder tegnet % frem for at tolke % tegnet som en "joker" der blot hiver alt ned fra hylderne...

Skal % tegnet erstattes med et ascii tegn eller....?
Avatar billede michael_stim Ekspert
17. november 2004 - 23:34 #1
I alm. SQL bruger man $ foran, men ved ikke om det fungerer på Access (hvis du bruger den).
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:37 #2
jeg bruger access og tilsyneladende virker det ikke her med $%
Avatar billede michael_stim Ekspert
17. november 2004 - 23:44 #4
Du skal have escape med.
SELECT FROM tabel WHERE id LIKE '#%' ESCAPE '#'
Og så kan det väre ligemeget hvilket tegn du bruger som escape. (Det stod der også i min bog, var bare lidt for hurtig)
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:48 #5
hmmm - gad vide om det kan lade sig gøre mod en access base ?!?

Jeg får fejl på denne SQL:

arrPagesResults = createArray("SELECT pages.pages_id, pages.pages_title, pages.pages_url_pagename, pages.pages_users, pages.pages_usergroups FROM pages INNER JOIN menus ON pages.pages_menuid = menus.menus_id WHERE (menus.menus_siteid = " & intSiteId & ") and (pages.pages_active = True) and (pages.pages_date_start <= " & intNowStamp & ") and (pages.pages_date_end >= " & intNowStamp & ") and ((pages.pages_title LIKE '%" & keywords & "%' ESCAPE '#') or (pages.pages_content LIKE '%" & keywords & "%' ESCAPE '#')) ORDER BY pages.pages_title",dsnProCms)
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:49 #6
hvis jeg fjerner de 2 ESCAPE dele kører SQL´en fint...
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:52 #7
På MSN skriver de:

"Note: You can define an escape character only in the SQL pane."

Det lugter vist lidt af at det ikke kan lade sig gøre mod en Access database ?!?
Avatar billede michael_stim Ekspert
17. november 2004 - 23:53 #8
Men du bruger jo ikke escapetegnet nogen steder.
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:55 #9
jo variablen keywords indeholder følgene:

#%
Avatar billede krogstrup Nybegynder
17. november 2004 - 23:56 #10
brugeren indtaster % i søgefeltet og jeg replacer herefter % med #%
Avatar billede michael_stim Ekspert
17. november 2004 - 23:57 #11
ok
Avatar billede michael_stim Ekspert
18. november 2004 - 00:07 #12
Et vildt skud i tågen:
Hvad sker hvis du bytter # ud med % i din replace, og fjerner escape. Så der kommer to % efter hinanden.
Avatar billede krogstrup Nybegynder
18. november 2004 - 00:13 #13
virker desværre heller ikke...
Avatar billede michael_stim Ekspert
18. november 2004 - 00:28 #14
Tror de skal ind i en []
Avatar billede michael_stim Ekspert
18. november 2004 - 08:43 #15
Hvad sker der hvis du sätter hele stringen i [], som når man bruger reserverede ord.
LIKE '%[" & keywords & "]%'
Avatar billede hossein Nybegynder
18. november 2004 - 10:19 #16
nu har jeg ikke adgang på serveren men prøvede på selve access med:

Like "*%*"
prøv med * rundt om i steded for %, dette finder felter som indeholder %
Avatar billede krogstrup Nybegynder
18. november 2004 - 10:20 #17
michael_stim >>>

bingo - så var en der :-)

men det er ikke hele stringen der skal i [] - det er kun % tegnet.

Denne her funktion klarer jobbet...

function fixSearchString(strKeywords)
    if strKeywords <> "" then fixSearchString = replace(strKeywords,"%","[%]")
end function

Mange tak for din ihærdige indsats :-)

Smider du et svar ?
Avatar billede michael_stim Ekspert
18. november 2004 - 10:24 #18
Puha, det var en hård födsel ;o)
Avatar billede krogstrup Nybegynder
18. november 2004 - 10:27 #19
Endnu en gang: mange tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester