Bonjour à tous,

Sur une form, j'ai un datagrid que je remplis au travers de oleDB:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private ds As New DataSet
    Private con As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & LireINI("Files", "path_access") & "\dep.mdb")
    Private da As OleDb.OleDbDataAdapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 'Remplissage du datagrid avec les données de la table access
        da = New OleDb.OleDbDataAdapter("select * from services", con)
        Dim dc As New OleDb.OleDbCommand
        dc.CommandText = "select * from services"
        da.UpdateCommand = dc
        da.Fill(ds)
        DataGrid1.DataSource = ds.Tables(0)
        'Blocage des fonctions ajout et édition du datagrid
        Dim cm As CurrencyManager = Me.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember)
        Dim dv As DataView = CType(cm.List, DataView)
        dv.AllowNew = False
        dv.AllowEdit = False
Une des colonnes affichées est un compteur (champ number ds la base)
En sélectionnant une ligne et en appuyant sur un bouton, je voudrais remettre à zéro ce champs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Remettre le compteur à zéro
        Dim i As Integer
        For i = 0 To ds.Tables(0).Rows.Count - 1
            If DataGrid1.IsSelected(i) Then
                Dim strRequest = "UPDATE services SET cpt = 0 WHERE service = '" & DataGrid1.Item(i, 0) & "'"
                oRecordSet = oConnection.Execute(strRequest)
            End If
        Next i
         da.update()
         DataGrid1.Refresh() 
    End Sub
Malheureusement mon affiche n'est pas actualisé. Je ne vois pas trop ce qu'il manque pour que ma mise à jour soit visible. Si je ferme et réouvre l'écran, le changement est bien affiché.

Merci d'avance pour vos réponses.