Modificar datos en Data Grid
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
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
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
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
hola disculpa me podrias enviar algun ejemplo porfabor es que estoy muy aproblemado en esto
dede ante mano muchas gracias
mail
[email protected]
gracias
dede ante mano muchas gracias
[email protected]
gracias
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.
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.
