Avatar billede riishoj Nybegynder
20. december 2007 - 14:33 Der er 6 kommentarer og
1 løsning

Forespørgsel som skelner mellem store og små bogstaver

Jeg har et script som henter nogle bogstavværdier fra en Access-database. Desværre findes de samme bogstaver både som store og små, og de repræsenterer forskellige værdier. Da Access ikke er case sensitive får jeg altid udskrevet værdien for de små bogstaver.
Hvordan kan jeg få min strSQL til at tage højede for store og små bogstaver? Eller skal der laves en eller anden funktion som løser problemet?
Avatar billede softspot Forsker
20. december 2007 - 15:55 #1
Hvis du er hård, kan du måske få noget ud af denne artikel (fra MSDN): http://support.microsoft.com/kb/209674.

Du kan tilsyneladende benytte StrComp eller Asc til at afgøre om et felt indeholder et stort eller lille bogstav. Prøv evt. at følge referencerne i bunden af artiklen for at finde ud af hvordan de to funktioner fungerer.
Avatar billede riishoj Nybegynder
20. december 2007 - 17:15 #2
Det kunne se ud til, at det måske er løsningen, men jeg kan ikke overskue at skrive det ind i min SQL streng som er temmelig lang. Kan du?

strSQL = "SELECT tblTurbData.*, StatusTurbine.StatusText AS TurbineStatusText, StatusBrakes.StatusText AS BrakesStatusText, StatusTwoGenerators.StatusText AS GeneratorsStatusText, StatusYaw.StatusText AS YawStatus FROM ((((tblTurbData INNER JOIN StatusTurbine ON StatusTurbine.StatusChar=left(tblTurbData.Status,1)) INNER JOIN StatusBrakes ON StatusBrakes.StatusChar=right(left(tblTurbData.Status,2),1)) INNER JOIN StatusTwoGenerators ON StatusTwoGenerators.StatusChar=right(left(tblTurbData.Status,3),1)) INNER JOIN StatusYaw ON StatusYaw.StatusChar=right(tblTurbData.Status,1)) WHERE StatusTurbine.LangID=1 AND StatusBrakes.LangID=1 AND StatusTwoGenerators.LangID=1 AND StatusYaw.LangID=1 ORDER by AccessTimeStamp desc"
Avatar billede softspot Forsker
20. december 2007 - 17:53 #3
Under antagelse af at det er statuschar der skal betragtes som case sensitive, ville jeg, hvis jeg ellers selv har forstået hvad Microsoft skriver, forvente at dette burde kunne fungere (jeg har tilladt mig at ombryde din SQL for bedre overblik - synes jeg da selv):

SELECT
  tblTurbData.*, StatusTurbine.StatusText AS TurbineStatusText,
  StatusBrakes.StatusText AS BrakesStatusText,
  StatusTwoGenerators.StatusText AS GeneratorsStatusText,
  StatusYaw.StatusText AS YawStatus
FROM
  (
  (
    (
    (
      tblTurbData
      INNER JOIN StatusTurbine ON Asc(StatusTurbine.StatusChar)=Asc(left(tblTurbData.Status,1))
    )
    INNER JOIN StatusBrakes ON Asc(StatusBrakes.StatusChar)=Asc(right(left(tblTurbData.Status,2),1))
    )
    INNER JOIN StatusTwoGenerators ON Asc(StatusTwoGenerators.StatusChar)=Asc(right(left(tblTurbData.Status,3),1))
  )
  INNER JOIN StatusYaw ON Asc(StatusYaw.StatusChar)=Asc(right(tblTurbData.Status,1))
  )
WHERE
  StatusTurbine.LangID=1
  AND StatusBrakes.LangID=1
  AND StatusTwoGenerators.LangID=1
  AND StatusYaw.LangID=1
ORDER BY
  AccessTimeStamp DESC
Avatar billede riishoj Nybegynder
20. december 2007 - 18:07 #4
Yeeeeeeeeeeeeeeeeeeeees, det virker. 1000 tak for hjælpen :-). Du har virkelig reddet min dag og julen med for den sags skyld....
Send et svar så du kan få dine meget velfortjente point.
Avatar billede softspot Forsker
20. december 2007 - 18:13 #5
Jamen, så har jeg da gjort et eller andet godt i år :D

Velbekomme :)
Avatar billede softspot Forsker
20. december 2007 - 19:56 #6
Tak for point :)
Avatar billede riishoj Nybegynder
20. december 2007 - 21:59 #7
Det er mig som takker........
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