No puedes usar el mismos recordset para conectar el DataGrid y actualizar los datos en la mismo intante.
En tu código no veo que uses dos RecordSet, te recomiendo que generes una consulta UPDATE y que la ejecutes en otro Recordset para que no afectes el DataGrid.
Saludes