Concaténer une chaine sql en VB 6

Signaler
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Bonjour tout le monde,

J'ai cette chaine SQL sous VB 6 :
sql "SELECT prix FROM taille_support WHERE ref_support IN (SELECT id from support WHERE id " & comboTailleSupport.ItemData(comboTailleSupport.ListIndex) & ") "

ça me donne ceci :

SELECT prix FROM taille_support WHERE ref_support IN (SELECT id from support WHERE id = 1)

Sous Access :

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title>Requête2</title><caption> Requête2 </caption>----
prix |----
0,2, ----
0,35, <tfoot></tfoot>

Le problème, est que je ne dois obtenir qu'un seul prix, celui qui correspond au nom de la taille et du support.

<meta http-equiv ="Content-Type" content= "text/html;charset=UTF-8" /><title>taille_support</title><caption> taille_support </caption>----
id |ref_support |nom |max_boules |prix |----
1, baquet en plastique, petit, 3, 0,2, ----
2, baquet en plastique, grand, 5, 0,35, ----
3, cornet, baby, 1, 0,1, ----
4, cornet, normal, 3, 0,2, ----
5, cornet, grand, 4, 0,25, ----
6, cornet, double, 4, 0,3, ----
7, cornet, triple, 7, 0,5, ----
8, gaufrette, ronde, 3, 0,05, ----
9, gaufrette, ovale, 4, 0,1, ----
10, panier en biscuit, panier, 4, 0,4, <tfoot></tfoot>

Est-il possible d'utiliser le résultat ici :

SELECT prix FROM taille_support WHERE ref_support IN (SELECT id from support WHERE id = 1)

et dire où le nom est égal à la variable LeNom qui contient le nom à sélectionner ?

Merci d'avance pour l'aide.

beegeezzz

9 réponses

Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Re,

J'ai un début de code mais les guillemets ne semblent pas fonctionner :
sql "SELECT nom,prix FROM taille_support WHERE taille_support.nom " &amp; "" &amp; LeNom &amp; "" &amp; " AND ref_support IN (SELECT id from support WHERE id = " &amp; comboTailleSupport.ItemData(comboTailleSupport.ListIndex) &amp; ") "


J'obtiens ceci :
SELECT nom,prix FROM taille_support WHERE taille_support.nom grand  AND ref_support IN (SELECT id from support WHERE id 2)

il manque des guillemets ici :

= grand

Je les ai pourtant mis ??!

Merci d'avance.

beegeezzzz
Messages postés
39
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
12 février 2009

bonjour a toi...
Tout d'abord le resultats de ta requete me semble bizar
en effet,tu recuper 2 valeur alors ke tu a choisi ton id comme = a 1...
or pour un id=1, le prix est de o,2
donc tu ne devrai recupoerer ke 0,2
Essaye de faire ta requete en dur...
remplace ton  "comboTailleSupport.ItemData(comboTailleSupport.ListIndex) " par 1 pour voir...

Benoit
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Bonjour,

Merci pour ta réponse.

J'ai suivi tes conseils, j'en suis arrivé à ça :
sql "SELECT nom,prix FROM taille_support WHERE taille_support.nom " &amp; """" &amp; LeNom &amp; """" &amp; " AND ref_support IN (SELECT id from support WHERE id = " &amp; comboTypeSupport.ItemData(comboTypeSupport.ListIndex) &amp; ") "


ça à l'air de fonctionner.

Merci encore.

beegeezzz
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
sinon, tu peux délimiter tes chaines par des quotes simples :

sql "SELECT `prix` FROM `taille_support` WHERE `nom '" & LeNom & "' AND `ref_support` = " & comboTypeSupport.ItemData(comboTypeSupport.ListIndex)


pas compris le role de ta sous requete... xxx IN (select id FROM WHERE id =
si tu as la valeur a tester, iunutile de rallonger le trajet ^^
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Salut,

Merci pour ta réponse.

Pour ce qui est de ta question, plusieurs nons peuvent correspondrent à double ou simple...

Je dois donc tester quel support est concerné.

Merci encore.

beegeezzz
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
oui, mais

SELECT id FROM table WHERE id = '...'

renverra '...'

pas de suprise ^^
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Comment tu l'écrirais toi ?

Voici à nouveau la chaine sql :

SELECT prix FROM taille_support WHERE ref_support IN (SELECT id from
support WHERE id = " &
comboTailleSupport.ItemData(comboTailleSupport.ListIndex) & ")

PS: il n'y a pas de balise code dans ce forum ?

beegeezzzz
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
"SELECT `prix` FROM `taille_support` WHERE `ref_support` = " & comboTailleSupport.ItemData(comboTailleSupport.ListIndex)

concernant la balise Code, elle a disparu il y a des années
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
ok mais pour une même référence (

<meta http-equiv= "Content-Type" content="text/html;charset=UTF-8" /><title>taille_support</title><caption> taille_support </caption>----
ref_support |----
baquet en plastique, ----
baquet en plastique, <tfoot></tfoot>

par exemple, on peut avoir deux prix différents :
<meta http-equiv ="Content-Type" content="text/html;charset=UTF-8" /><title>taille_support</title><caption>taille_support</caption>----
ref_support |nom |max_boules |prix |----
baquet en plastique, petit, 3, 0,2, ----
baquet en plastique, grand, 5, 0,35, <tfoot></tfoot>
 

Dommâge pour la balise code, super pour les images que l'on peut coller directement.

beegeezzz