TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 2012
-
21 avril 2006 à 12:21
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 2012
-
25 avril 2006 à 08:50
Salut les pros de la prog, voilà le topo :
J'ai une table composant dans laquelle j'ai 2 numéros de fournisseurs : nf1, nf2 et j'aimerai afficher le noms de ceux-ci dans un datagrid en liant la table composant à celle des fournisseurs
J'ai donc commencé la requête suivante, mais je n'arrive pas à renommer mes jointures :
dim sql as string "select composant.*, fournisseur.nf, fournisseur.nom from ((composant inner join fournisseur on composant.nf1 fournisseur.nf) inner join fournisseur AS EXPR2 on composant.nf2 = fournisseur.nf)"
Le message d'erreur (que j'ai en allemand...) me dit que la connexion n'a pu être entretenue, établie..
Est-ce que je ce que je veux faire est possible de cette manière ?
Comment renomme-t-on un champ lorsqu'on s'y connecte ?
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 21 avril 2006 à 13:49
salut,
perso j'aurais plus ecrit un truc comme ca :
dim sql as string "select composant.*, fournisseur.nf, fournisseur.nom,fournisseur1.nf, fournisseur1.nom from (composant inner join fournisseur on composant.nf1 fournisseur.nf) inner join fournisseur AS fournisseur1 on composant.nf2 = fournisseur1.nf"
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 20121 24 avril 2006 à 09:21
Ok merci pour vos réponses les gars, bien essayé, mais toujours pas de fructueuse solution..
Bouv, ta commande marche, mais impossible d'afficher les 2 résultats qui m'intéressent dans le datagrid car le 'mapping est le même : je cherche vraiment à renommer le nom d'une liaison particulière entre les tables..
BasicInstinct : je pense qu'on est sur la bonne voie... à un petit détail prêt ! (j'ai le même message d'erreur qu'avec ma requête..)
Voilà, surtout n'hésitez pas à continuer.. il va bien falloir que je résolve ce problème et je suis sûr que c'est possbile de cette manière..
(l'autre consiste à faire un doublon de la table entière fournisseur en une fournisseur2 et ainsi plus de problème.. mais je ne veux pas en arriver là.. c'est vraiment pas classe et tout ça pour un simple affichage !! allez les gars ! on se motive les troupes !)
.Maytheforcebewithyou.Maxime.
Vous n’avez pas trouvé la réponse que vous recherchez ?
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 20121 24 avril 2006 à 10:45
J'avoue avoir posté un peu vite... j'avais pas très bien vu toute les finesses de la requête de BasicInstinct, qui est, après mûr examen, bonne.
Du moins sans erreur..
En revanche, la requête me renvoit aucun champ... et ça c'est bizarre.. tu sais pourquoi Basic ?
Une petite relecture ?
je la triture de mon côté aussi et je vous tient au courant.. (même si je préfèrerai que ce soit l'inverse...)
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 20121 24 avril 2006 à 11:32
Ma base est de l'access aussi, je développe en Vstudio 2002 et côté appels à la base, je dois être en ADO.net...
(provider : MsJet4.0 ole db provider pour la connexion ; oledbdataadapter de VS pour les requêtes..)
La requête ne m'envoit aucun enregistrement (bien que ma table soit évidemment pleine..)
allez, je vous met le string (attention aux yeux, c'est de l'allemand..)
Dim str As String "select bauteile.artikelnr, bauteile.bezeich, bauteile.bezeich2, bauteile.bezeich3, liefernt.lfnr, liefernt.name, liefernt1.lfnr as LF_n1, liefernt1.name as LF_n2 from ((bauteile inner join liefernt on bauteile.lfnr liefernt.lfnr) inner join liefernt as liefernt1 on bauteile.lfnr2 = liefernt1.lfnr)"
Dim dastr As New OleDbDataAdapter(str, cn)
Dim dst As New DataSet()
dst.Clear()
Dim k As Integer
Try
k = dastr.Fill(dst, "bauteile")
Catch bb As Exception
MessageBox.Show(bb.Message)
End Try
' -> k = 0... , mais pas d'erreur..
nota : si je remplace liefernt1.lfnr par LF_n1 à la fin du string (->bauteile.lfnr2 = LF_n1), là, par contre, ça plante..
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 20121 24 avril 2006 à 11:37
Concernant les 'champs' ( i.e les colonnes..) là pas de problème, j'ai bien un bon schéma de datagrid.. mais il est vide.. c'est là que c'est pas cool...
Pourtant aucune trace de condition dans la requête... non ? si ?
TrafMaxime
Messages postés288Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention26 janvier 20121 25 avril 2006 à 08:50
Ok, aujourd'hui est un bien meilleur jour...
En reprenant le problème ce matin je me suis rendu compte que la plupart (tous.., en fait) de mes composants n'avait pas de fournisseur allant avec leur numéro_fournisseur2, et c'est pourquoi la requête ne me retournait aucun champ...
Merci donc beaucoup, j'accepte la précédente réponse très 'basic', et vous en pose éventuellement une autre :
(si vous avez 5 min...)
Est-il possible que ma requête se foute de savoir si le fournisseur2 existe ou non, et me renvoit tous les composants quoiqu'il arrive ?
(ça a l'air un peu plus costaud..)