Ajout d'enregistrement

bassemkhouildi Messages postés 2 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 7 septembre 2010 - 7 sept. 2010 à 16:24
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 7 sept. 2010 à 16:39
salut tout le monde j'ai un problem avec l'ajout d'une enregistrement en access,Mais j'ai un erreur en INSERT INTO ce que m'etonne que se code fait lèajout avant hier mais avec lèajout des autre fome je sais kesk se passe merci de vous m'aider
VOILA LE CODE
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic


Public Class Form1

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

End Sub

Private Sub ComboBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox4.SelectedIndexChanged
If ComboBox4.SelectedItem = "Ordinateur" Then

ComboBox7.Visible = False
Label12.Visible = False
Label14.Visible = True
TextBox7.Visible = True
Label13.Visible = True
TextBox5.Visible = True
TextBox2.Visible = True
Label5.Visible = True
ComboBox2.Visible = True
Label9.Visible = True


Else

ComboBox7.Visible = True
Label12.Visible = True
Label14.Visible = False
TextBox7.Visible = False
Label13.Visible = False
TextBox5.Visible = False
TextBox2.Visible = False
Label5.Visible = False
ComboBox2.Visible = False
Label9.Visible = False
End If


End Sub
'Déclaration de la variable pour la connection
Private cnx As OleDbConnection

'Déclaration de la variable pour la commande
Private cmd As OleDbCommand

'Déclaration de la variable pour le dataadapter

Private dta As OleDbdataAdapter

'Déclaration de la variable pour le dataset
Private dts As New DataSet

'Déclaration de la variable pour la requête
Private sql As String

'Déclaration de la variable pour la datatable
Private dtt As DataTable

'Déclaration de la variable pour le datarow
Private dtr As DataRow

'Déclaration de la variable pour le Nº de l'enregistrement
Private rownum As Integer

'Déclaration de la variable pour la connectionstring
Private cnxstr As String

'Déclaration de la variable pour le commandbuilder
Private cmdb As OleDbCommandBuilder
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'Ouverture de la connexion (à partir du répertoire de l'application) sur la même ligne
cnxstr "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\Ma_Base.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
Catch ex As Exception
MessageBox.Show("error" & ex.Message)
End Try

sql = "select fiche.* from fiche"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "fiche")
dtt = dts.Tables("fiche")

End Sub

Private Sub ComboBox4_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox4.SelectedValueChanged

End Sub

Private Sub ComboBox7_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox7.SelectedIndexChanged

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ComboBox7.Text = Nothing
ComboBox5.Text = Nothing
ComboBox1.Text = Nothing
ComboBox2.Text = Nothing
ComboBox3.Text = Nothing
ComboBox4.Text = Nothing
ComboBox6.Text = Nothing
TextBox7.Clear()
TextBox2.Clear()
TextBox5.Clear()
TextBox1.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox6.Clear()
ComboBox7.Visible = True
Label12.Visible = True
Label14.Visible = True
TextBox7.Visible = True
Label13.Visible = True
TextBox5.Visible = True
TextBox2.Visible = True
Label5.Visible = True
ComboBox2.Visible = True
Label9.Visible = True
TextBox7.Visible = True

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Close()
End Sub

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

'crátion d'une nouvelle ligne avec les données des textbox
dtr = dtt.NewRow()
dtr("champ1") = Me.ComboBox4.Text
dtr("champ2") = Me.ComboBox5.Text
dtr("champ3") = Me.TextBox3.Text
dtr("champ4") = Me.TextBox4.Text
dtr("champ5") = Me.TextBox1.Text
dtr("champ6") = Me.TextBox7.Text
dtr("champ7") = Me.TextBox2.Text
dtr("champ8") = Me.TextBox5.Text
dtr("champ9") = Me.TextBox6.Text
dtr("champ10") = Me.ComboBox2.SelectedItem
dtr("champ11") = Me.ComboBox1.SelectedItem
dtr("champ12") = Me.ComboBox3.SelectedItem
dtr("champ13") = Me.ComboBox7.SelectedItem
dtr("champ14") = Me.ComboBox6.SelectedItem
'ajout de la ligne dans le DataSet
dts.Tables("fiche").Rows.Add(dtr)

'création et exécution du commandbuilder pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)

'mise à jour des données du dataadapter(dta)à partir du commandbuilder (cmdb)

dtt = dts.Tables("fiche")
dta.Update(dts, "fiche")

'on vide le dataset pour le recréer avec les nouvelles données
dts.Clear()
dta.Fill(dts, "fiche")

dts.AcceptChanges()
MsgBox("Fiche ajoutée")
End Sub

Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub

Private Sub ComboBox5_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox5.SelectedIndexChanged

End Sub
End Class

1 réponse

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
7 sept. 2010 à 16:39
Bonjour,

Avec la coloration syntaxique, ce serait nettement plus clair ...

Sinon, Tu ouvre une connexion par form ?

Ensuite, dans cette sub :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'crátion d'une nouvelle ligne avec les données des textbox
dtr = dtt.NewRow()
dtr("champ1") = Me.ComboBox4.Text
dtr("champ2") = Me.ComboBox5.Text
dtr("champ3") = Me.TextBox3.Text
dtr("champ4") = Me.TextBox4.Text
dtr("champ5") = Me.TextBox1.Text
dtr("champ6") = Me.TextBox7.Text
dtr("champ7") = Me.TextBox2.Text
dtr("champ8") = Me.TextBox5.Text
dtr("champ9") = Me.TextBox6.Text
dtr("champ10") = Me.ComboBox2.SelectedItem
dtr("champ11") = Me.ComboBox1.SelectedItem
dtr("champ12") = Me.ComboBox3.SelectedItem
dtr("champ13") = Me.ComboBox7.SelectedItem
dtr("champ14") = Me.ComboBox6.SelectedItem
'ajout de la ligne dans le DataSet
dts.Tables("fiche").Rows.Add(dtr)

'création et exécution du commandbuilder pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)

'mise à jour des données du dataadapter(dta)à partir du commandbuilder (cmdb)

dtt = dts.Tables("fiche")
dta.Update(dts, "fiche")

'on vide le dataset pour le recréer avec les nouvelles données
dts.Clear()
dta.Fill(dts, "fiche")

dts.AcceptChanges()
MsgBox("Fiche ajoutée")
End Sub


Tu définit cmdb sans l'utiliser.

Mon site
0
Rejoignez-nous