Bonjour,
je me sert de se code afin de pouvoir mettre a jour une base access:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Public cn As New OleDbConnection
Dim Cmd As New OleDbCommand
Dim Dts As New DataSet
Dim Dtt As New DataTable
Dim rd As OleDbDataReader
Dim Dta As New OleDbDataAdapter(Cmd)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Dtrw As DataRow
Dim chemin As String
chemin = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= d:\essai\personel.mdb"
cn.ConnectionString = chemin
Try
'commande
cn.Open() ' ouverture de la connxion
Catch ex As Exception
MsgBox(ex.Message)
End Try
Try
Dtrw = Dts.Tables("infospers").NewRow()
Dtrw("Nom") = Txtnom.Text
Dtrw("Prenom") = txtprenom.Text '
Dtrw("Matricule") = txtmat.Text
Dtrw("Grade") = ComboBox1.Text
Dtrw("Adresse") = rtbadr.Text
Dtrw("Mail") = txtmail.Text '
Dtrw("Telpor") = txttelp.Text
Dtrw("Telfix") = txttelf.Text
Dtrw("Pap") = txtpap.Text
Dtrw("Telpapfix") = txttelfpap.Text
Dtrw("Telpappor") = txttelppap.Text
Dtrw("Datenais") = TextBox1.Text
Dts.Tables("infospers").Rows.Add(Dtrw)
CmdB = New OleDbCommandBuilder(Dta) 'Pour modifier les valeurs changées dans le DataAdapter
Dta.Update(Dts, "infospers") 'Mise à jour
'On vide le DataSet et on le 'recharge' de nouveau.
Dts.Clear()
Dta.Fill(Dts, "infospers")
Dtt = Dts.Tables("infospers")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub |
le souci est lorsque je clique sur le bouton je passe directement de la ligne
Dtrw = Dts.Tables("infospers").NewRow()
à la ligne
avec comme message dans la msgbox :
La référence d'objet n'est pas définie à une instance d'objet.
Si qq1 y voit clair.
Merci
Partager