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

 Delphi Discussion :

Rechercher avec des combobox


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut Rechercher avec des combobox
    Bonjour,

    Voici mon problème, je voudrais faire une recherche à l'aide de combobox pour la saisie.

    Exemple: j'ai un numéro de grade 1 ( ce qu'on recherche) qui correspond à jaune (sélectionné dans un combobox) pour une couleur de ceinture et 0 (sélectionné dans un combobox) pour le nombre de barrette.

    voilà je suis un peu dans le flou pour faire ça, alors merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    l'ami tu es vraiment dans le flou.

    Tu utilises quelle base de données, quels composants pour accéder?

    le problème n'est pas dans le combobox car de ce composant tu tire le numéro d'ordre de l'élément à rechercher ou son texte mais la recherche se fait dans une base de données ou si tu veux table de données.

    donc tu sais ce que nous attendons comme explication.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    ha ouais oops j'ai oublié de préciser ce "petit point", j'utilise une base sql server

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    SI j'ai bien compris, tu veux trouver "1" quand tu sélectionne "jaune" dans ta combo.

    En supposant que le numéro que tu cherche et la couleur sont stockés dans la même table (même enregistrement c'est mieux quand même) il suffit d'une simple requête SQL paramétrée.

    Ceci devrait fonctionner pour un TADOQuery
    Dans la propriété SQL du Query:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT GRA_NUMERO FROM GRADE WHERE GRA_COULEUR=:UneCouleur

    Dans le code Delphi :
    Je suppose également que la valeur jaune est stockée sous forme de texte.
    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
     
    function RechNumeroGrade ( const stCouleur : string) : integer;
    var stTemp : string;
    begin
       stTemp := '';
       With DataModuleADO.QueryGrade do
       begin
          Active := False;
          Parameters.ParamByName('UneCouleur').Value := stCouleur;
          Active := True;
          First;
          While not (eof) do
          begin
             stTemp := FieldValues['GRA_COULEUR'];
             Next;
          end;
       end;
       Result := stTemp;
    end;
    Edit si ta couleur est stockée en format de type Entier, il suffit de changer le type des variable stCouleur et stTemp.

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    en faire ma recherche se base sur une couleur et sur un nombre de barrette qui donne ensuite un grade, ce n'est pas juste une couleur qui correspond à un num de grade.

    mais merci quand même ça m'aide :-)

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Comme je te l'ai écrit, tous dépend de comment est structurée ta base. J'aurais fait les chose comme cela.

    Données de la Table GRADE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GRA_BARRETTE | GRA_COULEUR | GRA_LIBELLE
    -----------------------------------------------
    1          | Jaune            | Grade 1
    2          | Jaune            | Grade 2
    3          | Jaune            | Grade 3
    1          | Bleu              | Grade 4
    ....
    5          | Rouge            | Grade n
    Ensuite la requete Paramétrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT GRA_LIBELLE FROM GRADE WHERE GRA_BARRETTE=:UnNombre AND GRA_COULEUR=:UneCouleur
    Le code Delphi
    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
    function RechGrade (const stCouleur : string; const intBarrette : integer) : string;
    var stTemp : string;
    begin
       stTemp := '';
       With DataModuleADO.QueryGrade do
       begin
          Active := False;
          Parameters.ParamByName('UnNombre').Value := intBarrette;
          Parameters.ParamByName('UneCouleur').Value := stCouleur;
          Active := True;
          First;
          While not (eof) do
          begin
             stTemp := FieldValues['GRA_LIBELLE'];
             Next;
          end;
       end;
       Result := stTemp;
    end;

Discussions similaires

  1. fonction pour filtrage avec des combobox en cascade
    Par Montor dans le forum Contribuez
    Réponses: 3
    Dernier message: 09/11/2009, 12h05
  2. Calculer avec des combobox
    Par mjp06 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/09/2008, 01h10
  3. Utilisation du Enable avec des combobox ou des listbox
    Par legos dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 19/09/2006, 22h35
  4. Recherche avec des accents!?
    Par mona dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 20h36

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