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

Bases de données Delphi Discussion :

[débutante]Problème combobox et requete sql


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut [débutante]Problème combobox et requete sql
    Bonjour,

    J'utilise la version 7 de delphi, et j'ai un petit souci pour afficher le résultat d'une requête sql dans ma ComBoBox.

    Voilà j'ai des contacts qui sont enregistrés dans la base de données et il sont organisés par groupe.
    Par exemple pour le "groupe A"-> J'ai 4 Contacts "toto","test","titi", "youpi"

    Donc l'application affiche la fiche contact, ici "test" avec nom, prenom, etc
    Et je voudrais mettre dans ma ComboBox, la liste des contact appartenant à ce groupe sauf "Test".
    Est-ce possible ?? j'ai essayer avec une requête mais ça ne marche pas.
    Je pense que je ne sais pas trop où et comment mettre ma requête.

    Merci d'avance pour votre aide.

    Lilo

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Je dirais que ca doit être possible avec une requête !
    Fais voir la requête que tu as essayé de mettre en place.

    @+ Claudius

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    merci de répondre. Voilà ce que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     procedure TForm.DBComboBox1Click(Sender: TObject);
    begin
     
    QueryMain.SQL.Clear;
    QueryMain.SQL.Add('Select NOM, PRENOM from CONTACT where NOM <> NameContact');
    QueryMain.Open;
    end;
    J'ai essayé de mettre la requête dans le sql de le ComboBox mais ça n'a pas marché.
    Et j'ai meme essayé le datafield avec "NOM" mais il affiche que le nom "test" et rien d'autre

    Voilà merci de ton aide.

    Lilo

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Citation Envoyé par lilo415
    Et je voudrais mettre dans ma ComboBox, la liste des contact appartenant à ce groupe sauf "Test".
    La notion de groupe est absente de ta requête !

    La requête pourrait être celle-ci:
    SELECT nom, prenom FROM CONTACT
    WHERE groupe = :Groupe and nom <> :NomContact
    ORDER BY nom, Prenom;
    ensuite pour l'appeler tu renseignes tes paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with QueryMain do begin
      Close;
      ParamByName('Groupe').Value := 'A'; // le groupe actuel 
      ParamByName('NomContact').Value := 'test'; // ton contact courant
      Open;
    end;
    @+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Ok, merci

    je vais testé ... mais ça ne marche pas, j'ai une erreur.

    Logiquement ma reqête est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT CONTACTCLEUNIQ, NOM, PRENOM, CodeUser, GROUPE, NOMSOCIETE 
    FROM VIEWCONTACT
    Mais comme je change de nom ou le groupe sur chque fiche,je ne peux pas déclarer comme ça :
    Cl@udius a écrit:
    ensuite pour l'appeler tu renseignes tes paramètres:

    with QueryMain do begin
    Close;
    ParamByName('Groupe').Value := 'A'; // le groupe actuel
    ParamByName('NomContact').Value := 'test'; // ton contact courant Open;
    end;
    Est ce que je peux utiliser, quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      ParamByName('NOM').Value := QueryMain.FieldByName('NOM').AsString; // ton contact courant
     
    ou
     
      NameContact:= UpperCase(trim(DBNOM.EditText));

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    si j'ai bien compri
    vous voullez afficher dans le combobox les contacts d'un group

    moi a votre place j'utiliserai une intégriter référencielle (avec la tabe group comme maitresse) et a DblookupCombobox.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Au départ j'avais utilisé un DbLookUpComboBox mais je ne sais pas m'en servir, donc j'ai utilisé un comboBox.

    Si vous avez des explications à me donner pour que j'utilise un DbLookUpComboBox je suis prenante.

    Merci d'avance

    Lilo

  8. #8
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Exemple: Tu relie ta Query à un TDatasource (appelons le Datasource1).
    Tu pose ta DBLookUpComboBox, tu met le champs Source à la valeur datasource1, et la valeur keyfield au champs que tu veux afficher (ici "nom").

    A+.
    For crying out loud !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse.

    Je vais tester...

    Bonne journée

    Lilo

  10. #10
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    De rien, c'est toujours un plaisir de rendre service.
    Bonne journée à toi aussi,

    A+.
    For crying out loud !

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Re-bonjour,

    Je viens de tester, j'ai fait comme tu me l'as dit mais rien ne s'affiche dans la DbLoopUpComboBox. Alors que les champs sont bien renseignées.

    Auriez-vous une idée, pour résoudre ce problème??

    Merci ...

    Lilo

    Ps: la fleche du DBLookupComboBox est grisé, comme si on ne pouvais rien affiché ou saisir

  12. #12
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    La première chose qui me viens à l'esprit c'est que ton ensemble de données est fermé.

    As-tu pensé à faire:
    A l'ouverture de ta form par exemple ? (En oubliant pas de la refermer à la sortie évidemment).

    A+.
    For crying out loud !

  13. #13
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Si c'est grisé, c'est que soit la source de données n'est pas connecté (open sur la requete) soit que la configuration du composant n'est pas la bonne.

    Dans la il y a une QR qui explique la configuration du composant :

    http://delphi.developpez.com/faq/?pa...omboboxcomment
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Merci de vos réponses...

    Je vais essayer de me débrouiller avec tous vos conseils, en espèrant que ça marche

    Merci bonne journée.

    Lilo

Discussions similaires

  1. Problèmes avec ma requete SQL de mise a jour
    Par k750_b dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/02/2008, 23h22
  2. Problème simple sur requete sql
    Par williams59 dans le forum ASP
    Réponses: 15
    Dernier message: 02/01/2008, 14h18
  3. Réponses: 10
    Dernier message: 11/07/2007, 08h45
  4. Réponses: 2
    Dernier message: 28/08/2006, 10h12
  5. Problème avec une requete SQL sous access
    Par Luther13 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/12/2005, 10h39

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