none
calculo del monto RRS feed

  • Pregunta

  • bueno el principal objetivo de mi sistema es calcular el monto de todo un mes y que salga el resultado en un textbox y no me se el codigo si alguien me puede decir el codigo porfavor
    viernes, 12 de noviembre de 2010 11:48

Respuestas

  • Vale, imagina que tienes tus datos en un DataGridView, y que la celada que quieres sumar se llama "Importe", y que tu BD es SQLServer

    VB:

    dim double as resultado=0

    for each row as DataGridViewRow in tuDataGridView.Rows

    resultado+=Convert.Todouble(row.Cells("Importe).Value)

    next

    MessageBox.Show(String.Format("El valor obtenido es: {0}",resultado))

    'Pasarlo a la BD

    using con as new SqlConnection(tuCadenaConexion)

    using cmd as new SqlCommand("Insert into Tabla (año,mes,valor) values(@año,@mes,@valor)",con)

    con.open()

    cmd.Parameters.AddWithValue("año",tuAño)

    cmd.Parameters.AddWithValue("mes",tuMes)

    cmd.Parameters.AddWithValue("valor",resultado)

    cmd.ExecuteNonQuery()

    end using

    end using

    Si necesitas el código en c# pidelo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:27
    lunes, 15 de noviembre de 2010 12:23
    Moderador
  • Vale, pero tienes una tabla con un solo campo?

    No decias que querias guardar el valor de los meses al menos?

    te pongo el código pero ya te digo que tendrás que adaptarlo:

    En el new de la conexión está esta parte:C:\mydatabase.mdb tendrás que poner la ruta y nombre de tu BD

    En los parametros he puesto año, mes y Montototal, tendrás que adaptarlo a tus necesidades, y ES MUY IMPORTANTE que los parametros vayan en el mismo orden que se han puesto en la sentencia SQL!!!

     

    Using con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;")<br/>Using cmd As New OleDb.OleDbCommand("Insert into Tabla (ao,mes,<span style="font-family:Verdana,Arial,Helvetica,sans-serif; white-space:normal; font-size:9px">Montototal</span>) values(?,?,?)", con)
    
    con.Open()
    
    cmd.Parameters.AddWithValue(
    
    "año", tuAo)
    
    cmd.Parameters.AddWithValue(
    
    "mes", tuMes)
    
    cmd.Parameters.AddWithValue(
    
    "<span style="font-family:Verdana,Arial,Helvetica,sans-serif; white-space:normal; font-size:9px">Montototal</span>", resultado)
    
    cmd.ExecuteNonQuery()
    
     
    
    End Using
    
     
    
    End Using
    

     


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:27
    lunes, 15 de noviembre de 2010 13:14
    Moderador
  • hola,

    vamos ayudarle un poquito a resolver este planteamiento espero que te ayude Suerte

     

     

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     

            Dim resultado As Double

            For Each row As DataGridViewRow In Me.DataGridView1.Rows

                resultado += Convert.ToDouble(row.Cells("Monto").Value)

            Next

            MessageBox.Show(String.Format("El valor obtenido es: {0}", resultado))

     

        End Sub

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

            Using OleDbConnection As New OleDbConnection(" conection")

                Dim cmd As New OleDbCommand("select Monto From Ingreso", OleDbConnection)

                Dim dt As New DataTable

                Dim da As New OleDbDataAdapter(cmd)

                Try

                    da.Fill(dt)

                    Me.DataGridView1.DataSource = dt

                Catch ex As Exception

     

                End Try

     

            End Using

        End Sub

     


    Enmanuel Grullard@Developer ASP.NET,ASP.NET MVC,VB6,VB.NET ,C#.NET
    • Propuesto como respuesta Enmanuel Grullard lunes, 15 de noviembre de 2010 14:27
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:32
    lunes, 15 de noviembre de 2010 14:27

Todas las respuestas

  • Podrias aportar un poco mas de información?
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    viernes, 12 de noviembre de 2010 19:58
    Moderador
  • mi sistema lo estoy haciendo en visual basic 2005 y se trata de cotizacion de cheque y lo que quiero que me calcule el monto de un mes y que se guarde en la base de datos se que se llama cotizacion1 y no me se el codigo para calcular el monto que se guarda en un mes
    lunes, 15 de noviembre de 2010 12:00
  • Donde tienes la información que quieres sumar? En un formulario? en la Base de Datos?

     


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 15 de noviembre de 2010 12:05
    Moderador
  • en el formulario quiero acer el calculo y que salga un mensajebox el resulta y ese resultado que se guarde en la base de datos
    lunes, 15 de noviembre de 2010 12:10
  • Vale, imagina que tienes tus datos en un DataGridView, y que la celada que quieres sumar se llama "Importe", y que tu BD es SQLServer

    VB:

    dim double as resultado=0

    for each row as DataGridViewRow in tuDataGridView.Rows

    resultado+=Convert.Todouble(row.Cells("Importe).Value)

    next

    MessageBox.Show(String.Format("El valor obtenido es: {0}",resultado))

    'Pasarlo a la BD

    using con as new SqlConnection(tuCadenaConexion)

    using cmd as new SqlCommand("Insert into Tabla (año,mes,valor) values(@año,@mes,@valor)",con)

    con.open()

    cmd.Parameters.AddWithValue("año",tuAño)

    cmd.Parameters.AddWithValue("mes",tuMes)

    cmd.Parameters.AddWithValue("valor",resultado)

    cmd.ExecuteNonQuery()

    end using

    end using

    Si necesitas el código en c# pidelo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:27
    lunes, 15 de noviembre de 2010 12:23
    Moderador
  • don jtorrecilla asi tengo el codigo

    Private

     

    Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

     

    dim double as resultado=0

     

    For Each row As DataGridViewRow In tuDataGridView1.Rows

    resultado+=Convert.Todouble(row.Cells(

    "Importe).Value)

     

    Next

    MessageBox.Show(

    String.Format("El valor obtenido es: {0}", resultado))

     

    'Pasarlo a la BD

     

    Using con As New SqlClient.SqlConnection(tuCadenaConexion)

     

    Using cmd As New SqlClient.SqlCommand("Insert into Tabla (ao,mes,valor) values(@ao,@mes,@valor)", con)

    con.Open()

    cmd.Parameters.AddWithValue(

    "ao", tuAo)

    cmd.Parameters.AddWithValue(

    "mes", tuMes)

    cmd.Parameters.AddWithValue(

    "valor", resultado)

    cmd.ExecuteNonQuery()

     

    End Using

     

    End Using

     

    End Sub

    pero me sale errores con una linea azul lo siguiente:

    double:no es valido

    el uso de la palabra clave como identificador

    resultado: no se ha declarado la palabra resultado

    tu cadena de conexion : no se ha declarado la palabra tu cadena de conexion

    tuaño: no se ha declarado la palabra tu año

    tumes:no se ha declarado la palabra tu mes

    porfa si me puede ayudar

     

    lunes, 15 de noviembre de 2010 12:44
  • Hombre tendrás que adaptar el código a tus necesidades...

    El unico error grave es que me confundi aqui: dim double as resultado=0 sería dim resultado as double=0 (llevo toda la mañana con c# ...)

    tuCadenaConexion será la cadena de conexión que tienes que utilizar y te puse una query con 3 campos, yo no se como tienes montada la tabla, ni tan siquiera se si estás utilizando SQL Server....


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 15 de noviembre de 2010 12:54
    Moderador
  • no stoy utiulizando sl ya que la base de datos va a ser pequeña y stoy utilizando acces 97
    lunes, 15 de noviembre de 2010 13:00
  • Vale, podrías especificar las columnas de la tabla donde se va a guardar dicho "monto"?
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 15 de noviembre de 2010 13:02
    Moderador
  • las columas que se va a guardar el resultado es montototal
    lunes, 15 de noviembre de 2010 13:07
  • Vale, pero tienes una tabla con un solo campo?

    No decias que querias guardar el valor de los meses al menos?

    te pongo el código pero ya te digo que tendrás que adaptarlo:

    En el new de la conexión está esta parte:C:\mydatabase.mdb tendrás que poner la ruta y nombre de tu BD

    En los parametros he puesto año, mes y Montototal, tendrás que adaptarlo a tus necesidades, y ES MUY IMPORTANTE que los parametros vayan en el mismo orden que se han puesto en la sentencia SQL!!!

     

    Using con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;")<br/>Using cmd As New OleDb.OleDbCommand("Insert into Tabla (ao,mes,<span style="font-family:Verdana,Arial,Helvetica,sans-serif; white-space:normal; font-size:9px">Montototal</span>) values(?,?,?)", con)
    
    con.Open()
    
    cmd.Parameters.AddWithValue(
    
    "año", tuAo)
    
    cmd.Parameters.AddWithValue(
    
    "mes", tuMes)
    
    cmd.Parameters.AddWithValue(
    
    "<span style="font-family:Verdana,Arial,Helvetica,sans-serif; white-space:normal; font-size:9px">Montototal</span>", resultado)
    
    cmd.ExecuteNonQuery()
    
     
    
    End Using
    
     
    
    End Using
    

     


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:27
    lunes, 15 de noviembre de 2010 13:14
    Moderador
  • por ejemplo el usuario digita artos documentos con su monto que puede ser 150.000 etc y lo que quiere el usuario que calcule todos los montos de un mes y que se guarde en una base de datos que se llama cotizacion1 y el campo que se guarde es Monto_Total y que salga en un mensaje box el resultado y sorry no me supe explicar
    lunes, 15 de noviembre de 2010 13:20
  • koke1,

     

    En los 2 mensajes anteriores te he puesto como sacar el mensaje por pantalla y como calcular con el DataGridView, yo no se como tienes montada tu aplicación, como para poder darte el cópdigo para que copies y peges.

    Te he explicado los pasos como hacerlo y te he indicado que tienes que sutituir para adaptarlo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 15 de noviembre de 2010 13:31
    Moderador
  • hola,

    vamos ayudarle un poquito a resolver este planteamiento espero que te ayude Suerte

     

     

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     

            Dim resultado As Double

            For Each row As DataGridViewRow In Me.DataGridView1.Rows

                resultado += Convert.ToDouble(row.Cells("Monto").Value)

            Next

            MessageBox.Show(String.Format("El valor obtenido es: {0}", resultado))

     

        End Sub

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     

            Using OleDbConnection As New OleDbConnection(" conection")

                Dim cmd As New OleDbCommand("select Monto From Ingreso", OleDbConnection)

                Dim dt As New DataTable

                Dim da As New OleDbDataAdapter(cmd)

                Try

                    da.Fill(dt)

                    Me.DataGridView1.DataSource = dt

                Catch ex As Exception

     

                End Try

     

            End Using

        End Sub

     


    Enmanuel Grullard@Developer ASP.NET,ASP.NET MVC,VB6,VB.NET ,C#.NET
    • Propuesto como respuesta Enmanuel Grullard lunes, 15 de noviembre de 2010 14:27
    • Marcado como respuesta koke1 lunes, 15 de noviembre de 2010 14:32
    lunes, 15 de noviembre de 2010 14:27
  • gracias don jtorrecilla y don emanuel por los codigos ya que me esta salienbdo el problema gracias
    lunes, 15 de noviembre de 2010 14:33