Verbe de commande non reconnu

drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007 - 22 mai 2006 à 13:50
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007 - 23 mai 2006 à 08:14
Bonjour,
Je me permet d'ecrireune question bete mais dont je n'arrive pas à trouver la solution :

Je génére une requête SQL Insert into à partir des paramètres de l'utilisateur dans une variable string.

Dim insert_into as string

insert_into = xxxxxxxxxxxxx

con.execute insert_into

Lorsque j'execute cette requete, il m'affiche l'erreur de Verbe de commande non reconnu.
Si j'écris la valeur de cette variable dans un fichier texte et que je fais un copier coller de la valeur en lieu et place de la variable insert into, il m'execute alors ma requete.

Je n'arrive pas à trouver pourquoi il ne veut pas exécuter la commande quand elle est stockée dans ma variable.

Ci-dessous la ligne de commande qui fonctionne en brut, si je met cette ligne dans une variable juste avant et que j'execute la variable, ça plante :

Si quelqu'un voit l'erreur de synthaxe qui creve sans doute les yeux merci beaucoup.

Pierre

"INSERT INTO
cibconc(numcons,numact,numacto,nomcons,cimetiere,natacte,natcons,consdim,datdebut,datfin,duree,datechea,reprise,relance,numrecu,datrecu,coutconc,observ,dcreacon,dmajcon) VALUES ('" & Me.RSiGrid.CellValue(i, 1) & "','" & Me.RSiGrid.CellValue(i, 1) & "','" & Me.RSiGrid.CellValue(i, 1) & "','" & Me.RSiGrid.CellValue(i, 1) & "','" & Me.RSiGrid.CellValue(i, 1) & "','" & Me.RSiGrid.CellValue(i, 1) & "','" & null_texte & "','" & null_texte & "'," & "ctod('" & Me.RSiGrid.CellValue(i, 3) & "')" & "," & "ctod('" & Me.RSiGrid.CellValue(i, 3) & "')" & ",'" & null_texte & "'," &" ctod('00/00/0000') " & ",'" & null_texte & "','" & null_texte & "','" & null_texte & "'," &" ctod('00/00/0000') " & "," & val(0) & ",'" & null_texte & "'," &" ctod('00/00/0000') " & "," &" ctod('00/00/0000') " & ")"

2 réponses

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
22 mai 2006 à 20:34
Salut
Je n'ai pas détaillé ta longue requète SQL, mais au premier regard, il y a des trucs bizarres :
- Respecte bien les espaces entre les mots clés (comme les &)
- A la fin de ta chaine, par exemple, on voit :   /00/0000') "& "," &" ctod('00/00/0000') "& ")" 
  A mon avis, il y a (au moins) 3 " en trop
 
Pour y voir plus clair, découpe ta chaine proprement, genre :
SQL = "Insert Into maTable " & _
            "(liste des champs) " & _
            "Values ('" & Me.RSiGrid.CellValue(i, 1) & "','" & _
             Me.RSiGrid.CellValue(i, 1) & "','" & _
             Me.RSiGrid.CellValue(i, 1) & "','" & _     ...
Mais VB n'accepte pas plus de 20 retour à la ligne avec les _
Donc, tu peux aussi faire :

SQL = "Insert Into maTable " & _
SQL = SQL & "(liste des champs) "
SQL = SQL & "Values ('" & Me.RSiGrid.CellValue(i, 1) & "','" & _
SQL = SQL & Me.RSiGrid.CellValue(i, 1) & "','" & _
SQL = SQL & Me.RSiGrid.CellValue(i, 1) & "','" & _     ...

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

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007
23 mai 2006 à 08:14
Merci, je vais faire comme tu dis en décomposant bien tout. Il doit de toute façon y'avoir quelque chose qui l'empeche de marcher quand je met cette ligne dans une variable alors qu'elle marche lorsqu'elle est écrite en dur dans le programme.
Je voulais m'assurer que je n'oubliais pas quelque chose lorsque je transformais cette ligne en variable.

Merci

Bonne journée

Pierre
0
Rejoignez-nous