Erreur de syntaxe dans instruction

Résolu
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 6 avril 2008 à 19:12
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 7 avril 2008 à 20:46
Bonjour,
j'ai taper les lignes suivantes dans un bouton de command pour qu'il m'insere dans la table versement les informations à partir de textbox :
<!-- BEGIN TEMPLATE: bbcode_code -->

Private Sub Command2_Click()
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
Call Connexion(cnx)
rst.Open "INSERT INTO Versement(mat_vers, num_vers, type_vers, date, montant, mat_mem, mat_cpt) VALUES ('" & txtv(8).Text & "', '" & txtv(9).Text & "', '" & Combo2.Text & "', '" & txtv(11).Text & "', '" & txtv(10).Text & "', '" & Form1.Text1(0).Text & "', '" & Form2.Text1(0).Text & "') ", cnx, adOpenKeyset, adLockOptimistic, adCmdText
'Ferme la connexion
cnx.Close
If MsgBox("Faire un autre Versement ?", vbYesNo + vbExclamation, " NOUVEAU COMPTE !") = vbYes Then
VerseForm.Show
Else
MsgBox "Opération terminée avec succes !", vbExclamation
Exit Sub
'Ferme la feuille courante
Unload Me
End If
End Sub
mais j'ai l'erreur suivante : erreur d'éxécution '-2147217900(80040e14)':
erreur de syntaxe dans l'instruction INSERT INTO et le débogeur s'arrete et surligne la ligne en rouge
j'ai beau regardé ma syntaxe (qui je pense est correcte) mais je n'arrive pas à trouver l'erreur ni comprendre pourquoi cette erreur. Il est à remarquer que les 2 derniers champs sont alimentés par des textbox d'autres feuilles.
Merci d'avance pour votre aide


<!-- / message -->

3 réponses

bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
7 avril 2008 à 11:04
Bonjour,
en fait mon erreur vient du fait que j'ai utlisé un mot clé de access qui ici est Date après l'avoir modifier tout est rentré dans l'ordre
Merci
3
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
7 avril 2008 à 00:25
Salut
Mise en page pour y voir plus clair :
"INSERT INTO Versement(mat_vers, num_vers, type_vers, " & _
                      "date, montant, mat_mem, mat_cpt) " & _
"            VALUES ('" & txtv(8).Text & "', '" & _
                          txtv(9).Text & "', '" & _
                          Combo2.Text & "', '" & _
                          txtv(11).Text & "', '" & _
                          txtv(10).Text & "', '" & _
                          Form1.Text1(0).Text & "', '" & _
                          Form2.Text1(0).Text & "') ",
Les erreurs supérieures à 256 sont des erreurs externes à VB, docn là, c'est le moteur SQL qui râle.
Je pense que la réponse est simple ... et répétée 10 fois par semaine sur le forum :
Si le type du champ est :
- Texte : On encadre avec '
- Date : On encadre avec #
- Numérique : Pas d'encadrement
A toi de faire le tri, et je pense que des champs comme num_vers ou montant ne devraient pas être encadrés ...

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
7 avril 2008 à 20:46
Réponse acceptée ?
_______________________________________________________________________
VB.NETis good ...VB6is better
0
Rejoignez-nous