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

Requêtes et SQL. Discussion :

Recherche mots clés point virgule


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Points : 74
    Points
    74
    Par défaut Recherche mots clés point virgule
    Bonjour,

    Je me suis inspiré du tuto de Cafeine pour créer mon formulaire de recherche.
    J'aimerais améliorer ce dernier.

    En effet, je dispose d'un champ "mots clé". Ce champ accueille des mots clés séparés par des point virgule.
    En l'état actuel des choses, la recherche ne fonctionne que si je tape un seul mot clé. Si j'en rentre plusieurs (séparés ou non par un point virgule) ça ne fonctionne plus.

    Comment intégrer cette possibilité dans le bout de code (ligne 15 - 17) ci-dessous ,

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT ID_Ressource, Domaine, Entite, Theme, Date_Ressource, Libelle_Ressource FROM Tbl_Ressource WHERE Tbl_Ressource!ID_Ressource <> 0 "
     
     If Not Me.chkDomaine Then
        SQL = SQL & "And Tbl_Ressource!Domaine = '" & Me.CmbDomaine & "' "
     End If
     
     If Not Me.ChkEntite Then
        SQL = SQL & "And Tbl_Ressource!Entite = '" & Me.CmbEntite & "' "
     End If
     
     If Not Me.ChkMotsCle Then
        SQL = SQL & "And Tbl_Ressource!MotsCle_Ressource like '*" & Me.TxtMotsCle & "*'"
     End If
     
    If Not Me.ChkTheme Then
        SQL = SQL & "And Tbl_Ressource!Theme = '" & Me.CmbTheme & "' "
     End If
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Me.lblStats.Caption = DCount("*", "Tbl_Ressource", SQLWhere) & " / " & DCount("*", "Tbl_Ressource")
     Me.lstResults.RowSource = SQL
     Me.lstResults.Requery
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,

    en remplaçant le = par un IN()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Me.ChkMotsCle Then
        SQL = SQL & "And Tbl_Ressource!MotsCle_Ressource IN ('*" & Me.TxtMotsCle & "*') "
     End If
    à toi par contre de faire la syntaxe avec les "'" entre chaque valeur

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Points : 74
    Points
    74
    Par défaut
    Désolé mais je n'ai pas tous compris (je débute en SQL)

    En fait, les utilisateurs entreront les mots clés qu'ils veulent (aucune liste de mots clés prédéfinis).

    Exemple :
    Mots clé pour l'enregistrement 15 = chien, chat, rat
    Mots clé pour l'enregistrement 24 = chien, rat, chat
    Mots clé pour l'enregistrement 78 = rat, chien
    Mots clé pour l'enregistrement 03 = chat
    Si l'utilisateur entre "chien, rat" les enregistrements 15, 24, 78 s'affichent. Mais pas 03.

    Je ne vois pas trop comment l'appliquer à votre solution.

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 354
    Points
    34 354
    Par défaut
    Un peu de lecture pour l'apprentissage
    http://loufab.developpez.com/tutorie.../operateur-in/

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 854
    Points : 58 374
    Points
    58 374
    Billets dans le blog
    43
    Par défaut
    bonsoir,

    éventuellement, ces ressources peuvent aussi servir:

    Rechercher une chaîne dans une chaîne
    Découper une chaîne de caractères

Discussions similaires

  1. [MySQL] recherche par mots clés
    Par spartan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/02/2006, 17h11
  2. [Tableaux] Moteur de recherche par mot clés
    Par Nee dans le forum Langage
    Réponses: 4
    Dernier message: 20/01/2006, 12h30
  3. Moteur de recherche et plusieurs mots clés
    Par jack1234 dans le forum Langage
    Réponses: 13
    Dernier message: 14/12/2005, 11h29
  4. Réponses: 6
    Dernier message: 04/11/2005, 18h09
  5. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 11h56

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