Bonjour,

J'ai un problème de MAJ de BD Access à partir d'un Dataset.
En effet, j'ai une Base "GESTION" avec une table "Eleves" créé par code avec la technique ADOX. La table "Eleves " comporte 3 champs (IDEleves en autoincrement, NOM et PRENOM).
Je crée un datarow et l'ajoute au dataset. VB 2008 n'indique aucune erreur mais la table "Eleves" reste vide. Où est le problème ? Je suis débutant et ne trouve pas le problème depuis 3 jours...

Voici le code que j'utilise :

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
Private Sub creationBDD1()
        ' Déclaration des variables
        Dim StrConn, StrSQL As String
        Dim MonDS As DataSet
        Dim MonDA As OleDb.OleDbDataAdapter
        Dim ElevesDataRow As DataRow
        Dim ElevesCB As OleDb.OleDbCommandBuilder
        Dim ElevesDT As DataTable
 
        StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                   My.Forms.Importer.NouveauFileDialog.FileName & ";"
        StrSQL = "SELECT * FROM Eleves"
        MonDA = New OleDb.OleDbDataAdapter(StrSQL, StrConn)
        MonDS = New DataSet("Eleves")
        MonDA.Fill(MonDS)
 
        ElevesDataRow = MonDS.Tables.Item(0).NewRow
        ElevesDataRow("Nom") = "Mon nom à moi"
        ElevesDataRow("Prenom") = "Mon premier prénom"
        MonDS.Tables.Item(0).Rows.Add(ElevesDataRow)
 
        'Pour modifier les valeurs changées dans le DataAdapter
        ElevesCB = New OleDb.OleDbCommandBuilder(MonDA)
 
        'Mise à jour
        MonDS.AcceptChanges()
        MonDA.Update(MonDS)
 
        'On vide le DataSet et on le 'recharge' de nouveau.
        MonDS.Clear()
        MonDA.Fill(MonDS, "Eleves")
        ElevesDT = MonDS.Tables("Eleves")
    End Sub
Je dois précisé que la table ELEVES de la base GESTION est totalement vide. Pas d'enregistrement puisqu'elle à été créée par code.
Merci pour votre aide.