prince4878
Messages postés149Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention 3 avril 2010
-
13 oct. 2007 à 19:39
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
16 oct. 2007 à 20:40
Salut! je voudrai afficher dans une meme colonne d'un dataGridView deux champs de deux tables differentes.
tbl1(c1,c2,c3) et
tbl2(c4,c5,c6)
je veux afficher dans la premiere colonne du dataGridView toutes les veleurs prise par C1 et C2
JPGVB
Messages postés96Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention10 mars 20112 15 oct. 2007 à 13:14
La syntaxe SQL suivante permet de récuperer dans un champ nommé c1 la liste la liste des élements contenus dans c1 de tbl1 et c2 de tbl2 (à priori avec dédoublonnage).
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 oct. 2007 à 20:25
Salut
Les valeurs de C1 et C2 ou de C1 et C4 qui sont soulignés ?
(fait gaffe à donner les bonnes infos)
De toute façon, ce n'est pas possible avec une requète.
C1 et C2 : La structure de la table ne le permet pas.
C1 et C4 : Il faudra faire deux requètes (un vers chaque table), mais le résultat de la 2ème effacera la 1ère.
Il faut donc faire deux requètes vers deux dataGridView (rendues invisibles) puis rapatrier les 2 en 1 dataGrid
Je ne sais pas à quoi correspondent ces valeurs, mais tu aurais dû structurer tes tables différemment :
Une table avec tous les C plus un lien vers la table :
Table1.IdFiche ' pour la liste des données principales
Table2.IdFiche ' pour la liste des données principales
Valeurs.IdValeur ' pour la liste de toutes les valeurs possibles
.Valeur ' IdValeur identifie une des valeurs, Valeur est la valeur (!)
.Numéro ' et Numéro dit si c'est C1, C2, ... Cx
Reste plus qu'à joindre les deux avec une table d'interfaçage :
Interface.IdFiche ' où IdFiche + IdValeur sont des clés primaires
.IdValeur
La requète pourrait alors ressembler à ça :
Select V.Valeur, T.IdFiche
From Valeurs V, Table T, Interface I
Where I.IdFiche = T.IdFiche
And I.IdValeur = V.IdValeur
And V.Numéro in (1, 4)
Et pour lister C1, C2 et C3 de ta Table1, par exemple :
Select V.Numéro, V.Valeur
From Valeurs V, Table T, Interface I
Where I.IdFiche = T.IdFiche
And I.IdValeur = V.IdValeur
Order By T.IdFiche, V.Numéro
Oui, c'est plus compliqué que tu ne le pensais, mais les Tables sont faites pour stocker des données verticalement et pas horizontalement.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)