Chaîne de caractère

Chaîne de caractère - VB/VBA/VBS - Programmation

Marsh Posté le 23-11-2005 à 16:21:29    

Bonjour,
 
Je suis débutante ...
 
Je voudrais pouvoir exécuter une recherche sur le 'titre d'un livre' à l'aide d'une requête paramètrée. J'aimerais que l'usager puisse entrer le titre, et que la recherche  s'effectue indépendamment des ponctuations que l'usager mettrait ou qu'il ommettrait. Donc la recherche devrait se faire sur  les caractères seulement... Je souhaiterais  qu'il puisse faire sa recherche sur le titre du livre ex: "J'ai trouvé" et que même s'il est entré dans la base de  donnée sous "J'ai trouvé!!!" qu'il puisse le... trouver!!!
 
Est-ce que quelqu'un pourrait me donner une piste?
Merci!!

Reply

Marsh Posté le 23-11-2005 à 16:21:29   

Reply

Marsh Posté le 23-11-2005 à 17:47:56    

Le mieux serait de bien contrôler la saisie des titres pour éviter les horreurs de mauvaise ponctuation, mais bon... ça ne suffirait pas.
Ce qui suit dépendra sans doute de ta base de données.
 
Tu vas devoir appliquer une transformation "à la volée" de ton champ Titre pour l'épurer des caractères parasites (signes de ponctuation, caractères spéciaux) pour le comparer à la saisie, elle-même transformée via la même formule.
Au plus simple tu peux supprimer tous les signes non alphanumériques.
 
Ta saisie sera traitée par
saisie_transformee = Transformation_alphanum(saisie)
 
Ta clause WHERE de requete devra être du genre
WHERE Transformation_alphanum(Champ_titre) = saisie_transformee
 
Pour supprimer les caractères qui te gênent, un autre post est déjà en cours à ce sujet
Encore faut-il que l'utilisation de la fonction soit autorisée dans ta requete, à toi de voir.
 
S'il te faut plus de marge de manoeuvre dans la tolérance de recherche, vois peut-être du côté de l'algo SOUNDEX et de ses dérivés.

Reply

Marsh Posté le 23-11-2005 à 18:19:06    

tegu a écrit :

Le mieux serait de bien contrôler la saisie des titres pour éviter les horreurs de mauvaise ponctuation, mais bon... ça ne suffirait pas.
Ce qui suit dépendra sans doute de ta base de données.
 
Tu vas devoir appliquer une transformation "à la volée" de ton champ Titre pour l'épurer des caractères parasites (signes de ponctuation, caractères spéciaux) pour le comparer à la saisie, elle-même transformée via la même formule.
Au plus simple tu peux supprimer tous les signes non alphanumériques.
 
Ta saisie sera traitée par
saisie_transformee = Transformation_alphanum(saisie)
 
Ta clause WHERE de requete devra être du genre
WHERE Transformation_alphanum(Champ_titre) = saisie_transformee
 
Pour supprimer les caractères qui te gênent, un autre post est déjà en cours à ce sujet
Encore faut-il que l'utilisation de la fonction soit autorisée dans ta requete, à toi de voir.
 
S'il te faut plus de marge de manoeuvre dans la tolérance de recherche, vois peut-être du côté de l'algo SOUNDEX et de ses dérivés.


 
 
Merci!! Je croyais qu'Access aurait pu nous donner la possibilité dans les propriétés (après entré de donnée) ou dans les critères d'une requête... de faire un tri en fonction de la ponctuation.
Je vais donc poursuivre mes recherches du côté de SOUNDEX comme tu me l'a suggéré!!   Merci!!!

Reply

Marsh Posté le 23-11-2005 à 21:14:51    

Le problème d'Access n'est pas une insuffisance de système de filtrage (y a plein de moyens) mais bien de filtrer sur une valeur approximative et non pas exacte.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed