Erreur au cours d'insertion d'un enregistrement à une table access
bnTaher
Messages postés4Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention13 décembre 2012
-
4 oct. 2012 à 11:09
bnTaher
Messages postés4Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention13 décembre 2012
-
4 oct. 2012 à 12:20
bonjour !!
j'ai un pb lors d'insert un nouveau enregistrement
j'ai une bd en Access et mon travail en vb 2010
l’insertion s'effectue mé il m'affiche un erreur
mon code c :
Private Sub enregistre_saisi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles enregistre_saisi.Click
'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne
cnxstr "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\atelier.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
For i = 0 To Me.DataGridView1.RowCount - 1
'Création de la requête sql
sql = "select * from saisi"
'Création de la commande et on l'instancie (sql)
cmd = New OleDbCommand(sql)
'Création du dataadapter (dta) et on l'instancie (cmd)
dta = New OleDbDataAdapter(cmd)
'On instancie la commande (cmd) à la connection (cnx)
cmd.Connection() = cnx
'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
dta.Fill(dts, "saisi")
'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)
dtt = dts.Tables("saisi")
'crátion d'une nouvelle ligne avec les données des textbox
dtr = dts.Tables("saisi").NewRow
dtr("chaine") = Me.TextBox2.Text()
dtr("dat_sai") = Me.TextBox3.Text()
dtr("cod_art") = Me.TextBox4.Text()
dtr("qte_pro_feuille") = Me.TextBox5.Text()
dtr("cod_anc") = Me.DataGridView1.Rows(i).Cells("num_ouv").Value.ToString()
dtr("nbr_heur_ouv") = Me.DataGridView1.Rows(i).Cells("nbre_heur").Value.ToString()
'ajout de la ligne dans le DataSet
dts.Tables("saisi").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)
dta.Update(dts, "saisi")
'on vide le dataset pour le recréer avec les nouvelles données
dts.Clear()
dta.Fill(dts, "saisi")
dtt = dts.Tables("saisi")
Next
MsgBox("saisi est inséré")
End Sub
----------------------------------------------
mon erreur c'est "La référence d'objet n'est pas définie à une instance d'un objet." à l'instruction suivante "Me.DataGridView1.Rows(i).Cells("num_ouv").Value.ToString()"
voila en esperant une "oreille" attentive
merci a vous en tt k
A voir également:
Erreur au cours d'insertion d'un enregistrement à une table access
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 4 oct. 2012 à 11:58
Salut
Dommage que tu aies supprimé la balise de fin de code VB.
Pense à faire une prévisualisation de ta question avant de la poster.
Le champ "cod_anc" existe t-il dans ta dt ?
La ligne n° "i" existe t-elle dans la DataGridView1 ?
La colonne "num_ouv" existe t-elle dans la DataGridView1 ?
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)