Requete "insert into" avec ADO

Résolu
cs_Sandy084 Messages postés 53 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 14 juin 2006 - 2 juin 2005 à 22:04
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 3 juin 2005 à 07:47
Bonsoir,

Voila, dans ma base de données une CommandeClient peut avoir plusieurs LigneCommande.

Le probléme se pose lorsque je souhaite ajouter des CommandeClient avec une ou plusieurs LigneCommande.

J'arrive à ajouter une CommandeClient, mais pas les LigneCommande
(je suis obligé d'effectuer ma requete dans une boucle qui récupére les
Codes_articles d'une listbox que l'on désire ajouter). Mais je n'arrive
pas ajouter les LigneCommande je fais comme ca :



Dim V As Integer

Dim i As Integer

For i = 0 To List2.ListCount - 1

V = List2.List(i)

test.Caption = V

cmd.CommandText = "insert into LigneCommande
(Code_produit, quantité_commandé, prix, divers) select Code_produit,
quantité_commandé, prix, divers from Produit WHERE Code_produit like '"
& V & "' "

cmd.Execute

Next i


Ca doit venir de ma requete.

Merci.

3 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
3 juin 2005 à 07:47
Dim V As Integer
Dim i As Integer

For i = 0 To List2.ListCount - 1
Test.Caption = List2.List(i)
cmd.CommandText = "insert into LigneCommande ([Code_produit], [quantité_commandé], prix, divers) select [Code_produit], [quantité_commandé], prix, divers from Produit WHERE [Code_produit] like '" & List2.List(i) & "'"
cmd.Execute
Next i

Evites les nom de Champs à ralonge avec des _ et des accents c'est souvent source d'erreur
Sinon comme le signal jack pour les variables entier : WHERE Age = " & Val2 & ""

Ensuite avec ton Like il doit te manquer à mon avis le signe * pour rechercher tous les champs ou le Code Produit commence ou fini par List2.List(i) !!

It@li@
3
greg38bj Messages postés 83 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 17 novembre 2008
2 juin 2005 à 22:56
mes requetes sont plutôt de ce type :
excute ("insert into LigneCommande (Code_produit, quantité_commandé, prix, divers) values text1.text, text2.text, text3.text ; ")
je sais si pas si ça peut t'aider ...
@ +
greg
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 juin 2005 à 23:39
Salut
Le caractère _ est souvent mal interprété par SQL (symbole de substitution)
Chaque champ dont le nom est un peu spécial (espaces, caractères accentués, symboles spéciaux) doit être encadré par des [ et ] :

"insert into LigneCommande ([Code_produit], [quantité_commandé], ...

Si 'Code_Produit' est de type numérique dans ta DB, il ne faut pas encadrer la valeur par des ' (rien pour les chiffres)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous