Programación General > Visual Basic 6.0 e inferiores
Re: SUMAR COLUMNA DE UN DATAGRID
Jordi_BCN:
Hola, para q me entiendan mejor:
Sumar solo los registro "001" de la Tabla1
Imagen:
Espero q asi entiendan mi question:)
giomar:
Como veo que estas empleando codigo ADO entonces prueba con esto.
La solucion mas rapida y facil es usar instrucciones SQL para ello utilizaras de otro RecordSet donde almacenaras el numero de fatura y la cantidad de facturas que cada una de elllas tiene ¡Me parece que eso es lo que buscas!
Coloca el siguiente script donde deseas que se realice la operacion:
dim rs as new Adodb.RecordSet
set rs=new Adodb.RecordSet
set rs=NombreConexion.Execute("Select Num_Fac as Factura,count(Num_Fac) as Cantidad From factura where Num_Fac='" & txtNum_Fac & "' GROUP BY Num_Fac")
txtTotal.text=rs.fields(1).value
set rs=nothing
De esta manera obtendras la cantidad de facturas que tienes.
Ahora solo tendras que acomodar el codigo segun como estes realizando tu aplicacion.
Si sigues teniendo problemas puedes enviar tu aplicacion o el codigo para poder ayudarte mejor.
Un saludo y suerte
<<_GIOMAR_>>
Brroz:
El ejemplo que te da Giomar suma el número de facturas, pero supongo que tú necesitas sumar los importes de las lineas, con lo que abría que utilizar un SQL tal que así:
SELECT Sum(CampoImporte) FROM LineasFacturas WHERE NumFactura = '001' GROUP BY NumFactura
Si como dices en un mensaje más abajo prefieres la opción del 'acumulador', entonces añade una pregunta filtrando los valores que te interesen antes de sumar:
If Datagrid1.Columns(IndiceClave).Value = "001" Then
acumulador=acumulador+Datagrid1.Columns(IndiceDeColumna_a_Sumar).Value
Esto te irá algo más lento pero...
Sort.
Jordi_BCN:
Lo he conseguido después de mucho esfuerzo!! El codigo q he utilizado es:
Dim sql As String
sql = "Select SUM(val(subtotal)) as total from factura2 where numfactura ='"
sql = sql + Text1.Text & "'"
Me.Adodc7.RecordSource = sql
Me.Adodc7.Refresh
Text21.Text = Format(Adodc7.Recordset!total, "Standard")
Me.Adodc7.RecordSource = "select * from Factura2 "
Me.Adodc7.Refresh
Set Me.DataGrid2.DataSource = Me.Adodc7
Gracias a todos!!! :good::flower:
J.M.Movilla:
Porque fíjate qué diferencia puede haber entre el código que has aceptado finalmente y el que yo te proponía, que era exactamente (si no me lo han cambiado las brujas...):
Me.Adodc1.RecordSource = "Select SUM(Importe) As Total from Gastos " & _
"Where Fecha >= DateValue(""" & DTPick1 & """)" _
& " And Fecha <= DateValue(""" & DTPick2 & """)"
Me.Adodc1.Refresh
Pues simplemente que en mi ejemplo la condición era entre fechas y en tu caso filtras por el número de factura... y que los objetos lógicamente tienen diferentes nombres... Pero veo que has llegado a aceptar el uso de una SQL para confeccionar el RecordSet, como Dios manda...
Saludos y suerte
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa