OVH Cloud OVH Cloud

Recherche multi critères ?

5 réponses
Avatar
Antoine Labusquière
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais "compta
2005", ne fonctionne pô.

5 réponses

Avatar
Gilbert
Bonjour,

Essaye avec Like * & 'moncritere1' & * & 'moncritere2' & *

Gilbert

"Antoine Labusquière" a écrit dans
le message de news:cs5ete$bto$
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais "compta
2005", ne fonctionne pô.




Avatar
Antoine Labusquière
Voui, mais je ne maitrise pas le nombre de mots clés.

"Gilbert" a écrit dans le message de
news:e6obFbV%
Bonjour,

Essaye avec Like * & 'moncritere1' & * & 'moncritere2' & *

Gilbert

"Antoine Labusquière" a écrit dans
le message de news:cs5ete$bto$
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais "compta
2005", ne fonctionne pô.








Avatar
Gafish
Bonjour,

Le nombre et l'ordre d'ailleurs peut etre non ?
Qu'est ce qui determine le nombre ? Une saisie utilisateur ? Si c'est le cas
tu peux peut-être construire ta requête en vba à la suite d'un écran de
saisie.

Arnaud

"Antoine Labusquière" a écrit dans
le message news: cs5i0p$dvl$
Voui, mais je ne maitrise pas le nombre de mots clés.

"Gilbert" a écrit dans le message de
news:e6obFbV%
Bonjour,

Essaye avec Like * & 'moncritere1' & * & 'moncritere2' & *

Gilbert

"Antoine Labusquière" a écrit
dans


le message de news:cs5ete$bto$
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais
"compta



2005", ne fonctionne pô.












Avatar
Antoine Labusquière
Effectivement, j'y pensais pendant la pause.
Je vais devoir construire le critere en vba.
En fait, c'est déjà le cas, je ne savais pas s'il existait une méthode
"simple" permettant d'efffectuer des recherches multicritères via une
commande SQL que je connais pas, par exemple.

"Gafish" a écrit dans le message de
news:%23xIPGxV%
Bonjour,

Le nombre et l'ordre d'ailleurs peut etre non ?
Qu'est ce qui determine le nombre ? Une saisie utilisateur ? Si c'est le
cas

tu peux peut-être construire ta requête en vba à la suite d'un écran de
saisie.

Arnaud

"Antoine Labusquière" a écrit dans
le message news: cs5i0p$dvl$
Voui, mais je ne maitrise pas le nombre de mots clés.

"Gilbert" a écrit dans le message de
news:e6obFbV%
Bonjour,

Essaye avec Like * & 'moncritere1' & * & 'moncritere2' & *

Gilbert

"Antoine Labusquière" a écrit
dans


le message de news:cs5ete$bto$
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais
"compta



2005", ne fonctionne pô.
















Avatar
Antoine Labusquière
Voili, j'ai écris la petite fonction qui va bien.
On passe en paramètre le critère, ainsi que le nom du champ sur lequel porte
le critere (nom_table!nom_champ)

Il doit y avoir possibiité d'optimiser le code, certainement.

Function Construction_Critère(ByVal critere As String, ByVal nom_champ As
String) As String

Dim pos As Integer
Dim sql As String

Do While critere <> ""
pos = InStr(1, critere, ";")
If pos = 0 Then
sql = IIf(sql = "", nom_champ & " Like '*' & '" & critere & "' &
'*'", sql & " AND " & nom_champ & " Like '*' & '" & critere & "' & '*'")
critere = ""
Else
sql = IIf(sql = "", nom_champ & " Like '*' & '" & Left(critere,
pos - 1) & "' & '*'", sql & " AND " & nom_champ & " Like '*' & '" &
Left(critere, pos - 1) & "' & '*'")
critere = Right(critere, Len(critere) - pos)
End If
Loop

Construction_Critère = sql

End Function


"Antoine Labusquière" a écrit dans
le message de news:cs5ete$bto$
Bonjour à tous

Sous Access 2003, je permet de faire des recherches sur un mot clé.
J'utilise donc Like * & 'moncritere' & * dans ma requête
Sauf que maintenant, j'ai besoin de pouvoir faire ces recherches sur
plusieurs mots clés
Comment fait-on, diantre ???

Ex:
Chaine à rechercher: "Dossiers comptables pour l'année 2005"
Actuellement: le critere "compta" fonctionne, "2005" aussi, mais "compta
2005", ne fonctionne pô.