bruce207
Messages postés106Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 2 mai 2012
-
6 avril 2008 à 19:12
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 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
bruce207
Messages postés106Date d'inscriptionmardi 4 mars 2008StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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)