[Access] case sensitive zoeken (met LIKE?)

Pagina: 1
Acties:
  • 313 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • palloquin
  • Registratie: Juli 2000
  • Laatst online: 29-01-2021
Hoi..

Ik kan nergens vinden of, en zo ja hoe, je case sensitive kunt zoeken in je DB.

Met een standaard WHERE veld LIKE '*zoeksleutel*' zoekt je iig niet case sensitive...

TIA!

Acties:
  • 0 Henk 'm!

Verwijderd

Op dinsdag 04 december 2001 13:54 schreef palloquin het volgende:
Hoi..

Ik kan nergens vinden of, en zo ja hoe, je case sensitive kunt zoeken in je DB.

Met een standaard WHERE veld LIKE '*zoeksleutel*' zoekt je iig niet case sensitive...

TIA!
Volgens mij kan het niet met WHERE and LIKE, het kan wel door in de query een extra kolom te maken en daar de expressie StrComp([veldnaam];[zoeksleutel];0) in te zetten. zet bij de criteria in deze kolom een 0

Acties:
  • 0 Henk 'm!

Verwijderd

Kun je niet iets met het UPPER keyword doen in
je SQL.... zoiets als:

SELECT *
FROM tblUsers
WHERE UPPER(Name) LIKE UPPER('%Piet%')

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Dat werkt alleen voor het omgekeerde.

Acties:
  • 0 Henk 'm!

Verwijderd

Hoe bedoel je omgekeerde ?

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Case-insensitive zoeken.

Acties:
  • 0 Henk 'm!

  • Splatter
  • Registratie: December 2000
  • Laatst online: 26-11-2021
Als je het in een module/form doet moet je "Option Compare Binary" bovenin die module zetten.
Ik weet niet of dit in query-view werkt. (ik heb access niet geinstalleerd atm)

Acties:
  • 0 Henk 'm!

  • ZeilDude
  • Registratie: Juli 2004
  • Laatst online: 19-02-2022
Deze post is NIET bedoeld als late kick, maar als aanvulling op de zoekfunctie op het forum.

MS Acces is bij vergelijkingen met het '='-teken niet hoofdlettergevoelig. Ik illustreer dat met het volgende voorbeeld.
Je kunt bijvoorbeeld vanuit een ASP-pagina een waarde uit het invulveld vergelijken met een waarde die je vanuit een formulier hebt gepost met de volgende query:
code:
1
2
3
SELECT GebruikersNaam
FROM tblGebruikers
WHERE GebruikersWachtwoord=@ZoekGebruikersWachtwoord);

Wat doet deze query? Deze query vergelijkt de vanuit de ASP-pagina verstuurde waarde @ZoekGebruikersWachtwoord met een waarde in de database. Wordt er een zelfde waarde gevonden. dan is het resultaat van de query de betreffende gebruikersnaam. Dit is een eenvoudige query, die prima werkt.
Maar......
Deze query is niet hoofdletter gevoelig. In het geval van een gebruikersnaam is dit niet zo heel erg, maar in geval van bijvoorbeeld een wachtwoord wél! Je kunt dan waarden beter vergelijken met StrComp. Het voorbeeld ziet er zo als volgt uit:
code:
1
2
3
SELECT GebruikersNaam
FROM tblGebruikers
WHERE StrComp(GebruikersWachtwoord,[@ZoekLogin],0))=0;

Deze query is wél hoofdletter gevoeling, omdat er vergeleken wordt op de binaire waarde (de eerste '0' in de query van de waarden in de vergelijking. Als het resultaat van de vergelijking '0' is (de tweede '0' in de query), dan is de vergelijking juist.

Voor meer informatie over strComp kun je kijken in de MSDN Library.
Pagina: 1