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

Signaler
Messages postés
4
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
13 décembre 2012
-
Messages postés
4
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
13 décembre 2012
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
4
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
13 décembre 2012

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."