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
3983
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
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
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
3983
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