[VBA] pb avec INSERT INTO
fredo91170
Messages postés
7
Statut
Membre
-
biskott -
biskott -
Bonjour,
Voilà comme vous pourrez le constater j'ai un petit pb pour envoyer mes données de mon Recordset dans une table "FINAL" dont les champs sont déja créer mais ne portent pas les mêmes noms que ma table d'où proviennent mes données.
Mon soucis se pose au niveau de la syntaxe INSERT INTO je crois bien.
Si une âme charitable pourrais faire quelque chose !!
MERCI
Option Compare Database
'Public SQL As String
'Public dB As Database
'Public Rs As Recordset
Sub copy()
Dim System As String
Set dB = CurrentDb
Set Rs = Nothing
SQL = "SELECT [Opé],[Date opé],Lp,Titre,Raison,Qte,Mt,Prime,Plan FROM [Sales Orders It Macro]"
Set Rs = dB.OpenRecordset(SQL)
If Rs.RecordCount > 0 Then
Rs.MoveFirst
Do Until Rs.EOF
System = Rs!LP & "." & Left(Rs!Titre, 4) & "." & Right(Rs!Titre, 3)
Rs.MoveNext
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values"
Loop
End If
End Sub
Voilà comme vous pourrez le constater j'ai un petit pb pour envoyer mes données de mon Recordset dans une table "FINAL" dont les champs sont déja créer mais ne portent pas les mêmes noms que ma table d'où proviennent mes données.
Mon soucis se pose au niveau de la syntaxe INSERT INTO je crois bien.
Si une âme charitable pourrais faire quelque chose !!
MERCI
Option Compare Database
'Public SQL As String
'Public dB As Database
'Public Rs As Recordset
Sub copy()
Dim System As String
Set dB = CurrentDb
Set Rs = Nothing
SQL = "SELECT [Opé],[Date opé],Lp,Titre,Raison,Qte,Mt,Prime,Plan FROM [Sales Orders It Macro]"
Set Rs = dB.OpenRecordset(SQL)
If Rs.RecordCount > 0 Then
Rs.MoveFirst
Do Until Rs.EOF
System = Rs!LP & "." & Left(Rs!Titre, 4) & "." & Right(Rs!Titre, 3)
Rs.MoveNext
dB.Execute "INSERT INTO FINAL (OPE,[DATE OPE],LP,[CODE PRODUIT],RAISON,[QTY ORDERED],[UNIT PRICE TTC],PRIME,PLAN) values"
Loop
End If
End Sub
A voir également:
- [VBA] pb avec INSERT INTO
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Activer touche insert sur ASUS UX32A - Forum Clavier
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).
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.
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?