Enregistrer une nouvelle ligne

cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022 - 18 août 2008 à 12:36
cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022 - 20 août 2008 à 18:05
Bonjour,
Débutant alors pardon d'avance.

Je ne parviens pas a ajouter un enregistrement. j'ai a chaque fois erreur de syntaxe dans l'instruction INSERT INTO.
Connx = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\bd1.mdb"
GP = New OleDb.OleDbConnection
GP.ConnectionString = Connx
Sql = "SELECT Bon.* from Bon" 'requete sql
GP.Open()
Cmd = New OleDbCommand(Sql)
Cmd.Connection() = GP
CDSet = New DataSet
BdA = New OleDb.OleDbDataAdapter(Sql, GP)
BdA.Fill(CDSet, "Bon")

With CDSet
DTR = CDSet.Tables("Bon").NewRow() 'crátion d'une nouvelle ligne

'inserer les nouvelles données des textbox
DTR("Date") = DateLbl.Text
DTR("Fret") = Txt1.Text
DTR("Marchandise") = Txt2.Text
DTR("Transitaire") = Txt3.Text
DTR("Destinataire") = Txt4.Text
DTR("Poids") = Txt5.Text
DTR("Camion") = Txt6.Text

If Me.ChB3.Checked = True Then
DTR("Option") = ChB3.Text
End If
If Me.ChB4.Checked = True Then
DTR("Option") = ChB4.Text
End If

If ChB1.Checked = True Then
DTR("Operation") = ChB1.Text
End If
If Me.ChB2.Checked = True Then
DTR("Operation") = ChB2.Text
End If

.Tables("Bon").Rows.Add(DTR) 'ajout de la ligne dans le DataSet
CmdB = New OleDb.OleDbCommandBuilder(BdA) 'crée, exéc commandbuilder
BdA.Update(CDSet, "Bon") 'mise à jour des données du DataAdapter
CDSet.Clear() 'nettoyer le dataset et fermer la connection
GP.Close()
End With
MsgBox("Nouveau bon enregistré avec succès")
'Catch ex As Exception
'MsgBox("Bon non validé. Veuillez Recommencer!")
'End Try

La modification donne erreur de syntaxe dans l'instruction UPDATE.
Try
With CDSet
DTR = CDSet.Tables("tbc").Rows(RowN) 'recuperer la ligne

'modification des données
DTR("Date") = Me.DateLbl.Text
DTR("Transitaire") = Me.Txt3.Text
DTR("Poids") = Me.Txt5.Text
DTR("Marchandise") = Me.Txt2.Text
DTR("Destinataire") = Me.Txt4.Text
DTR("Fret") = Me.Txt1.Text
DTR("Camion") = Me.Txt6.Text

If Me.ChB1.Checked = True Then
ChB2.Checked = False
DTR("Operation") = Me.ChB1.Text
Else
DTR("Option") = Me.ChB2.GetType()
End If

If ChB2.Checked = True Then
ChB1.Checked = False
DTR("Option") = Me.ChB2.Text
Else
DTR("Option") = Me.ChB2.GetType()
End If

If ChB3.Checked = True Then
ChB4.Checked = False
DTR("Option") = Me.ChB3.Text
Else
DTR("Option") = Me.ChB3.GetType()
End If

If ChB4.Checked = True Then
ChB3.Checked = False
DTR("Option") = Me.ChB4.Text
Else
DTR("Option") = Me.ChB4.GetType()
End If

CmdB = New OleDb.OleDbCommandBuilder(BdA)
'bTA.UpdateCommand = CmdB.GetUpdateCommand()
BdA.Update(CDSet, "Bon") 'mise à jour des données
CDSet.Clear() 'vide le dataset pour le recréer
BdA.Fill(CDSet, "Bon")
Bon = CDSet.Tables("Bon")
MsgBox("Opération de Mise à jour Validée avec succès.")
End With
Catch ex As Exception
MsgBox("Mise à jour non validée! Veuillez Recommencer!")
End Try
End Sub

la suppression s'effectue a l'écran mais dans la base la ligne n'est pas effacer.
Dim Rep As String
Rep = MsgBox("Êtes-vous sûr de vouloir Supprimer le Bon ?", _
MsgBoxStyle.Question + MsgBoxStyle.YesNo)

If Rep = 6 Then
Try
CDSet.Tables("Bon").Rows(RowN).Delete()
CmdB = New OleDbCommandBuilder(BdA)
BdA.UpdateCommand = CmdB.GetUpdateCommand
BdA.Update(CDSet, "Bon")
CDSet.Clear()
BdA.Fill(CDSet, "Bon")
Bon = CDSet.Tables("Bon")
MsgBox("Bon supprimé avec succès.", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox("Opération de suppression non aboutie!")
End Try
End If

Aidez moi a comprendre.
Colby

1 réponse

cs_colby Messages postés 126 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 14 novembre 2022
20 août 2008 à 18:05
Bonsoir a tous.
En fait l'erreur est que j'utilise le mot "option" dans la base dès que je l'ai remplace tout marche bien.
Colby
0
Rejoignez-nous