Bonjour,

Je suis débutant en VB.net et j'ai utilisé le code du Cours de Philippe Lasserre pour me connecter à ma base access et ajouter des enregistrements à une table.

Cependant, ça me met l'erreur suivante quand je clique sur le bouton pour ajouter: " La référence d'objet n'est pas définie à une instance d'un objet."

Je vous met le code que j'ai mis et mis un commentaire devant la ligne où j'ai l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
Imports System.Data
Imports System.Data.OleDb
 
Public Class Form1
    '  Déclaration Objet Connexion
    Private ObjetConnection As OleDbConnection
    ' Déclaration Objet Commande
    Private ObjetCommand As OleDbCommand
    '  Déclaration Objet DataAdapter
    Private ObjetDataAdapter As OleDbDataAdapter
    ' Déclaration Objet DataSet
    Private ObjetDataSet As New DataSet() 'Attention au New
    'String contenant la 'Requête SQL'
    Private strSql As String
    ' Déclaration Objet DataTable
    Private ObjetDataTable As DataTable
    ' Déclaration Objet DataRow (ligne)
    Private ObjetDataRow As DataRow
    'Numéro de la ligne en cours
    Private RowNumber As Integer    'Numéro de l'enregistrement courant
    'Paramêtres de connexion à la DB
    Private strConn As String
    'Pour recompiler les données modifiées avant de les remettre dans le
    '"DataAdapter"
    Private ObjetCommandBuilder As OleDbCommandBuilder
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Initialisation de la chaîne de paramètres pour la connexion
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\mto\Desktop\MINI-ERP\ERP.accdb;"
        'Initialisation de la chaîne contenant l'instruction SQL
        strSql = "SELECT Type de produit.* FROM Type de produit"
        'Instanciation d'un Objet Connexion
        ObjetConnection = New OleDbConnection()
        'Donner à la propriété ConnectionString les paramètres de connexion
        ObjetConnection.ConnectionString = strConn
        'Ouvrir la connexion
        ObjetConnection.Open()
        'Instancier un objet Commande
        ObjetCommand = New OleDbCommand(strSql)
        'Instancier un objet Adapter
        ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
        'initialiser l'objet Command
        ObjetCommand.Connection() = ObjetConnection
        'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
        ObjetDataAdapter.Fill(ObjetDataSet, "Type de produit")
        'Mettre dans un Objet DataTable une table du DataSet
        ObjetDataTable = ObjetDataSet.Tables("Type de produit")
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
 
' La référence d'objet n'est pas définie à une instance d'un objet."
        ObjetDataRow = ObjetDataSet.Tables("Type de produit").NewRow()
 
 
        ObjetDataRow("Type_de_produit") = Me.TextBox1.Text
        ObjetDataSet.Tables("Type de produit").Rows.Add(ObjetDataRow)
        'Pour modifier les valeurs changées dans le DataAdapter
        ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
        'Mise à jour
        ObjetDataAdapter.Update(ObjetDataSet, "Type de produit")
        'On vide le DataSet et on le 'recharge' de nouveau.
        ObjetDataSet.Clear()
        ObjetDataAdapter.Fill(ObjetDataSet, "Type de poduit")
        ObjetDataTable = ObjetDataSet.Tables("Type de produit")
 
    End Sub
End Class
Merci d'avance pour votre aide

Julien