Message d'erreur "probleme de syntaxe dans Insert Into

zandb69 Messages postés 2 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 7 mai 2009 - 6 mai 2009 à 15:12
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 7 mai 2009 à 10:36
Voilà, j'ai une application a réalisé en visual basic. J'ai réaliser une requete SQL pour ajouter dans une base de donnée access aucun probleme. Je reprend la même syntaxe est là j'ai une erreur de syntaxe dans la requete sql mais je ne l'a trouve pas. Pourriez vous m'expliquez svp Merci

Voici la requete:
[code]
Mycommand.CommandText = ("Insert into t_classe(Annee,Section,Taille) values('" + TbAnnée.Text & "','" & TbSection.Text & "','" & TbTaille.Text & "')")
[\code]

8 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
6 mai 2009 à 15:19
VB6 ?

Option Explicit

Public Function Pure(S As String) As String
Pure = Replace(S, "'", "''")
End Function

Public Function PureNum(S As String) As Long
On Error Resume Next
PureNum = CInt(S)
End Function

''''''
Dim SQL As String
SQL = "Insert into t_classe(Annee,Section,Taille) values("
SQL = SQL & "'" + PureNum(TbAnnée.Text) & "','" & Pure(TbSection.Text) & "','" & PureNum(TbTaille.Text) & "')"
MyConnection.Execute SQL
''''''
, ----
[code.aspx?ID=41455 Syntax color by Renfield]
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
6 mai 2009 à 15:20
Oups ... mon indentation est passée du côté obscur :

Option Explicit

Public Function Pure(S As String) As String
 Pure = Replace(S, "'", "''")
End Function

Public Function PureNum(S As String) As Long
 On Error Resume Next
 PureNum = CInt(S)
End Function

''''''
Dim SQL As String
SQL = "Insert into t_classe(Annee,Section,Taille) values("
SQL = SQL & "'" + PureNum(TbAnnée.Text) & "','" & Pure(TbSection.Text) & "','" & PureNum(TbTaille.Text) & "')"
MyConnection.Execute SQL
''''''
, ----
[../code.aspx?ID=41455 Syntax color by Renfield]
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mai 2009 à 16:04
si c'est numérique, pourquoi mettre des ' ?

^^
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
6 mai 2009 à 17:12
Oups :

''''''
Dim SQL As String
SQL = "Insert into t_classe(Annee,Section,Taille) values("
SQL = SQL & PureNum(TbAnnée.Text) & ",'" & Pure(TbSection.Text) & "'," & PureNum(TbTaille.Text) & ")"
MyConnection.Execute SQL
''''''
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 mai 2009 à 20:51
Si TbTaille représente un nombre à virgule, ATTENTION aux paramètres régionnaux de la machine.

Ce nombre, converti en chaine, doit avoir un point en séparateur décimal et non pas une virgule !!!

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 mai 2009 à 00:30
exact. utilisons en ce cas Str$

qui nous donnera une version universelle de notre valeur
0
zandb69 Messages postés 2 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 09:57
Non pas de nombre a virgule mais j'ai trouvé le probleme. Le nom d'un champ que j'utilise est un mot reserver de access :s

Désolé du dérangement.

Le mot en question est section si ca peut aidé
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 mai 2009 à 10:36
l'astuce étant de délimiter le nom de tes objets avec des ` ` ou des [ ]

et le tour est joué ^^

INSERT INTO `t_classe`(`Annee`, `Section`, `Taille`)...

ou

INSERT INTO [t_classe]([Annee], [Section], [Taille])...
0
Rejoignez-nous