Buenas tardes: Llevo varios días tratando este asunto sin darle al quid. Tengo el problema muy localizado, pero no paso de ahí.
Tengo una tabla con nombres de acciones ("denominacion")(Tfonica, Repsol, etc.) y otra tabla con operaciones realizadas donde figuran "denominaciones", "titulares" y "nrotyitulos" de cada operación. Pretendio, entando "a mano" un titular obtener un listado donde me salga:
Telefonica 1248 títulos
Repsol 476 títulos, etc.
Para eso he escrito el siguiente código: Que me da (erróneamente) cero para todas las acciones. Sé que el código para la suma (lo que está en negrita) está bien. Lo he hecho en un wizard de 2010 y me da buen resultado. El procedimiento no me da ningún error, simplemente me da resultados erróneos.
'---
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
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 ds1, ds2 As New DataSet
'Ciclo de las Denominaciones
sql1 = "SELECT * from denominacion WHERE clase = 'Acciones' ORDER BY denominacion" 'En las denominaciones hay cosas cuya "clase" no es acciones
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 aparte. 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
¿Me podéis ayudar? Mil gracias.