hola:
como puedo sumar el monto de cada fila de la columna 3 de un datagrid para mostrarlo en un textbox o un label.
| |||
Re: sumar el monto de cada fila datagrid Vas recorriendo todas las filas de la columna 3 y sumándoselo a una variable que hayas establecido del tipo que convenga. int Suma int i DataGrid1.col=3 For i=0 to DataGrid1.rows - 1 DataGrid1.row=i Suma=Suma + DataGrid1.text Next label1=Suma Espero que te sirva. Un saludo |
| |||
Re: sumar el monto de cada fila datagrid creo que algo estoy haciendo mal cuando lo ejecuto me dice que el indice no esta permitido, pero si le pongo uno que me acepte ,por ejemplo el 0 que serian las piezas no hace la suma de todas formas solo envia un cero al label1.. ya estuve tratando de muchas formas y no lo consigo..haber si tu le encuetras el error.. te agradezco mucho Set MiRecordset = New ADODB.Recordset MiRecordset.Open "select piezas,producto2,total from notas_detalle where notanumero = 0", MiConexion, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = MiRecordset Dim suma As Integer Dim i As Integer DataGrid1.Col = 2 'se supone que esta seria la columna 3(total) donde estan los valores que quiero sumar For i = 0 To DataGrid1.Row - 1 DataGrid1.Row = i suma = suma + Val(DataGrid1.text) Label1 = suma Next |
| |||
Re: sumar el monto de cada fila datagrid Te has confundido al definir la salida del bucle. Fíjate bien. El bucle For va desde i=0 hasta DataGrid1.rows - 1 y no hasta DataGrid1.row -1 como tú has puesto. La diferencia está en que DataGrid1.rows te devuelve el número total de filas del DataGrid, mientras que DataGrid1.row te devuelve el índice de la fila actual, que generalmente empieza siendo 0. Un saludo |
| |||
Re: sumar el monto de cada fila datagrid hola que tal.. si, ya lo habia intentado asi.. pero no resulta, me dice que no se encontro el metodo o el miembro de datosy me selecciona el .rows -1 , se que algo estoy haciendo algo mal, pero no me doy cuenta aun.. me pregutaba yo si podria hacerlo con un select para resolver mi problema.. PERO MI DUDA ES SI SE PUEDEN HACER VARIAS CONSULTAS EN EL MISMO FORMULARIO, |
| |||
Re: sumar el monto de cada fila datagrid Por lo parecido estas realizando una misma aplicacion, bueno tu duda es si se pueden hacer varias consulta pues si si se pueden incluso en un solo boton puedes hacer 1 2 3 cuantas necesites, y si mal no estoy esta haciendo algo asi como un programa de inventario tons mira lo q yo te aconsejo es q uses listbox es mas facil. Saludos |
| |||
Respuesta: sumar el monto de cada fila datagrid Porque no pruebas haciendo una función que te haga la suma y esa misma la puedas utilizar cuantas veces sea necesaria:
Código:
Esto funciona para un MSHFlexGrid pero considero que lo puedes adaptar para el datagridFunction Sumar(MSHFlexGrid As Object, _ Columna As Integer) As Currency On Error GoTo error_function With MSHFlexGrid Dim Total As Currency Dim i As Long If Columna > .Cols Then MsgBox "Columna no válida", vbExclamation Exit Function End If ' recorrer las filas de la grilla For i = 1 To .Rows - 1 ' comprobar que el dato es de tipo numérico con la función IsNumeric de vb If IsNumeric(.TextMatrix(i, Columna)) Then ' Sumar, obteniendo el valor de la celda con TextMatrix Total = Total + .TextMatrix(i, Columna) End If Next ' retornar el total de la suma a la función Sumar = Total End With Exit Function error_function: MsgBox Err.Description, vbCritical, "error al sumar" End Function y perdon y lo llamas asi:
Código:
Label1 = Format(Sumar(Grilla, columna), "$ #,##0.00") |