Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Suma con SQL

Estas en el tema de Suma con SQL en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/01/2012, 09:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Suma con SQL

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.
  #2 (permalink)  
Antiguo 14/01/2012, 22:16
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Hola amg39,


entiendo que estás trabajando en access y programando en VB, ¿correcto?. Deberías revisar
Cita:
Dim totalacc As Integer = 0
por
Cita:
Dim totalacc As Integer
totalacc = 0
y también mostrarnos en qué punto le asignas a totalacc un valor (a parte de en la declaración), porque según está y con lo que veo diría que totalacc está mostrando basura...
  #3 (permalink)  
Antiguo 15/01/2012, 04:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Efectivamente, estoy programando en VB2010 y con una BD Access.
Muchas gracias por tu respuesta. Vengo de VB 6.0 donde hice un montón de aplicaciones y todas estas cosas eran muy sencillas. Finalmente lo que estoy haciendo, no lo he acabado aún, es
Ciclo exterior de las denominaciones, que recorre "denominacion" (los nombres de las acciones)
For i = 0 to totaldenominaciones - 1
Ciclo interior que recorre "operaciones" (operaciones con denominacion i y titular X)
For j = o to (total_operaciones_con_denominacion"i" y titular x) - 1
totalacc = totalacc + nrotitulos
Next j
Next i
----
Estuve probando de mil maneras sql = "SELECT SUM(nrotitulos) FROM ... WHERE (...) AND (....)"
No hubo forma de que me diera otra cosa que ceros. Fui simplificando la orden hasta dejarla en: sql ="SELECT SUM(nrotitulos) FROM...". Fue igual, cero.
Así que este procedimiento de los ciclos es como si dijera el maestro: "A ver, cuántas son 15 más 10". Y el alumno contestara: "Veamos, 15 y añado 1, 16, y añado 1, 17...".
En fin, el que no sabe de alguna forma se las tiene que apañar.
Mil gracias.
  #4 (permalink)  
Antiguo 15/01/2012, 08:39
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Perdoname, pero esque no termino de entender la estructura de la bd ni la operación que quieres hacer...

Tablas:
  • operaciones (denominaciones, titulares, nrotyitulos, ...)
  • denominacion (denominacion, clases, ...)

Ésto es lo que yo he entendido, lo que no cuadra con tu cosulta sql (y puede que por eso te de 0 de resutlado):

Código vb:
Ver original
  1. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  2.         & "WHERE (titular='AMM') AND (denominacion ='" & c1 & "' "

Si te fijas en el AND, según el marco que entiendo tienes en tu BD debería ser:

Código vb:
Ver original
  1. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones "_
  2.         & "WHERE (titular='" & titular & "') AND (denominaciones = '" & c1 & "' "

El campo se llama denominaciones en la tabla operaciones, no denominacion. Además te he puesto el titular por variable, porque así puedes usar la función para distintos titulares según la variable.

Al margen de todo esto, lo que yo intentaba decirte, es que no basta con crear una cadena de texto con el código SQL, también tienes que almacenar el resultado y actuar en consecuencia

Yo veo en tu código el "sql = ..." pero no veo qué haces después con la sentencia sql, ¿no la vuelves a llamar?

Si, por ejemplo, te declaras un Recordset y almacenas en él el resultado de la búsqueda del sql2 quedaría así:

Código vb:
Ver original
  1. Dim db As Database
  2. Dim rst As DAO.Recordset
  3.  
  4. Set db = CurrentDb()
  5. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  6.        & "WHERE (titular='" & titular & "') AND (denominaciones='" & c1 & "' "
  7. Set rst = db.OpenRecordset(sql2, dbReadOnly)
  8.  
  9. If Not (rst.BOF And rst.EOF) Then
  10.         MsgBox("Total suma de numero de titulos: " & rst.totalacc)
  11. Else
  12.         MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
  13. End If
  14.  
  15. Set rst = Nothing
  16. Set db = Nothing

Si no me he explicado bien en algo, o no tengo bien el planteamiento dímelo.

De todas formas el statement SQL SUM() te tiene que funcionar (¡dando por hecho que el nrotitulos sea de tipo numero!).

Prueba el código y nos cuentas qué tal te ha ido.
  #5 (permalink)  
Antiguo 15/01/2012, 09:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Muchas gracias por la respuesta.
En vista de los problemas que tenía intenté otra vía:
Tabla: Denominaciones para recorrer de arriba abajo (ciclo externo) ds1;
For i = 0 to...
----
Tabla Operaciones (Ciclo interno)
SELECT * FROM Operaciones WHERE titular = ... and denominacion = ..
For j = 0 to ds2.Tables().Rows.Count -1
nrotitulos = nrotitulos + ds2.Tables().Rows(j).Item(nrotitulos)
Next j
---
Next i
---
Y ahora me encuentro con que se me acumulan los resultados de unos valores a otros. O sea
debería decir
Antena3TV 3 registros 400 acciones OK
BBVA 1 id 500 ; y me dice: 4 registros, 900 acciones
Endesa 0 0 ; y me dice: 4 registros, 900 acciones.

y así sucesivamente. He puesto a cero las variables a gogó por todas partes del ciclo interno y externo e incluso he hecho algún "apañete" como decir: (ds2.Tables().Rows.Count -1) - acc_anteriores
que me da resultado correcto, pero no lo puedo arreglar todo de esta forma.
Estos son resultados de un código diferente al que he escrito aquí, pero lo digo para que veas el follón que llevo.
Gracias y ya veré si finalmente no lo considero superior a mis fuerzas, porque ya llevo más de dos días con esta puñetera parte.
  #6 (permalink)  
Antiguo 15/01/2012, 10:06
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

¿Podrías poner tódo el código, por favor? Creo que sería más sencillo para ambos

Por cierto, ¿has probado lo que te dejé ya sea en DataSet o en RecourdSet?
  #7 (permalink)  
Antiguo 15/01/2012, 11:03
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Gracias por tu ayuda. No he probado lo que me dijiste. La verdad es que tengo la cabeza que me echa humo. Estoy en la situación del que al acabar un curso de matemáticas se entera de que 4 + 4 son 23 (!!!!).
En la Tabla Denominación hay Acciones, Fondos y otras "clases".
Este es el código último y el que produce esas acumulaciones a que me he referido antes. He entrado variables como "registrosviejos" y "accviejas" para procurar eliminar las acumulaciones, infructuosamente. Mil gracias.
-----
Private Sub btnEjssumas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEjssumas.Click
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"
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 c1 As String
Dim j As Integer = 0
Dim totalacc As Integer
totalacc = 0
Dim contviejo As Integer
contviejo = 0
MsgBox("cuantas acciones")
MsgBox(cuantasacciones) 'OK
totalacc = 0
For i = 0 To cuantasacciones - 1 'Ciclo de las distintas acciones. Cada rotación es de una denominación distinta de acciones
c1 = ""
c1 = ds1.Tables("FiltDenom").Rows(i).Item("denominacion ") 'Nombre de la acción OK
MsgBox("Nombre de la acción presente " & c1)
sql2 = "SELECT * FROM operaciones WHERE ((titular='AMG') AND (denominacion = '" & c1 & "'))"
Dim da2 As New OleDb.OleDbDataAdapter(sql2, con)
da2.Fill(ds2, "Tab")
MsgBox(sql2) 'OK
'En lo que sigue ya aparece defectuoso, se acumulan los registros
Dim intCount As Integer
intCount = 0
MsgBox("cuántos registros de la acción presente tiene AMG " & ds2.Tables("Tab").Rows.Count - contviejo) 'OK
intCount = ds2.Tables("Tab").Rows.Count 'MAL
MsgBox(intCount)
totalacc = 0
Dim accviejas As Integer
Dim regtotal As Integer
regtotal = 0
accviejas = totalacc
regtotal = 0
Dim registrosviejos As Integer
registrosviejos = regtotal
MsgBox("accviejas " & accviejas)
If ds2.Tables("Tab").Rows.Count <> 0 Then
'totalacc = 0
For j = 0 To ds2.Tables("Tab").Rows.Count - 1
accviejas = totalacc
MsgBox("Nro de acciones en el registro presente" & ds2.Tables("Tab").Rows(j).Item(3) - accviejas)
'regtotal = regtotal
totalacc = totalacc + ds2.Tables("Tab").Rows(j).Item(3) - accviejas
MsgBox(c1)
MsgBox("Valor que vamos acumulando de la acción presente" & totalacc)
Next j
accviejas = totalacc
'totalacc = 0
'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
'ds2.Tables("Tab").Rows.Count
End If
contviejo = ds2.Tables("Tab").Rows.Count
Next i
End Sub
  #8 (permalink)  
Antiguo 15/01/2012, 17:30
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Antes de ponerme a programar código, ¿podrías responder a una serie de preguntas?
  1. ¿Es requisito trabajar con DataSet o te vale con Recourdset? (DataSet/Recourdset)
  2. ¿La base de datos desde la que llamas al evento con el botón es la misma de la que quieres obtener los datos? (/No)

En cualquier caso creo que necesito una pequeña pausa para reflexionar.

Tu código básicamente tiene que realizar lo siguiente:

Dado un titular y una denominación decir cual es el total de acciones de dicho titular para esa denominación. ¿Correcto? (/No)

Si las respuestas a las anteriores preguntas es siempre la que está resaltada en negrita, con éste código puedes realizar lo que pides:

Código vb:
Ver original
  1. Private Sub btnEjssumas_Click()
  2.  
  3.     Dim db As Database
  4.     Dim rst As DAO.Recordset
  5.     Dim sql As String
  6.      
  7.     Set db = CurrentDb()
  8.     sql = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  9.            & "WHERE (titular='" & titular & "') AND (denominaciones='" & c1 & "')"
  10.            
  11.     Set rst = db.OpenRecordset(sql2, dbReadOnly)
  12.      
  13.     If Not (rst.BOF And rst.EOF) Then
  14.             MsgBox ("Total suma de numero de titulos: " & rst.totalacc)
  15.     Else
  16.             MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
  17.     End If
  18.      
  19.     Set rst = Nothing
  20.     Set db = Nothing
  21.  
  22. End Sub

Si alguna de las respuestas no es la que está resaltada en negrita, dime cuales no lo son y a partir de ahí vamos viendo.

De todos modos, te dejo éste otro que te dice para cada denominación el SUM(nrotitulos) de un determinado titular
Código vb:
Ver original
  1. Private Sub btnEjssumas_Click()
  2.  
  3.     Dim db As Database
  4.     Dim rst1 As DAO.Recordset
  5.     Dim rst2 As DAO.Recordset
  6.     Dim sql1 As String
  7.     Dim sql2 As String
  8.     Dim titular As String
  9.     Dim denominacion As String
  10.    
  11.     Set db = CurrentDb() 'Si no es la base de datos actual, tendrás que cambiar esta linea
  12.    
  13.     titular = " " 'Titular que quieres buscar
  14.    
  15.     'Dado que en las denominaciones hay registros cuya "clase" no es acciones
  16.    'Tabla denominacion campo denominacion, ¿correcto?
  17.    sql1 = "SELECT denominacion from denominacion " _
  18.            & "WHERE clase = 'Acciones'"
  19.     Set rst1 = db.OpenRecordset(sql1, dbReadOnly)
  20.            
  21.     If Not (rst1.BOF And rst1.EOF) Then
  22.         With rst1
  23.         Do While Not .EOF
  24.             denominacion = .denominacion
  25.             sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  26.                 & "WHERE (titular='" & titular & "') AND (denominaciones='" & denominacion & "')"
  27.             Set rst2 = db.OpenRecordset(sql2, dbReadOnly)
  28.             MsgBox ("Para " & denominacion & " el numero de titulos de " & titular & " es: " & rst2.totalacc)
  29.         .MoveNext
  30.         Loop
  31.         End With
  32.     Else
  33.             MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
  34.     End If
  35.      
  36.     Set rst1 = Nothing
  37.     Set rst2 = Nothing
  38.     Set db = Nothing
  39.  
  40. End Sub
  #9 (permalink)  
Antiguo 15/01/2012, 17:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Te agradezco infinito tu ayuda. Respondiendo a tus preguntas:
1) Utilizo DataSet porque es "el almacén de trabajo de los registros" como he empezado a estudiar VB 2010. Me imagino que sea igual que Recordset; desconozco lo de Recourdset.
2) La base de todas las tablas que utilizo es única bd4.mdb.
3) El objetivo que persigo es efectivamente tal y como lo dices:
Un titular tiene de Telefónica x acciones
de BBVA y acciones, etc.
Mañana copio y estudio tus códigos. Repito que te agradezco muchísimo tu ayuda.
  #10 (permalink)  
Antiguo 16/01/2012, 01:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Me pongo con tu código y encuentro las siguientes dificultades:
"Dim db As Database" Error. "Database no está definido".
"Dim rst1 As DAO.Recordset". Igual
Veo en la red que esto se puede solucionar yendo a Proyecto ->Referencias copiando Microsoft DAO 3.6 (tengo Access 2007). Lo hago así y desaparece el error en los Recordset, pero no en Database. Sigo no obstante copiando el código y cuando escribo
"Set db = CurrentDb()" lo convierte automáticamente en db = CurrentDb() y me da el error: "CurrentDb no está declarado , puede que esté inaccesible debido a su nivel de protección", igual más adelante en el otro "Set rst1..." suprime automáticamente el "Set".
No he seguido copiando el código porque con estos errores sin saber cómo eliminarlos...
No sé si añadiendo un espacio de nombres apropiado, que no sé cuál sería, esto podría rular.
Gracias.
  #11 (permalink)  
Antiguo 16/01/2012, 03:21
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Veo también en la red que vaya a Ayuda de Access para ver la "conversión de código DAO en código ADO que es el que se utiliza en las BD Access superiores a 2000". En esta ayuda aparecen unas conversiones que intento sin llegar a ninguna parte. Hlgo.
  #12 (permalink)  
Antiguo 16/01/2012, 03:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

He dado a "Importar DAO" y desaparece el problema en "Database". Sigue la cuestióbn en "Set db = CurrentDb()". Miraré si también consigo que desaparezca el problema.
  #13 (permalink)  
Antiguo 16/01/2012, 07:11
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Ah vale, intentas aprender a conectarte con DataSet. Madre mía te he entendido yo mal todo este rato.

Mira entonces del código de antes nos valen tanto las consultas SQL como los bucles(solo que en lugar de .EOF puedes usar un for y poner el count), lo que tenemos que hacer es cambiar la forma en que adquirimos los datos.

Ahora me tengo que ir, pero lo imporante es que cojas la idea. Un bucle que recorre y el statement SUM() para mostrar el total de nrotitulos.

En cuanto a los errores, es porque yo pensaba que se trataba de otra cosa. Olvida lo de los RecordSet, termina de aprender a DataSet.

Luego cuando me conecte intento hacer también yo el codigo, si te surgen dudas por el camino, postea
  #14 (permalink)  
Antiguo 16/01/2012, 07:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

He quitado todos los errores pero me queda uno y fundamental, enlazarme con la bd. Cuando escribo este código para conectarme me da el error:
"OpenDataBase no está declarado"

dbPath = "C:\Users\Mis documentos\bd4.mdb"
db = OpenDataBase(dbPath).
Veo que no hay referencia al motor de búsqueda (?).
Por el sistema "tradicional", con DataSet, he estado haciendo todas las probaturas anteriores; voy a mirar los últimos consejos que me das a ver si puedo encarrilar la cosa. Replanteo el enlace con la BD por DataAdapter y DataSet y mantengo el resto más ciclos For-Next. Gracias.

Última edición por amg39; 16/01/2012 a las 08:03
  #15 (permalink)  
Antiguo 16/01/2012, 12:19
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Suma con SQL

Al final se consiguió. Helo:
Private Sub btnEjssumas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEjssumas.Click
Dim con As New OleDb.OleDbConnection
Dim ds1 As New DataSet
Dim ds2 As New DataSet
Dim sql1, sql2 As String
Dim titular As String
Dim i As Integer
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =C:\Users\Mis documentos\bd4.mdb"
con.Open()
titular = TextBox3.Text 'Entramos el titular
sql1 = "SELECT denominacion FROM denominacion WHERE clase = 'Acciones' ORDER by denominacion"
Dim da As New OleDb.OleDbDataAdapter(sql1, con)
da.Fill(ds1, "Denom")
For i = 0 To ds1.Tables("Denom").Rows.Count - 1 'Ciclo de las denominaciones
TextBox1.Text = ds1.Tables("Denom").Rows(i).Item(0) 'Nombre de la acción
With ds1
sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones WHERE (titular= '" & titular & "') and (denominacion='" & TextBox1.Text & "')"
Dim da1 As New OleDb.OleDbDataAdapter(sql2, con)
If Not IsDBNull(ds2.Tables("Tot").Rows(i).Item(0)) Then
TextBox2.Text = ds2.Tables("Tot").Rows(i).Item(0) 'OK
MsgBox("Para " & TextBox1.Text & " el número de titulos de " & titular & " es: " & TextBox2.Text)
End If
End With
Next
End Sub
---
Soy consciente de que hay dos chapuzas que serán advertidas:
1) No he podido aprovechar el resultado de SUM(nrotítulos) totalacc y he recurrido a la chapucilla de poner el resultado del Ds en TextBox2.Text.
2) Otra chapuza es que tampoco he pasado aceptablemente la variable "denominación" del ciclo exterior al interior y he acudido igualmente a un TextBox1.Text. No se lo digas a nadie. Pero el resultado es que funciona. Gracias en muy buena medida a tu ayuda. Mil gracias.
  #16 (permalink)  
Antiguo 16/01/2012, 16:24
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Hola de nuevo,


me alegro mucho de que lo hayas conseguido. Ya que aceptas mis consejos () te voy a dar tres más:

1) Tabula tu código, para que te sea más fácil a la hora de releerlo y a la hora de compartirlo
2) Nunca te des por vencido. Si no has conseguido mostrar tus datos con el MsgBox sigue buscando por internet, y para sólo cuando encuentres que lo que intentas no se puede hacer
3) Cuando postees código en un foro, te recomiendo que uses las herramientas que te ofrecen, como por ejemplo el Highlight en este foro, por comodidad de los lectores. Si se lo pones más fácil al que te tiene que ayudar, más gente se prestará a ayudarte

Y dicho esto, un saludo muy fuerte y que te vaya

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:03.