Modificar datos en Data Grid

tyloya
18 de Agosto del 2004
HOla
Tengo un datagrid, donde muestro productos y precios. Quiero que el usuario pueda modificar el precio a través del datagrid, y que al mismo cambiar el precio en una celda del datagrid, cambie la celda que tiene al lado (cálculos ).
Qué propiedades debo tener en cuenta
Gracias

Bartolom
18 de Agosto del 2004
Debes utilizar el evento BeforeUpdate, este evento se ejecuta justo en el instante previo a actualizar el registro. Por lo tanto, si cambias el valor del precio, colocas una instrucción en la cual cambie el valor de la otra celda.
Ejemplo:

Private Sub DataGrid1_BeforeUpdate(Cancel As Integer)
DataGrid1.Columns(n).Value =TuValor
End Sub

donde n corresponde al índice de la columna de la celda que quieres modificar, no la del precio(0 para la primera, 1 para la segunda y así) y TuValor corresponde al valor de los cálculos qe quieres para tu celda.

Más específico aún, puedes utilizar el evento BeforeColUpdate, donde acá especificas el índice de la columna, por lo tanto se producirá sólo en caso de que modifiques determinada celda y no el registro completo, como en el caso anterior. El evento es así

Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)

End Sub

Donde ColIndex corresponde al índice de la columna precio y oldvalue correponde al valor anterior de la columna precio, en caso de que quieras utilizarlo para algún cálculo antes de sobreescribirlo. Y obviamente debes agrgarle la instrucvción que además modifique el valor de la otra celda.
Consulta además la ayuda de MSN Library, ahí también se explica esto claramente.

Saludos!
Bartolom
Chile

tyloya
18 de Agosto del 2004
Muchas gracias Bartolom, eso era lo que necesitaba.

mauriciog
18 de Agosto del 2004
hola disculpa me podrias enviar algun ejemplo porfabor es que estoy muy aproblemado en esto
dede ante mano muchas gracias
mail
[email protected]
gracias

mvallejos
18 de Agosto del 2004
Un consejo

No permitas que el usuario modifique datos en un datagrid, van a arruinar todos los datos tarde o temprano.
Intenta implementar un formulario para modificaciones y/o agregado de datos, donde puedas
hacer las validaciones necesarias, cosa que el DataGrid no hace.
Otro tema, si tu Base es SQL Server, hay formad de definir campos de una tabla como producto de operaciones con otrs campos, por ejemplo un total cuyo defaultValue es la sumatoria de otros campos de la misma tabla. esto tiene actualización automática.