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.OleDbDataAdapterUne des colonnes affichées est un compteur (champ number ds la base)
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
En sélectionnant une ligne et en appuyant sur un bouton, je voudrais remettre à zéro ce champs:
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é.
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
Merci d'avance pour vos réponses.
Partager