Bonjour le Forum,
Bon je manipule un DatagridView que l'utilisateur remplie en fonction de critères de sélection. Un foi le datagridView remplit, il peut modifier ou pas le contenue du datagridView directement dessus. Si il le modifie, je sais que le DataSet est mis a jour automatiquement car le DataGridView et le DataSet sont liés. Maintenant, je voudrais répercuter les modification dans ma Base Access.
Pour cela je fais ça:
Mais ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 'J'ouvre la connection avec ma Base Access CsV.strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data source = C:\Documents and Settings\vratouis\Desktop\Time Tracking\Base2.accdb" Dim cn As New OleDbConnection(CsV.strconn) cn.Open() adp.Update(ds, "MaTable") cn.Close()
Pourtant j'ai suivi le cours de Mr Plasserre qui dit, dans le Chapitre 6-6 Partie B "Remplir un DataGrid avec Base de Données via un DataSet", que pour mettre a jour la base access si on fait une modification dans le DataGrid il faut mettre tout simplement dans le bouton mise a jour juste cette ligne:
Qd je lance mon code j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ObjetDataAdapter.Update(ObjetDataSet, "NomDataTable")
Donc j'en conclue d'après ce message d'erreur qu'il faut redéclarer un objet Commande et de le passer en argument au OleDbAdapter. Mais le problème si je déclare un objet Command il faut que je lui passe en paramètre une requête SQL et ma connexion. Mais je n'ai pas de requête... Donc comment je fais?
Code : Sélectionner tout - Visualiser dans une fenêtre à part OleDbCommand.Prepare method requires all parameters to have an explicitly set type.
Voici le code avec les déclarations mais incomplètes:
Et en compilant j'ai ce message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CsV.strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data source = C:\Documents and Settings\vratouis\Desktop\Time Tracking\Base2.accdb" Dim cn As New OleDbConnection(CsV.strconn) ' Dim comm As New OleDbCommand('????????) adp = New OleDbDataAdapter '(la normalement il doit y avoir comm) builder = New OleDbCommandBuilder(adp) cn.Open() adp.Update(ds, "XL") cn.Close()
Mais comment l'initialiser?
Code : Sélectionner tout - Visualiser dans une fenêtre à part The DataAdapter.SelectCommand property needs to be initialized.
Le pire c'est que dans tous les sites internet que j'ai visité, il disent tous il faut juste mettre
Mais ça ne marche pas.... C'est a n'y rien comprendre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part MondataAdapter.Update(MonDataSet, "MaDataTable")
J'ai certainement pas du comprendre un truc...
Donc si quelqu'un pouvait me mettre sur la bonne voie je lui en serai tres reconnaissant.
Merci d'avance et bonne journée.
Cordialement,
Vincent
Partager