border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU

Retroceder   VB-MUNDO - Programacion Visual > Programacion - Lenguajes > Visual Basic 6.00
Registrarse FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 10-09-2006, 01:53:02
Gran Participación en el Foro
 
Registrado: ago 2006
Posts: 103
data_uy Valoración +2
Predeterminado Como sumar una columna Msflexgrid

Que tal a todos, mi consulta es como sumar una columna ??

Muchas gracias
Esteban
Responder Con Cita
  #2 (permalink)  
Antiguo 10-09-2006, 02:45:03
Avatar de jrios03
Moderador
 
Registrado: ene 2005
Ubicación: Curico
Posts: 792
jrios03 Valoración +2
Contactar con jrios03 a través de MSN
Predeterminado

Te doy un ejemplo de mostrar la suma de dos columnas en la tercera, espero que te sirva...
Código:
Grilla.TextMatrix(1,3) = Val(Trim(Grilla.TextMatrix(1,1))) + Val(Trim(Grilla.TextMatrix(1,2))
De esa forma muestras la suma de las dos primeras columnas en la tercera...

Nota que puse los valores de las columnas dentro de un Trim, esto es por si existiese algún espacio... y con la Función Val los transformo a un valor numérico para poder sumarlos...

Saludos... y espero haber resuelto tu consulta...sino es así, por favor explícate más que es lo que deseas hacer, y con gusto te ayudaré...

:smt004 :smt004 :smt004
__________________
Atentamente, Juan Ríos Pizarro...
Saludos desde Chile...

PD: Perdí mi mascota... buaaaaaaaa.... al menos encontré una nueva
Responder Con Cita
  #3 (permalink)  
Antiguo 11-09-2006, 18:03:11
Gran Participación en el Foro
 
Registrado: ago 2006
Posts: 103
data_uy Valoración +2
Predeterminado

Te pido mil disculpas, me equivoque de comando, estoy usando DBGrid!!!

Me podes decir porque me suma mal???

Muchas gracias

Private Sub Calcular_Click()
Dim I, Val1 As Integer
Dim Formato As String
Pagos.Text = " "
Formato = "###,####.00"
Correcto = MsgBox("DESEA CALCULAR EL MONTO....", vbYesNo, "CALCULAR EL PAGO")
If Correcto = vbYes Then
On Error Resume Next
For I = 0 To DBGrid1.ApproxCount - 1
DBGrid1.Row = I
Val1 = Format(Val1 + DBGrid1.Columns(14), Formato)
Next I
Pagos.Text = Format(Val1, Formato)
Else
Unload Me
End If
Calcular.Enabled = False
End Sub

P.D (lo chequeamos con un amigo, le damos vuelta y nada)
Responder Con Cita
  #4 (permalink)  
Antiguo 11-09-2006, 18:24:15
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Tienes dos errores básicos:

a) Declaras Val1 como Integer mientras que tratas un acumulado que seguramente tiene decimales y que además puede superar el valor de 32767 que es el máximo positivo que admite un tipo entero.

b) Asignas a Val1 la cadena de formato que es un tipo String


Desconozco si la columna 14 existe, pero en cualquier caso prueba este código que es más correcto que el que tratas de utilizar.

Código:
Private Sub Calcular_Click() 
    Dim I as integer, Val1 As Double 
    Dim Formato As String 
    Pagos.Text = " " 
    Formato = "###,####.00" 
    if MsgBox("DESEA CALCULAR EL MONTO....", vbYesNo, "CALCULAR EL PAGO")  = vbyes then
        On Error Resume Next 
         For I = 0 To DBGrid1.ApproxCount - 1 
                DBGrid1.Row = I 
                Val1 = Val1 + val(DBGrid1.Columns(14)) 
         Next I 
         Pagos.Text = Format(Val1, Formato) 
    Else 
        Unload Me 
    End If 
    Calcular.Enabled = False 
End Sub

Espero que te resulte útil.


PD: Si la sentencia val(DBGrid1.Columns(14)) no te devuelve el valor correcto del contenido de la columna 14, prueba a transformarlo en un tipo Double con cDbl(DBGrid1.Columns(14))
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 11-09-2006, 19:35:16
Gran Participación en el Foro
 
Registrado: ago 2006
Posts: 103
data_uy Valoración +2
Predeterminado

Mil gracias, mil gracias

con Val le faltaba 2,65 nose porque

Pero probe cDbl y sumo perfecto, muchas gracias

Se puede hacer algo asi, pero para MsflexGrid???
Responder Con Cita
  #6 (permalink)  
Antiguo 11-09-2006, 20:37:27
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.431
J.M.Movilla Valoración +2
Predeterminado

Puedes hacerlo perfectamente: sólo que tienes que cambiar algunas cosas, porque en MsFlexGrid no existen las propiedades .ApproxCount ni .Columns y tendrás que cambiarlo por

Código:
    With MSFlexGrid1
        For i = 1 To .Rows - 1
            .Row = i
            .Col = 14
            Val1 = Val1 + cDbl(.Text) 
        Next
    End With
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #7 (permalink)  
Antiguo 13-09-2006, 14:06:39
Gran Participación en el Foro
 
Registrado: ago 2006
Posts: 103
data_uy Valoración +2
Predeterminado

acalanto, La verad que cuando son muchos registros me suma mal.

que puede ser?

Gracias
Esteban
Responder Con Cita
  #8 (permalink)  
Antiguo 13-09-2006, 17:53:08
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.431
J.M.Movilla Valoración +2
Predeterminado

Ya te advierte Acalanto:
Código:
Si la sentencia val(DBGrid1.Columns(14)) no te devuelve el valor correcto del contenido de la columna 14, prueba a transformarlo en un tipo Double con cDbl(DBGrid1.Columns(14))
¿Has probado a modificar esa línea?
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #9 (permalink)  
Antiguo 13-09-2006, 19:41:08
Gran Participación en el Foro
 
Registrado: ago 2006
Posts: 103
data_uy Valoración +2
Predeterminado

J.M.Movilla, si ya he probado, y esta funcionado con este codigo:

Private Sub Calcular_Click()
Dim I As Integer
Dim Val1 As Double
Dim Formato As String
Pagos.Text = " "
Formato = "###,####.00"
If MsgBox("DESEA CALCULAR EL MONTO....", vbYesNo, "CALCULAR EL PAGO") = vbYes Then
On Error Resume Next
For I = 0 To DBGrid1.ApproxCount - 1
DBGrid1.Row = I
Val1 = Val1 + CDbl(DBGrid1.Columns(14))
Next I
Pagos.Text = Format(Val1, Formato)
Else
Unload Me
End If
Calcular.Enabled = False
End Sub

pero parece que si son muchos le pifea!!!
Responder Con Cita
  #10 (permalink)  
Antiguo 13-09-2006, 20:55:09
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Seguramente el problema reside en la precisión y presentación de las cifras. Si en cada línea del grid calculas y no redondeas a dos decimales, es probable que el resultado representado sea 2.54 y el calculado 2.53678.

Si son muchas las filas del grid irás acumulando errores y al final, si sumas lo que aparece en pantalla y el resultado calculado, sean diferentes, por poco pero diferentes.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Sumar columna de una tabla ? K@Te.Nt Visual Basic 6.00 2 14-11-2007 19:19:56
sumar columna tabla raviera MySQL 3 23-04-2007 19:32:11
como sumar una columna de un data grid juanZAVALA Visual Basic 6.00 6 06-10-2006 23:29:37
Ocultar una columna en un MSFLEXGRID freddyvb Visual Basic 6.00 2 08-03-2005 22:08:09
Sumar columna de DataGrid JunXCosio Visual Basic 6.00 7 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 01:58:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right