Erreur de syntaxe dans l'instruction insert into[urgent svp]

Messages postés
3
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
30 juin 2010
- - Dernière réponse : moonirzar
Messages postés
3
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
30 juin 2010
- 30 juin 2010 à 00:00
Bonjour a tous
je developpe une application pour les declarations fiscale . l'un des formulaire est composé de champs de saisie ainsi qu'un datagrid..lorsque je vx inserer des donnees une exception se produit et le datagrid afiche une erreur "erreur de syntaxe dans l'instruction insert into"
le probleme c'est que pour une autre table et un autre form ca fonctionne sans probleme:
voici un bout de mon code
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Imports System.ModuleHandle

Public Class retenue1

    Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Label17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub TextBox21_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub TextBox10_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub txt32_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        txt32.Text = (txt31.Text) * 15
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub retenue1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.MdiParent = MDIParent2
        Me.Show()
        Connextions()
        strSql = "SELECT * FROM retmaw" 'Instanciation d'un Objet Connexion
        Command = New OleDbCommand(strSql) 'Instancer un objet Commande
        DataAdapter = New OleDbDataAdapter(Command)  'Instancer un objet Adapter
        Command.Connection() = Connection 'initialiser l'objet Command
        DataAdapter.Fill(DataSet, "retmaw")
        DataTable3 = DataSet.Tables("retmaw") 'Mettre dans un Objet DataTable une table du DataSet

        If RowNumber < 0 Then Exit Sub
        If RowNumber > DataTable3.Rows.Count - 1 Then Exit Sub

        DataTable3.Columns("nuum").ColumnMapping = MappingType.Hidden

        DataGridView1.DataSource = DataTable3
        DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightCyan
        DataGridView1.RowsDefaultCellStyle.BackColor = Color.White
        With DataGridView1.ColumnHeadersDefaultCellStyle
            .BackColor = Color.Navy
            .ForeColor = Color.White
        End With
        DataGridView1.Columns(0).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;1 "
        DataGridView1.Columns(1).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;1"
        DataGridView1.Columns(2).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;1"
        DataGridView1.Columns(3).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;1"

        DataGridView1.Columns(4).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;2 "
        DataGridView1.Columns(5).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;2"
        DataGridView1.Columns(6).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;2"
        DataGridView1.Columns(7).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;2"

        DataGridView1.Columns(8).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;31 "
        DataGridView1.Columns(9).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;31"
        DataGridView1.Columns(10).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;31"
        DataGridView1.Columns(11).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;31"
        DataGridView1.Columns(12).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;32 "
        DataGridView1.Columns(13).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;32"
        DataGridView1.Columns(14).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;32"
        DataGridView1.Columns(15).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;32"
        DataGridView1.Columns(16).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;33 "
        DataGridView1.Columns(17).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;33"
        DataGridView1.Columns(18).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;33"
        DataGridView1.Columns(19).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;33"
        DataGridView1.Columns(20).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;34 "
        DataGridView1.Columns(21).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;34"
        DataGridView1.Columns(22).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;34"
        DataGridView1.Columns(23).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;34"

        DataGridView1.Columns(24).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;4 "
        DataGridView1.Columns(25).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;4"
        DataGridView1.Columns(26).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;4"
        DataGridView1.Columns(27).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;4"

        DataGridView1.Columns(28).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;5 "
        DataGridView1.Columns(29).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;5"
        DataGridView1.Columns(30).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;5"
        DataGridView1.Columns(31).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;5"

        DataGridView1.Columns(32).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;6 "
        DataGridView1.Columns(33).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;6"
        DataGridView1.Columns(34).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;6"
        DataGridView1.Columns(35).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;6"

        DataGridView1.Columns(36).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;71 "
        DataGridView1.Columns(37).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;71"
        DataGridView1.Columns(38).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;71"
        DataGridView1.Columns(39).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;71"
        DataGridView1.Columns(40).HeaderText = "&#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;72 "
        DataGridView1.Columns(41).HeaderText = "&#1575;&#1587;&#1575;&#1587; &#1575;&#1604;&#1582;&#1589;&#1605;72"
        DataGridView1.Columns(42).HeaderText = "&#1575;&#1604;&#1606;&#1587;&#1576;&#1577;72"
        DataGridView1.Columns(43).HeaderText = "&#1605;&#1576;&#1604;&#1594; &#1575;&#1604;&#1582;&#1589;&#1605;72"


    End Sub

    Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click

    End Sub

    Private Sub Panel13_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel13.Paint

    End Sub
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        DataRow2 = DataSet.Tables("retmaw").NewRow()

        DataRow2("1-Nom") = 5
        DataRow2("1-assiette") = Me.txt11.Text
        DataRow2("1-Taux") = Me.TextBox11.Text
        DataRow2("1-Mentant") = Me.txt12.Text

        DataRow2("2-Nom") = 4
        DataRow2("2-assiette") = Me.txt21.Text
        DataRow2("2-Taux") = Me.TextBox29.Text
        DataRow2("2-Mentant") = Me.txt22.Text

        DataRow2("31-Nom") = 54
        DataRow2("31-assiette") = Me.txt31.Text
        DataRow2("31-Taux") = Me.TextBox5.Text
        DataRow2("31-Mentant") = Me.txt32.Text

        DataRow2("32-Nom") = 4
        DataRow2("32-assiette") = Me.txt33.Text
        DataRow2("32-Taux") = Me.TextBox8.Text
        DataRow2("32-Mentant") = Me.txt34.Text

        DataRow2("33-Nom") = 54
        DataRow2("33-assiette") = Me.txt35.Text
        DataRow2("33-Taux") = Me.TextBox2.Text
        DataRow2("33-Mentant") = Me.txt36.Text

        DataRow2("34-Nom") = 5
        DataRow2("34-assiette") = Me.txt37.Text
        DataRow2("34-Taux") = Me.TextBox14.Text
        DataRow2("34-Mentant") = Me.txt38.Text

        DataRow2("4-Nom") = 45
        DataRow2("4-assiette") = Me.txt41.Text
        DataRow2("4-Taux") = Me.TextBox17.Text
        DataRow2("4-Mentant") = Me.txt42.Text

        DataRow2("5-Nom") = 4
        DataRow2("5-assiette") = Me.txt51.Text
        DataRow2("5-Taux") = Me.TextBox32.Text
        DataRow2("5-Mentant") = Me.txt52.Text

        DataRow2("6-Nom") = 54
        DataRow2("6-assiette") = Me.txt61.Text
        DataRow2("6-Taux") = Me.TextBox20.Text
        DataRow2("6-Mentant") = Me.txt62.Text

        DataRow2("71-Nom") = 45
        DataRow2("71-assiette") = Me.txt71.Text
        DataRow2("71-Taux") = Me.TextBox23.Text
        DataRow2("71-Mentant") = Me.txt72.Text

        DataRow2("72-Nom") = 54
        DataRow2("72-assiette") = Me.txt73.Text
        DataRow2("72-Taux") = Me.TextBox26.Text
        DataRow2("72-Mentant") = Me.txt74.Text

        DataSet.Tables("retmaw").Rows.Add(DataRow2)

        'Pour modifier les valeurs changées dans le DataAdapter

        CommandBuilder = New OleDbCommandBuilder(DataAdapter)

        Try
            'Mise à jour
            DataAdapter.Update(DataSet, "retmaw")
        Catch ex As Exception
            MessageBox.Show("&#1582;&#1591;&#1571; &#1601;&#1610; &#1575;&#1590;&#1575;&#1601;&#1577; &#1575;&#1604;&#1578;&#1589;&#1585;&#1610;&#1581;")
            Exit Sub
        End Try

        DataSet.Clear()

        DataAdapter.Fill(DataSet, "retmaw")

        DataTable3 = DataSet.Tables("retmaw")
        MessageBox.Show("&#1578;&#1605;&#1578; &#1575;&#1604;&#1575;&#1590;&#1575;&#1601;&#1577; &#1576;&#1606;&#1580;&#1575;&#1581;")
        txt11.Clear()
        TextBox11.Clear()
        txt12.Clear()
        txt21.Clear()
        TextBox29.Clear()
        txt22.Clear()
        txt31.Clear()
        TextBox5.Clear()
        txt32.Clear()
        txt33.Clear()
        TextBox8.Clear()
        txt34.Clear()
        txt35.Clear()
        TextBox2.Clear()
        txt36.Clear()
        txt37.Clear()
        TextBox14.Clear()
        txt38.Clear()
        txt41.Clear()
        TextBox17.Clear()
        txt42.Clear()
        txt51.Clear()
        TextBox32.Clear()
        txt52.Clear()
        txt61.Clear()
        TextBox20.Clear()
        txt62.Clear()
        txt71.Clear()
        TextBox23.Clear()
        txt72.Clear()
        txt73.Clear()
        TextBox26.Clear()
        txt74.Clear()

    End Sub
    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        RowNumber = DataGridView1.CurrentRow.Index

        txt11.Text = DataTable3.Rows(RowNumber).Item("1-assiette").ToString
        TextBox11.Text = DataTable3.Rows(RowNumber).Item("1-Taux").ToString
        txt12.Text = DataTable3.Rows(RowNumber).Item("1-Mentant").ToString

        txt21.Text = DataTable3.Rows(RowNumber).Item("2-assiette").ToString
        TextBox29.Text = DataTable3.Rows(RowNumber).Item("2-Taux").ToString
        txt22.Text = DataTable3.Rows(RowNumber).Item("2-Mentant").ToString

        txt31.Text = DataTable3.Rows(RowNumber).Item("31-assiette").ToString
        TextBox5.Text = DataTable3.Rows(RowNumber).Item("31-Taux").ToString
        txt32.Text = DataTable3.Rows(RowNumber).Item("31-Mentant").ToString

        txt33.Text = DataTable3.Rows(RowNumber).Item("32-assiette").ToString
        TextBox8.Text = DataTable3.Rows(RowNumber).Item("32-Taux").ToString
        txt34.Text = DataTable3.Rows(RowNumber).Item("32-Mentant").ToString

        txt35.Text = DataTable3.Rows(RowNumber).Item("33-assiette").ToString
        TextBox2.Text = DataTable3.Rows(RowNumber).Item("33-Taux").ToString
        txt36.Text = DataTable3.Rows(RowNumber).Item("33-Mentant").ToString

        txt37.Text = DataTable3.Rows(RowNumber).Item("34-assiette").ToString
        TextBox14.Text = DataTable3.Rows(RowNumber).Item("34-Taux").ToString
        txt38.Text = DataTable3.Rows(RowNumber).Item("34-Mentant").ToString

        txt41.Text = DataTable3.Rows(RowNumber).Item("4-assiette").ToString
        TextBox17.Text = DataTable3.Rows(RowNumber).Item("4-Taux").ToString
        txt42.Text = DataTable3.Rows(RowNumber).Item("4-Mentant").ToString

        txt51.Text = DataTable3.Rows(RowNumber).Item("5-assiette").ToString
        TextBox32.Text = DataTable3.Rows(RowNumber).Item("5-Taux").ToString
        txt52.Text = DataTable3.Rows(RowNumber).Item("5-Mentant").ToString

        txt61.Text = DataTable3.Rows(RowNumber).Item("6-assiette").ToString
        TextBox20.Text = DataTable3.Rows(RowNumber).Item("6-Taux").ToString
        txt62.Text = DataTable3.Rows(RowNumber).Item("6-Mentant").ToString

        txt71.Text = DataTable3.Rows(RowNumber).Item("71-assiette").ToString
        TextBox23.Text = DataTable3.Rows(RowNumber).Item("71-Taux").ToString
        txt72.Text = DataTable3.Rows(RowNumber).Item("71-Mentant").ToString

        txt73.Text = DataTable3.Rows(RowNumber).Item("72-assiette").ToString
        TextBox26.Text = DataTable3.Rows(RowNumber).Item("72-Taux").ToString
        txt74.Text = DataTable3.Rows(RowNumber).Item("72-Mentant").ToString

        TabPage1.Show()

    End Sub
End Class


a savoir que l'application est en arabe
priere de me repondre rapidement c urgent merci d'avance
Afficher la suite 

7 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut

Tout est urgent, en ce bas monde.
Tu aurais gagné du temps en ne collant que les lignes concernées par ton problème et pas nous coller une liste d'évènements vides, tes nommages de colonnes ...
Pas le courage à cette heure-ci de décortiquer tant de ligne inutiles, ça attendra demain.

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
16
0
Merci
Pourquoi cela ne fonctionne pas pour cette table ?

Perso je ne vois qu'une solution, comme jack je t'avoue qu'a cette heure j'ai pas trop envie de fouiner dans un amas de code brouillon j'ai juste pu voir que tu n'a pas saisi de requête manuellement, donc mon idée est la suivante :

Ta table ne comporte pas de clé primaire et donc le OleCommandBuilder est incapable d'auto générer une requête insert, donc il te reste à saisir "requête insert SQL", "Requête insert VB.Net" sur google ou dans le moteur de recherche de vbfrance pour avoir la suite de ma réponse.

Sur ce, bonne nuit à vous ^^


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Alors ?
Quand on précise que c'est urgent, on est là, collé à son écran, non ?

Tu n'as pas de précision supplémentaire à donner ?
Cette erreur apparait dans quelle partie du code ?
Dans Button1_Click_1 ?
Curieux nom, d'ailleurs ...

Avec les éléments que tu as donné, impossible de savoir d'où cela peut venir.
S'il te jette lors du Update, c'est peut être qu'un des (trop) nombreux champs contient du texte alors que qu'il devrait contenir un chiffre ?
Ne connaissant pas :
- le type de tes champs dans ta DB,
- le contenu de tes innombrables TextBox,
impossible de te dire quoi que ce soit.
Commenter la réponse de cs_Jack
Messages postés
3
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
30 juin 2010
0
Merci
en fait je travaille tte la journée dans un bureau ou il n y a pas d'internet donc je pe pas etre collé a mon ecran mr jack.
je sais que le code est trop long mais l'execution de l'application marche tres bien mais quand j'insere les données le message d'erreur que j'ai creer s'affiche "erreur d'ajout" et quand je regarde mon datagrid je trouve les données ajoutée mais il ya un point d'exclamation rouge sur la ligne en question m'affichant "erreur de syntaxe dans l'instruction insert into" j'ai cru que c'est une erreur dans base de donnée mais quand j'insere manuelement dans access ca marche sans probleme....merci d'avance
Commenter la réponse de moonirzar
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
16
0
Merci
Ton DataAdapter est basé sur ta requête select :

strSql = "SELECT * FROM retmaw" 'Instanciation d'un Objet Connexion
Command = New OleDbCommand(strSql) 'Instancer un objet Commande
DataAdapter = New OleDbDataAdapter(Command)  'Instancer un objet Adapter


Puis ton CommandBuilder est basé sur ton DataAdapter :

CommandBuilder = New OleDbCommandBuilder(DataAdapter)


Ta requête update sera donc basée sur ta requête select, à savoir :

UPDATE Retmaw SET 1-assiette @p1, 1-Taux@p2, 1-Mentant = @p3, 2-assiette =@P4  etc...


Je pense que, comme les champs de ta table ne sont pas conventionnels, il nécessite l'ajout de [], ce que le CommandBuilder ne détecte pas.

UPDATE Retmaw SET [1-assiette] = @p1, [1-Taux] =@p2, [1-Mentant] = @p3, [2-assiette] =@P4  etc...


Je te conseil donc d'adopter d'autres noms pour tes champs de table, si tu ne veux pas avoir à saisir tes requêtes SQL manuellement.

assiette1, taux1, mentant1 auraient été parfait !

Autre chose dans mon post précédent, je fais allusion à la clé primaire, vu le schéma de ta table, c'est bien le cas ? Elle n'a pas de clé primaire ?


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
16
0
Merci
comme les champs de ta table ne sont pas conventionnels


Je voulais dire : comme les noms des champs de ta table ne sont pas conventionnels

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
3
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
30 juin 2010
0
Merci
MERCI Je vais changer les nom de champs de ma table et essayer.
en fait j'ai une clé primaire mais elle es cache dans mon datagrid

DataTable3.Columns("nuum").ColumnMapping = MappingType.Hidden

la clé primaire("nuum") est un numero automatique generé par access.. j'ai adopté le méme code pour un autre formulaire et une autre table de ma bd et ca marche a merveille

peut etre que c'es les nom des champs je vais les changer merci encore
Commenter la réponse de moonirzar