Logo

¡Bienvenido a Stratos!

Acceder

Foros



Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - baldomero

#1
General Programadores / Sumar con SQL en VB 2010
14 de Enero de 2012, 04:31:53 PM
Buenas tardes:

Llevo varios días dando vueltas a esta cuestión. A ver si sois tan amables de ayudarme.
Tengo una tabla con los nombres ("denominaciones") de las acciones y otra tabla con las operaciones que realizan "titulares", con acciones ("denominacion") y con "nrodetitulos". Quiero, entrando a mano el nombre de un titular (tres letras), obtener los títulos que este titular tiene de cada clase de acciones. Es decir obtener algo como:
Telefonica 2456 titulos; Repsol 764 títulos, etc. Para eso he escrito el código siguiente, pero me da siempre cero para todas las acciones. La fíormula de la suma está bien; la he comprobado con el wizard de VB2010 y me da un resultado correcto. ¿Que tengo mal? Muchas gracias.
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        'Obtendremos para un titular: la cartera total, su valor de compra y el precio medio
        btnSeguir.Visible = True
        Dim con As New OleDb.OleDbConnection
        con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Users\Mis documentos\bd4.mdb"
        con.Open()
        Dim sql1, sql2 As String
        Dim ds2, ds1 As New DataSet
        'Ciclo de las Denominaciones
        sql1 = "SELECT * from denominacion WHERE clase = 'Acciones' ORDER BY denominacion"
        Dim da1 As New OleDb.OleDbDataAdapter(sql1, con)
        da1.Fill(ds1, "FiltDenom") 'FiltroDenom es el DataSet que contiene los nombres de todas las acciones
        Dim i As Integer
        '¿Cuántas denominaciones distintas de acciones hay?
        Dim posicion As Integer
        Dim totalacc As Integer = 0
        Dim inc As Integer = 1
        Dim c1 As String
        MsgBox("Cuantas acciones distintas hay")
        MsgBox(cuantasacciones) 'Resultado de una función OK
        For i = 0 To cuantasacciones - 1 'Ciclo de las distintas acciones. Cada rotación es de una denominación distinta de acciones
            c1 = ds1.Tables("FiltDenom").Rows(i).Item("denominacion") 'Nombre de la acción  OK
            MsgBox(c1) 'OK
            sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones WHERE (titular='AMM') AND (denominacion = '" & c1 & "')"            MsgBox("segundopaso") 'OK
            MsgBox(totalacc)  'MAAAAL
            If totalacc > 0 Then
                e.Graphics.DrawString(c1, New Font("Arial", 10), Brushes.Black, 200, posicion) 'nOMBRE DE LA ACCIÓN
                e.Graphics.DrawString(totalacc, New Font("Arial", 10), Brushes.Black, 360, posicion)
                posicion = posicion + 30
            End If
            totalacc = 0
            c1 = ""
        Next
    End Sub





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.
Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.