Dblookup et requete (delphi)

okeefe Messages postés 9 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 26 novembre 2002 - 18 sept. 2002 à 20:45
okeefe Messages postés 9 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 26 novembre 2002 - 27 sept. 2002 à 17:37
je mentionne que j'ai posté sur des dizaines de forum et j'ai eu de solution...

j'ai une table succursale ayant les champs
nosuccursale
adresse
tel
noville

j'ai une table ville ayant les champs
noville et nomville

dans un dblookupcombobox, je voudrais que lorsque je sélectionne un tel d'une succursale,
que ses info: adresse, tel et nomville soit affiché

comment faire ça?

ps j'utilise interbase

4 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
20 sept. 2002 à 00:07
Ce n'est pourtant pas si compliqué...

Comme tu veux afficher deux tables dans la liste d'un combo-box, il faut déjà créer une requète ( TQUERY par ex ) pour joindre les deux :
Si S est la table des succursales et V la table des villes, alors il faut créer une réquète du style :
SELECT * FROM S,V WHERE S.NOVILLE=V.NOVILLLE

Ensuite il faut lier un datasource à cette requète.

Enfin il faut fixer le DBLookUpComboBox.ListSource à cette nouvelle source, puis fixer les propriétés KeyField et ListFeild. ListField peut contenir plusieurs champs, il suffit des séparer par des ";".

--- :sleepy) Nono du Moulin :sleepy) ---
0
okeefe Messages postés 9 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 26 novembre 2002
25 sept. 2002 à 19:39
c'est pas vraiment ce que je voulais faire, mais je vais tester...

j'explique plus en détail ...

salut

j'ai 2 tables

succursale qui a les champs adresse, tel,noville .... et ville qui a
les champs noville et nomville

je veux que lorsque je sélectionne un tel dans un dblookupbox(de
succursale) que ses infos me soit affiché ses informations ainsi que le
nom de sa ville...

pour se faire, j'utilise un TIBquery (ibqVilleSucc) qui est lié a
dsVilleSucc
la requête est

select nosuccursale,nom, adresse,courriel, fax,
codepostal,noville,nomville from
succursale ,ville where (tel=:tel and succursale.noville=ville.noville)

je suis certain que c'est pas la facon de faire, car le dblookup ne peut
renvoyer qu'une valeur je crois...

voici les infos des composants

dblcTelephone

ListSource : dmKpr.dsSucc
ListFiel : Tel
KeyField : Noville

ensuite j'ai des dbedit qui est lié a dmKpr.dsVilleSucc et qui devrait
afficher le nom de la ville, adresse.. mais rien n'est affiché..

une solution?

ça fait longtemps queje poste sur divers forum et aucune solution ...
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
25 sept. 2002 à 19:53
Concernant le dblookupcombobox, je ne vois pas de différence entre ma méthode et la tienne... C'est la seule façon de faire, car le DBLookComboBox ne peut être lié qu'a une seule source pour la liste de valeur. C'est donc logique de créer une requète pour joindre les deux tables.
Par contre dans ta requète pourquoi ajoutes-tu Tel=:Tel ? Pour moi c'est inutile, et c'est peut-être pour ça que tu n'as rien dans les DBEdit, Car si le paramètre TEL n'est pas ou mal renseigné, alors la requète est vide et donc il n'y a pas de valeur dans les DBEdit...

Pour ensuite avoir plusieurs valeurs affichée dans la liste il faut mettre tous les champs voulus dans keyFields séparés par des point-virgule.

--- :sleepy) Nono du Moulin :sleepy) ---
0
okeefe Messages postés 9 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 26 novembre 2002
27 sept. 2002 à 17:37
je vais essayer ce demain soir...

en fait ma dblookupcombox est lié à une requete genre

select tel from succursale
et lorsque je clique dessus je veux que dans mes dbedit que les informations de cette succursale soit affiché...

j'ai fait "select nosuccursale,nom, adresse,courriel, fax,
codepostal,noville,nomville from
succursale ,ville where (tel=:tel and succursale.noville=ville.noville)"

car si je fait pas tel=:tel, il peut y avoir plusieurs résultat je crois...
0
Rejoignez-nous