Erreur de syntaxe dans instruction [Résolu]

Signaler
Messages postés
106
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
2 mai 2012
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
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

Messages postés
106
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
2 mai 2012

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Réponse acceptée ?
_______________________________________________________________________
VB.NETis good ...VB6is better