Erreur de syntaxe dans l'instruction insert into[urgent svp]
moonirzar
Messages postés3Date d'inscriptionvendredi 19 mars 2010StatutMembreDernière intervention30 juin 2010
-
29 juin 2010 à 00:15
moonirzar
Messages postés3Date d'inscriptionvendredi 19 mars 2010StatutMembreDernière intervention30 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 = "البيانات1 "
DataGridView1.Columns(1).HeaderText = "اساس الخصم1"
DataGridView1.Columns(2).HeaderText = "النسبة1"
DataGridView1.Columns(3).HeaderText = "مبلغ الخصم1"
DataGridView1.Columns(4).HeaderText = "البيانات2 "
DataGridView1.Columns(5).HeaderText = "اساس الخصم2"
DataGridView1.Columns(6).HeaderText = "النسبة2"
DataGridView1.Columns(7).HeaderText = "مبلغ الخصم2"
DataGridView1.Columns(8).HeaderText = "البيانات31 "
DataGridView1.Columns(9).HeaderText = "اساس الخصم31"
DataGridView1.Columns(10).HeaderText = "النسبة31"
DataGridView1.Columns(11).HeaderText = "مبلغ الخصم31"
DataGridView1.Columns(12).HeaderText = "البيانات32 "
DataGridView1.Columns(13).HeaderText = "اساس الخصم32"
DataGridView1.Columns(14).HeaderText = "النسبة32"
DataGridView1.Columns(15).HeaderText = "مبلغ الخصم32"
DataGridView1.Columns(16).HeaderText = "البيانات33 "
DataGridView1.Columns(17).HeaderText = "اساس الخصم33"
DataGridView1.Columns(18).HeaderText = "النسبة33"
DataGridView1.Columns(19).HeaderText = "مبلغ الخصم33"
DataGridView1.Columns(20).HeaderText = "البيانات34 "
DataGridView1.Columns(21).HeaderText = "اساس الخصم34"
DataGridView1.Columns(22).HeaderText = "النسبة34"
DataGridView1.Columns(23).HeaderText = "مبلغ الخصم34"
DataGridView1.Columns(24).HeaderText = "البيانات4 "
DataGridView1.Columns(25).HeaderText = "اساس الخصم4"
DataGridView1.Columns(26).HeaderText = "النسبة4"
DataGridView1.Columns(27).HeaderText = "مبلغ الخصم4"
DataGridView1.Columns(28).HeaderText = "البيانات5 "
DataGridView1.Columns(29).HeaderText = "اساس الخصم5"
DataGridView1.Columns(30).HeaderText = "النسبة5"
DataGridView1.Columns(31).HeaderText = "مبلغ الخصم5"
DataGridView1.Columns(32).HeaderText = "البيانات6 "
DataGridView1.Columns(33).HeaderText = "اساس الخصم6"
DataGridView1.Columns(34).HeaderText = "النسبة6"
DataGridView1.Columns(35).HeaderText = "مبلغ الخصم6"
DataGridView1.Columns(36).HeaderText = "البيانات71 "
DataGridView1.Columns(37).HeaderText = "اساس الخصم71"
DataGridView1.Columns(38).HeaderText = "النسبة71"
DataGridView1.Columns(39).HeaderText = "مبلغ الخصم71"
DataGridView1.Columns(40).HeaderText = "البيانات72 "
DataGridView1.Columns(41).HeaderText = "اساس الخصم72"
DataGridView1.Columns(42).HeaderText = "النسبة72"
DataGridView1.Columns(43).HeaderText = "مبلغ الخصم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("خطأ في اضافة التصريح")
Exit Sub
End Try
DataSet.Clear()
DataAdapter.Fill(DataSet, "retmaw")
DataTable3 = DataSet.Tables("retmaw")
MessageBox.Show("تمت الاضافة بنجاح")
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 juin 2010 à 01:01
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)
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 29 juin 2010 à 01:35
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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 juin 2010 à 10:03
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.
moonirzar
Messages postés3Date d'inscriptionvendredi 19 mars 2010StatutMembreDernière intervention30 juin 2010 29 juin 2010 à 23:20
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 29 juin 2010 à 23:52
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 :
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