Bonjour,
Visual Basic 2003
FrameWork : 1.1
WinXP Home SP2
Le contexte :
J'ai une DataGrid en lecture seule alimentée par une table Access. Un DataAdapter alimente un DataSet, qui lui-même est DataSource de ma grille.
A chaque sélection de ligne, j'ai une variable iLigneCourante qui reçoit la valeur présente dans CurrentRowIndex de ma grille.
J'ai un bouton qui me permet de supprimer la ligne sélectionnée. Le code de suppression est le suivant :
Mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dsMonDataSet1.Tables("ma_table").Rows(iLigneCourante).Delete()
Si je supprime les lignes en partant de la dernière, tout va bien. En revanche, si je supprime une ligne qui n'est pas la dernière, la ligne directement après n'est plus supprimable une fois ma ligne supprimée ! Pour exprimer ça dans le cas général : je ne peux plus supprimer une ligne dont la ligne précédente à été supprimée. Ce qui fait qu'à la fin je me retrouve avec une grille qui peut avoir bon nombre de lignes qui refusent d'être supprimées![]()
Pour pouvoir supprimer ces lignes je suis obligé de valider les modifications avec mon DataAdapter (da.Update(...)). Ceci fait les lignes qui n'étaient plus supprimables redeviennent accessibles à la suppression et le même problème recommence pour toutes les nouvelles lignes supprimées...
Comment puis-je résoudre ce problème ? Y'aurait-il quelque chose à faire lors de la suppression pour que ma DataGrid ne perde pas les pédales ?
Partager