Problème de sauvegarde DataGridView -> Access

Signaler
Messages postés
2
Date d'inscription
jeudi 10 octobre 2013
Statut
Membre
Dernière intervention
11 octobre 2013
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

J'ai un programme VB.NET (développé avec VB 2010 Express) qui lit une table (Programme) Access (Office 2007) que je visualise dans un DataGridView (DGV_Programme).

' Chargement des données dans la table PB15DataSet.Programme
ProgrammeTableAdapter.Fill(Me.PB15DataSet.Programme)

J'ai un DataSet (PB15DataSet), un TableAdapter (ProgrammeTableAdapter) et une BindingSource (ProgrammeBindingSource).

La lecture et le Fill du DataGridView ne posent aucun problème, par contre, là où ça se gâte, c'est une fois des modifications réalisées dans le DataGridView pour les sauvegarder dans Access.

Le code suivant ne renvoie pas d'exception mais n'impact pas ma base non plus?
Try
Me.Validate()
Me.ProgrammeBindingSource.EndEdit()
Me.ProgrammeTableAdapter.Update(Me.PB15DataSet.Programme)
MsgBox("Modifications sauvegardées", MsgBoxStyle.Exclamation, Confirm)
Catch ex As Exception
MsgBox("Erreur, Programme NON sauvegardé!!!", MsgBoxStyle.Critical, Confirm)
End Try

J'ai trouvé beaucoup de topics sur de nombreux forums à ce sujet mais pas de réponse qui pourraient m'aider.
Que peut-il bien se passer? Si au moins ma base répondait qu'elle n'accepte pas l'écriture
D'avance merci pour votre aide.

3 réponses

Messages postés
56
Date d'inscription
samedi 21 février 2009
Statut
Membre
Dernière intervention
16 novembre 2019
1
avant d'appeler la méthode Update de ton dataAdpter il faut créer un objet CommanBuilder
dim cmdb as new oledb.oledbCommandBuilder(PB15DataSet)
ça devrai enregistrer tes modifications dans ta base
Messages postés
2
Date d'inscription
jeudi 10 octobre 2013
Statut
Membre
Dernière intervention
11 octobre 2013

Salut, Merci pour ta réponse,

ça ne fonctionne pas pour un problème de typage? :
Impossible de convertir un DataSet en OleDbDataAdapter
Ce qui m'inquiète le plus c'est que je n'ai pas grand chose d'OleDB à part ma : connectionStrings
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\PB15.accdb" providerName="System.Data.OleDb"

dans mon code...
Tout mes objets sont issus de la boîte à outils et ont été glissé et configurés sur ma Form.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

Poste ton code en utilisant la coloration syntaxique 4 iem icon
essaie

Try 
   Me.ProgrammeBindingSource.EndEdit() 
   If Me.PB15DataSet.HasChanges Then
          Me.ProgrammeTableAdapter.Update(Me.PB15DataSet.Programme) 
    End If

MsgBox("Modifications sauvegardées", MsgBoxStyle.Exclamation, Confirm) 
Catch ex As Exception 
MsgBox("Erreur, Programme NON sauvegardé!!!", MsgBoxStyle.Critical, Confirm) 
me.validate 
End Try 


mets un point d'arret F9 à la ligne If MyDataSet.HasChanges
lance ton prog effectue une modification à la datagrid
et continue ensuite pas à pas
le If MyDataSet.HasChanges est executé ?