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 sur un mot ou partie d un mot


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut recherche sur un mot ou partie d un mot
    Bonjour tout le monde,
    Pour mon formulaire de recherche, j utilise un fonction provenant d un tuto du site, la fonction restriction.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Public Sub Restriction(ByVal Chaine As String, _
             ByVal ChamP As String, ByVal matable As String, _
             ByRef ArGument As Integer, ByRef ClausE As String, ByRef astype As Integer)
    
    ' Typ Auswahl : 0 für ein string, 1 für einen Zahl ou boolean
    ' 2 für ein Datum
    
    'gründet die Abfrage
    If ArGument = 0 Then
      'löscht die Leerstelle
       matable = Trim$(matable)
      'Wenn die Tabelle eine unterabfrage ist :(Beginn mit select)
      If InStr(1, matable, "SELECT ", vbTextCompare) <> 0 Then
        'löscht den ; wenn es gibt
        If Right(matable, 1) = ";" Then _
           matable = Left(matable, Len(matable) - 1)
        ' () um die Abfrage
        ClausE = "SELECT * FROM (" & matable & ")"
      Else
        ClausE = "SELECT * FROM " & matable
      End If
    End If
    If Chaine <> "" Then
        If ArGument = 0 Then
         ' fügt das WHERE hinzu
        ClausE = ClausE & " WHERE "
        ' fügt den Operator "AND" hinzu wenn WHERE schon existiert
        Else: ClausE = ClausE & " AND "
        End If
        Select Case astype
          Case 0  'fügt den Kriterium wenn den Typ Text ist
            ClausE = ClausE & ChamP & " = " & Chr(34) & Chaine & "" & Chr(34)
          Case 1  'fügt den Kriterium wenn den Typ Zahl ist
            ClausE = ClausE & ChamP & ">=" & Chaine
          Case 7  'fügt den Kriterium wenn den Typ Zahl ist
            ClausE = ClausE & ChamP & "<=" & Chaine
          Case 2  'fügt den Kriterium wenn den Typ Datum ist
             ClausE = ClausE & ChamP & "=" & DateUS(Chaine) & ""
    
    End Select
        ArGument = ArGument + 1
    End If
    End Sub
    Je voudrais pouvoir fairer une recherche sur un mot ou une partie, cad si jetape le mot ds mon formulaire, le resultat sera ts les enregistrements où ce mot ou la partie du mot apparait.

    Je sais que like ou = ne sont pas adequat. Il dopit falloir rajouter des *, mais où? Je voudrais rajouter ca ds la ligne en rouge.

    QQun aurait une idée?

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut,

    Pour les chaînes de caractères je te conseille d'utiliser Like et non =. Pour vérifier l'existence d'un mot dans une chaîne (où que ce mot se trouve dans la chaîne), tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... Like '*" & mot & "*'...
    Il faut entourer le mot (variable) par *.

    Bon courage.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut
    Salut

    ca ne fonctionne pas.J ai ecrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClausE = ClausE & ChamP & " like  *" & Chaine & "*"
    a la place de ce que j avais ecrit avant.
    Mon resultat depend d une requete bien sur, et ds la requete, apres avoir saisi une chaine comme "pr" par ex, rein ne s affiche ds la liste mais la requete est devenue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Suchen WHERE Hinweis =  *pr*;

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,
    un exemple que tu pourrais utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Coefficient.Critere) Like " & Chr(34) & Chr(42) & strCritere & Chr(42) & Chr(34) & ")

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut
    cane fonctionne pas non plus

    requete devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Suchen WHERE Hinweis Like "*pr*";
    et aucun resultat n est trouve.En plus qd je clique sur le bouton rechercher, une messbox s ouvre et me demande de renplir le critere qui est deja rempli ds un chps.
    Ds ta ligne de code qu est ce qui fait qu une messbox s ouvre?

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Points : 54
    Points
    54
    Par défaut
    ok c bon maintenant ca marche avec la solution de kikof, en fait j avais une autre erreur...

    Merci beaucoup

  7. #7
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par fsautejeau
    Salut

    ca ne fonctionne pas.J ai ecrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClausE = ClausE & ChamP & " like  *" & Chaine & "*"
    a la place de ce que j avais ecrit avant.
    Mon resultat depend d une requete bien sur, et ds la requete, apres avoir saisi une chaine comme "pr" par ex, rein ne s affiche ds la liste mais la requete est devenue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Suchen WHERE Hinweis =  *pr*;
    Resalut,
    Juste un truc que tu as oublié et qui explique pourquoi cela n'a pas marché: les apostrophes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClausE = ClausE & ChamP & " like  '*" & Chaine & "*'"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche sur plusieurs mots-clés
    Par Freedolphin dans le forum Installation
    Réponses: 3
    Dernier message: 10/12/2007, 02h11
  2. Formulaire de recherche sur mots clés
    Par Tharsis dans le forum IHM
    Réponses: 5
    Dernier message: 25/08/2007, 00h16
  3. VB 2005 recherche sur partie de mot
    Par johnwhisper dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/06/2006, 21h00
  4. Recherche sur mots de 3 lettres
    Par mamizo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/02/2005, 14h59

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