03. april 2005 - 09:09Der er
4 kommentarer og 1 løsning
Case Sensivity i Access
Hej Eksperter,
jeg sidder og bøvler med et irriterende problem med et SQL-statement. Normalt er Access ikke case sensitiv, men nu er jeg ved at lave en hjemmeside, hvor det lader til, at den alligevel er det - og jeg kan ikke finde ud af at omgå det.
Det er en Access 2000-database, der er åbnet i Access 2003, men i Access 2000-format (hvis det overhovedet skulle have nogen betydning!)
Eksempel: Hvis jeg søger med
SELECT ID, cOverskrift, cText FROM tblPages WHERE cText LIKE '%havelåge%'
finder den ikke de samme records, som hvis jeg søger med
SELECT ID, cOverskrift, cText FROM tblPages WHERE cText LIKE '%Havelåge%'
Jeg har forsøgt mig med UCase, men Access er temmelig indifferent! Hvis jeg f.eks. bruger
SELECT ID, cOverskrift, cText FROM tblPages WHERE Ucase(cText) LIKE Ucase('%Havelåge%')
så finder den det, der svarer til 'Havelåge' - altså den samme case sensitive søgning, og
SELECT ID, cOverskrift, cText FROM tblPages WHERE Ucase(cText) LIKE '%HAVELÅGE%')
finder slet ingenting.
Jeg har for god ordens skyld prøvet at hente cText ud som uppercase, hvilket virkede fint, så jeg må antage, at Access reagerer korrekt på Ucase:
SELECT ID, cOverskrift, cText, UCase([cText]) as UpperCase FROM tblPages
Er det mig, der skulle have sovet en time længere i dag, eller er det Access/SQL, der er besværlig?
Og som et led i min fejlfinding bør måske nævnes, at ASP og Access ikke får det samme ud af det samme SQL-statement...
Hvis jeg i min kode laver et SQL-statement og printer det sammen med resultatet af søgningen, så får jeg via ASP ét resultat, men hvis jeg kopierer det over i Access og prøver den samme forespørgsel, er resultatet 0 forekomster.
Og det er såmænd et meget simpelt statement: SELECT ID, cTitel, cTekst, cPeriode FROM tblPages WHERE (cTitel LIKE '%tunge%')
Er det mig eller Access, der er fuldstændig galt på den?!? - hvis jeg søger manuelt med Find-funktionen i Access, finder den det fint...
Jeg er sikker på, at du finder svaret mellem Access 2000 og 2003! Prøv at lave dit statement i samme database som du har lagret tabellen i. Hvis dette er 2000, og det går godt, så prøv i "ren" 2003. Hvis det også går godt, så opgradér alt til 2003 og gå tidligt i seng i morgen.
Jeg havde selv fundet frem til den samme løsning, men havde ikke lukket spørgsmålet efter mig, så du skal have tak for hjælpen - og får pointene for ulejligheden! :-)
Synes godt om
Ny brugerNybegynder
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.