Problème avec proc de recherche multicritères

Résolu
Signaler
Messages postés
265
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
-
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
Bonsoir,


j'essaie d'écrire une procédure de recherche multi critère, qui fonctionne sous VB, mais avec Delphi j'ai un message d'erreur récurrent:


"Les arguments sont de types incorrect, en dehors des limites autorisées ou en conflit les uns des autres."


Mon formulaire, pour le moment, est composé de boutons A.............Z et d'une TBLookupComboBox (lstCP) qui donne une liste de codes postaux.


CritAlpha: est une variable de type string générée quand on clique sur un des boutons,


Un DBGrid avec DataSource un ADOQuery ()


Je vous soumets l'ébauche de ma proc:


begin
    moncritere := '';
    // Recherche sur la première lettre du nom
    //========================================
    If Length(CritAlpha) > 0 Then
        moncritere := '[nom_client] Like ''' + CritAlpha + '*''''AND';
   
    //Recherche sur un Code postal
    //============================
    If lstCP.Text <> '' Then
        moncritere := moncritere + ' [cp_client] Like ''' + lstCP.text + ''' AND';


    // Résultat
    //=========
    If Length(moncritere) > 0 Then
        begin
        moncritere := Copy(moncritere, 1,Length(moncritere) - 4);
        showmessage(moncritere);
        QryListe.Filter :=moncritere;
        QryListe.Filtered:=true;
        end;
end;
=============
Nota: Sélectionné séparemment ça fonctionne, mais quand je sélectionne un bouton et ma liste et ma liste déroulante,
j'ai:


[nom_client] Like 'C*''AND [cp_client] Like '83700'


Il semble que le problème vienne des '' après [nom_client] Like 'C*'' et je ne comprends pas pourquoi.

Si quelqu'un veut bien m'aider à résoudre ce problème.

D'avance merci

Cordialement

Codial

3 réponses

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Bonjour,


Quand je fait une requête avec un "Like", j'utilise le caractère "%".

Ex : Pour récupérer les enregistrements avec les clients commençant par "C" :

CLIENT like 'C%'

Simon
Messages postés
265
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
1
Bonsoir,

Ok, merci pour cette réponse,

Cordialement

Codial
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Salut,


Juste une petite précision... je crois que c'est sur ma réponse que tu dois cliquer "réponse acceptée"...

Simon