Erreur au cours d'insertion d'un enregistrement à une table access

bnTaher Messages postés 4 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 13 décembre 2012 - 4 oct. 2012 à 11:09
bnTaher Messages postés 4 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 13 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

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
bnTaher Messages postés 4 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 13 décembre 2012
4 oct. 2012 à 12:20
cod_anc existe
i on a un boucle for
num_ouv c 1 colone de la datagridview1

est qu'est ce que ça veut dire "la balise de fin de code VB."
0
Rejoignez-nous