IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

recherche phonétique


Sujet :

Access

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut recherche phonétique
    bonjour,

    j'ai une base des donnée avec des chaine de caractère.

    Je voudrais rechercher toute les chaines de caratères contenant un mot donné mais avec une recherche phonétique.
    j'ai lu l'article sur les soundex mais je n'arrive pas à les appliquer

    j'ai essayé la requete suivante :
    Select * from ma_table
    Where SOUNDEX(mon_mot) = SOUNDEX(ma_colonne)

    j'ai un message d'erreur comme quoi SOUNDEX n'est pas une fonction reconnu.

    que faire ?

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Tu as bien déclaré ta fonction soundex dans un module ?

    http://access.developpez.com/sources...quete#Soundex1

    En espérant t'avoir aidé.

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je croyais que la fonction SOUNDEX était incorporé au SQL

    cependant, je n'arrive pas à l'utiliser
    Comment faire pour trouver toutes les lignes qui contiennent le mot bonjour phonetiquement

    la requete suivante ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteRechercheColonne = "SELECT " & MaColonne & " FROM MaTable WHERE " & Soundex(MaColonne) & "='" & Soundex("bonjour") & "'"
    => c'est normale mais je ne vois pas comment utiliser Soundex

    de plus avec cette methode, je ne trouverais que si la chaine ne contient que le mot( je ne peut pas trouver le mot dans une chaine de caractère)

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    non SOUNDEX n'est pas incorporé à SQL, d'autre part montre nous le reste de ton code ...
    qu'est-ce que RequeteRechercheColonne ?
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    voici le reste du code (programmation ADO)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       Set MaConnexion = New ADODB.Connection
     
        'Définition du pilote de connexion (fournisseur)
        MaConnexion.Provider = "Microsoft.Jet.Oledb.4.0"
     
        'Définition de la chaîne de connexion : chemin complet du .mdb
        MaConnexion.ConnectionString = MonChemin
     
        'Ouverture de la base de données
        MaConnexion.Open "Data Source=" & MonChemin
     
        Set MonRecordSet = New ADODB.Recordset
        MonRecordSet.Open RequeteRechercheColonne, MaConnexion, adOpenStatic, adLockOptimistic

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    en fait il te faut une fonction soundex

    c'est très facile à écrire
    Elle est pas belle la vie ?

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    hein ???
    je l'ai déja créé ma fonction Soundex : fdraven à donner le lien.

    maintenant le problème est de savoir comment l'utiliser dans la requete SQL ....

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par Emcy
    je croyais que la fonction SOUNDEX était incorporé au SQL
    la requete suivante ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteRechercheColonne = "SELECT " & MaColonne & " FROM MaTable WHERE " & Soundex(MaColonne) & "='" & Soundex("bonjour") & "'"
    Bon personnellement je suis alergique au SQL dans le code et je fais ce genre de manip avec l'éditeur de requète de Access. C'est beaucoup plus facile généralement :o).

    A part cela ce que dit ton code c'est que tu applique Soundex à une varibale qui s'appele MaColonne et non pas au contenu du champ MaColonne.

    donc en gros tu écrit selectionne le champ toto et dit moi si le soundex de la chaine "Toto" est égale au soundex de "bonjour".

    A mon avis ton code devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteRechercheColonne = "SELECT " & MaColonne & " FROM MaTable WHERE Soundex([" & MaColonne & "]) ='" & Soundex("bonjour") & "'"
    ce qui se serait écrit tout seul avec l'éditeur de query :-).

    Et évidement Soundex doit être déclarer public.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Bon personnellement je suis alergique au SQL dans le code et je fais ce genre de manip avec l'éditeur de requète de Access. C'est beaucoup plus facile généralement :o).
    => le probleme est que je n'utilise pas access : j'ai developpé une appli VBA à partir d'Excel pour gérer ma BDD

    A part cela ce que dit ton code c'est que tu applique Soundex à une varibale qui s'appele MaColonne et non pas au contenu du champ MaColonne.

    donc en gros tu écrit selectionne le champ toto et dit moi si le soundex de la chaine "Toto" est égale au soundex de "bonjour".
    => je sais bien mais je ne vois pas comment faire : j'ai mis cette ligne d'exemple pour orienter les recherches

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteRechercheColonne = "SELECT " & MaColonne & " FROM MaTable WHERE Soundex([" & MaColonne & "]) ='" & Soundex("bonjour") & "'"
    => ça ne marche pas : normale vu que tu as mis le premier Soundex dans la requete SQL => une autre solution ?

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par Emcy
    => le probleme est que je n'utilise pas access : j'ai developpé une appli VBA à partir d'Excel pour gérer ma BDD
    C'est le genre d'info qui doit être précisée dès le début !!!

    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  11. #11
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    C'est le genre d'info qui doit être précisée dès le début !!!
    => pourtant, lorsuq'on programme en ADO depuis Excel ou depuis Access, c'est pratiquement la même chose (une requete SQL ne depend pas du logiciel utilisé (sauf quelques rare exeptions)), non ?

  12. #12
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par Emcy
    C'est le genre d'info qui doit être précisée dès le début !!!
    => pourtant, lorsuq'on programme en ADO depuis Excel ou depuis Access, c'est pratiquement la même chose (une requete SQL ne depend pas du logiciel utilisé (sauf quelques rare exeptions)), non ?
    oui mais là tu encapsules une fonction VBA ... je n'ai pas encore testé ce cas ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    si la fonction soundex() est visible depuis l'application qui l'utilise

    select soundex([macolonne]) from matable;

    fonctionne et est donc "incorporée" au sql

    si on est dans un classeur excel, =soundex("bonjour") est une formule valable
    si on n'obtient pas les résultats souhaités il faut modifier les références ou
    recopier la fonction
    Elle est pas belle la vie ?

  14. #14
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    la fonctioon Soundex est déclaré en Vba et non pas en SQL
    => donc je ne peux pas la mettre dans ma requete SQL

    => la seule solution que j'ai trouvé c'est de resortir toute ma table dans mon RecordSet puis de balayer tous les champs de MaColonne avec la fonction Soundex => cette solution est completement débile vu que je perds tout l'interet d'utiliser une BDD : autant utiliser un fichier texte

    => personne n'a déja utilisé cette fonction dans une BDD ?

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    en sql on PEUT utiliser sans problème une fonction vba
    Elle est pas belle la vie ?

  16. #16
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je ne comprends plus rien : je repose mon probleme...

    1- j'ai une table MaTable
    2- dedans, j'ai plusieurs colonnes dont une s'appele Colonne1

    Comment faire pour rechercher tous les elements (dans la colonne "Colonne1") qui contiennent le mot "bonjour" phonetiquement ?
    => quel est la requete SQL ?

  17. #17
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je reprends

    point numéro 1 se placer là ou cette requête va tourner (excel si j'ai bien compris) et vérifier que la fonction est accessible c'est facile on se place
    dans une cellule et on y place =soundex("bonjour") si on obtient une réponse du genre BXXX la référence es présente sinon on va l'ajouter
    outils macro visual basic alt o

    ensuite on peut utiliser dans le sql microsoft(ado ou dao) soundex

    il suffit de tester en lancant "select soundex("bonjour") as test;"
    Elle est pas belle la vie ?

  18. #18
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    point numéro 1 se placer là ou cette requête va tourner (excel si j'ai bien compris) et vérifier que la fonction est accessible c'est facile on se place
    dans une cellule et on y place =soundex("bonjour") si on obtient une réponse du genre BXXX la référence es présente sinon on va l'ajouter
    outils macro visual basic alt o
    => la fonction est reconnu

    ensuite on peut utiliser dans le sql microsoft(ado ou dao) soundex

    il suffit de tester en lancant "select soundex("bonjour") as test;"
    => la fonction n'est pas reconnu ce qui me semble normale : je ne vois pas comment Microsoft Jet pourrais intégrer automatiquement une fonction créer en Vba

  19. #19
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    voici une version simplifié de mon classeur (ça pourra peut-être t'aider)
    http://cjoint.com/?cbomIgIEEN

  20. #20
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Ici le soundex est apprement dans Excel et sincérement je ne vois pas d'autre soultion que mettre ta fonction Soundex dans la base Access pour que tu puisse l'utiliser en SQL.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Problème dans la recherche phonétique
    Par lionrouge2009 dans le forum Oracle
    Réponses: 2
    Dernier message: 20/06/2012, 19h30
  2. Solution de recherche phonétique
    Par coulio dans le forum Autres Solutions d'entreprise
    Réponses: 2
    Dernier message: 02/03/2011, 13h55
  3. recherche phonétique avec liste deroulante
    Par caro71ol dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 31/01/2011, 09h45
  4. Solution de recherche phonétique
    Par coulio dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 18/03/2010, 09h53
  5. Recherche phonétique en PHP
    Par brodseba dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 2
    Dernier message: 15/11/2006, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo