Problème INNER JOIN VB

Problème INNER JOIN VB - VB/VBA/VBS - Programmation

Marsh Posté le 04-05-2006 à 15:26:52    

Bonjour à tous.
 
J'ai deux tables, une des produits, et une des ventes.
 
Dans la table des ventes, on encode les refs de produit.  je veux à présent crééer une requête qui selectionnera les references de la table des ventes et ressortira les noms des produits.
 
S'il n'y avait qu'un intitulé par produit ce serait simple.
SELECT testtable.nom
FROM testtable INNER JOIN testvente ON testtable.ref = testvente.refproduitcommande;
 
 
Mais j'ai trois champs de refs de produits vendus dans ma table de vente.  Comment faire dans ce cas?
 
merci

Reply

Marsh Posté le 04-05-2006 à 15:26:52   

Reply

Marsh Posté le 04-05-2006 à 15:49:47    

Je serais tenté de dire : tu ne fais pas.
Une base de données créée comme tu le laisses entendre n'est pas aux normes et ne mérite pas d'exister ! :p
 
Ensuite, et pour éviter toute ambiguité auprès des débutants passant lire ce sujet, « INNER JOIN » et « VB » n'ont rien à voir l'un avec l'autre.
Soit tu dis que tu bosses sous Access (VBA), soit c'est du VB5/6 avec une base de données Access/SQL/Oracle/MySQL/...
Mais VB n'intègre aucunement du SQL, il faut une base de données liée.
 
Ceci dit, je vais essayer de te dépanner quand même. La requête suivante devrait te donner une piste.

SELECT testtable.lib, testtable_1.lib, testtable_2.lib
FROM ((testvente INNER JOIN testtable ON testvente.ref1 = testtable.ref) INNER JOIN testtable AS testtable_1 ON testvente.ref2 = testtable_1.ref) INNER JOIN testtable AS testtable_2 ON testvente.ref3 = testtable_2.ref;


Le principe est de lier 3x la même table sous des noms (alias) différents pour lire les libellés des 3 ref de tes ventes.


Message édité par tegu le 04-05-2006 à 15:51:42
Reply

Marsh Posté le 04-05-2006 à 18:59:27    

ok ca marche.
 
Le problème est autre maintenant :d
 
Je rajoute cette fonction sur une BD existante.  Donc il y a déjà des enregistrements.
 
Pour les nouveaux enregistrements, il suffira d'encoder les références et la dénomination produit adéquate sera imprimée par le formulaire.  Par contre,  plus moyen de séléctionner les anciennes factures vu qu'aucune référence n'a jamais été encodée (mais plûtot le nom entier du produit).
 
Y a pas moyen de faire un truc du style:
 
Si reference non trouvée dans la table produit, alors imprimer le nom entier déjà encodé. Sinon, imprimer la dénomation relative à la référence de la table produits..
 
Compliqué je sais :d

Reply

Marsh Posté le 04-05-2006 à 20:13:04    

Essaye ça :
les # correspondent à des relations que tu crées depuis la fenetre "relations"
coté # c'est une relation 1, de l'autre coté, c'est une relation "à plusieurs"
Avant de chercher des résultats, les tables TbProd, TbPrix et TbCategorie doivent être remplies mais tu pourras modifier leurs valeurs par la suite (gros avantage)
Tu peux evidemment inserer un client dans ta table TbClients pour tester la requête expliquée ci-après.
 
 
TbClients :
Index_nom_Client ==>AutoNumber  + clé primaire
Nom_Client ==> Text (Dupont, Marcel...)
Index_code_Produit ==> Numérique + # depuis TbProd / Code_Produit
 
TbProd :  
Index_nom_Produit ==>AutoNumber  + clé primaire
Index_prix_Produit ==> Numérique + # depuis TbPrix
Nom_Produit ==> Text (exemple chips allégées paquet 250 gr, cigarettes Marlbarré par 20,...)
Code_Produit ==> Text (exemple 0a0d01, 02z1d5, 51q4c2...)
Index_categorie_Produit ==> Numérique + # depuis TbCategorie / Index_categorie_Produit
 
TbPrix :
Index_Prix_Produit ==>AutoNumber  + clé primaire
Prix_Produit ==> Numérique monnaie (15€,...)
 
TbCategorie :
Index_categorie_Produit ==>AutoNumber  + clé primaire
Type_catégorie ==> Text (exemple alimentaire, vetements, alcools...)
 
=========================================================
 
RqMASTER
Index_Master ==>AutoNumber  + clé primaire
Nom_Client ==>
Code_Produit ==>
Nom_Produit ==>
Type_catégorie ==>
Prix_Produit ==>
 
Cette table est une requête dans laquelle tu incorpores les champs correspondants (listés ci-dessus) à partir de chacune de tes tables.
Attention, avant d'affecter un produit à un client, il faut être sur que les catégories, codes prix et autres existent.
 
Voila. j'espère que ca t'aura aidé un peu...
 


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed