[VBA] pb avec INSERT INTO
Fermé
fredo91170
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
31 juillet 2007
-
11 oct. 2006 à 15:53
biskott - 22 févr. 2008 à 20:27
biskott - 22 févr. 2008 à 20:27
4 réponses
monSQL = "Insert Into T_maTable(MonChamp1, monChamp2) Values ('Valeur1',Valeur2')"
Il faut que tu aies le même nombre de valeur que de champ. Comme tu le vois, tes champs sont délimité par un quote et une virgule : il faut donc que tes valeurs ne contiennent pas de quote (') - on y remédie en doublant le quote pour que l'instruction SQL ne l'interprete pas comme un quote de fin de champ.
Dans ton cas, il y a surement une erreur soit dans l'écriture (9 champs alors qu'il n'y en a que 8) soit dans les données (il y a un null et tu n'as pas mis de quote).
Il faut que tu aies le même nombre de valeur que de champ. Comme tu le vois, tes champs sont délimité par un quote et une virgule : il faut donc que tes valeurs ne contiennent pas de quote (') - on y remédie en doublant le quote pour que l'instruction SQL ne l'interprete pas comme un quote de fin de champ.
Dans ton cas, il y a surement une erreur soit dans l'écriture (9 champs alors qu'il n'y en a que 8) soit dans les données (il y a un null et tu n'as pas mis de quote).
Peut-êtreUneRéponse
Messages postés
47
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
5 décembre 2006
11
11 oct. 2006 à 15:59
11 oct. 2006 à 15:59
Rajoute le nom des champs d'où proviennent tes données après le terme values:
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values <ici>"
Dans le même ordre que les champs de la table FINAL énumérés après le INSERT TO FINAL.
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values <ici>"
Dans le même ordre que les champs de la table FINAL énumérés après le INSERT TO FINAL.
fredo91170
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
31 juillet 2007
11 oct. 2006 à 16:12
11 oct. 2006 à 16:12
Desole mais je viens de faire ce que tu ma dis:
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values ([Opé],[Date opé],Lp,Titre,Raison,Qte,Mt,Prime,Plan)"
mais il bug toujours en me disant:
"too few parameters. Expected 9"
tu sais pourquoi?
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values ([Opé],[Date opé],Lp,Titre,Raison,Qte,Mt,Prime,Plan)"
mais il bug toujours en me disant:
"too few parameters. Expected 9"
tu sais pourquoi?
Peut-êtreUneRéponse
Messages postés
47
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
5 décembre 2006
11
11 oct. 2006 à 16:23
11 oct. 2006 à 16:23
Ta table FINAL contient-elle d'autres colonnes que celles que tu alimentes?
Si oui tu dois aussi les renseigner... avec des valeurs par défaut par exemple.
Si oui tu dois aussi les renseigner... avec des valeurs par défaut par exemple.
fredo91170
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
31 juillet 2007
11 oct. 2006 à 16:55
11 oct. 2006 à 16:55
c'est le cas mais dans ma table d'origine j'ai 13 champs et dans celle de destination j'en ai 35
Alors comment le gerer
Alors comment le gerer
Peut-êtreUneRéponse
Messages postés
47
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
5 décembre 2006
11
11 oct. 2006 à 17:03
11 oct. 2006 à 17:03
Il faut que tu renseignes une valeur par défaut pour les colonnes supplémentaires de la table FINAL (35 - 9 = 26 valeurs par défaut)
Ou alors tu modifies le DDL de ta table et tu fais en sorte que les colonnes soit NULL WITH DEFAULT
Ou alors tu modifies le DDL de ta table et tu fais en sorte que les colonnes soit NULL WITH DEFAULT