Antes de ponerme a programar código, ¿podrías responder a una serie de preguntas?
- ¿Es requisito trabajar con DataSet o te vale con Recourdset? (DataSet/Recourdset)
- ¿La base de datos desde la que llamas al evento con el botón es la misma de la que quieres obtener los datos? (Sí/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? (
Sí/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 originalPrivate Sub btnEjssumas_Click()
Dim db As Database
Dim rst As DAO.Recordset
Dim sql As String
Set db = CurrentDb()
sql = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
& "WHERE (titular='" & titular & "') AND (denominaciones='" & c1 & "')"
Set rst = db.OpenRecordset(sql2, dbReadOnly)
If Not (rst.BOF And rst.EOF) Then
MsgBox ("Total suma de numero de titulos: " & rst.totalacc)
Else
MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
End If
Set rst = Nothing
Set db = Nothing
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 originalPrivate Sub btnEjssumas_Click()
Dim db As Database
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
Dim sql1 As String
Dim sql2 As String
Dim titular As String
Dim denominacion As String
Set db = CurrentDb() 'Si no es la base de datos actual, tendrás que cambiar esta linea
titular = " " 'Titular que quieres buscar
'Dado que en las denominaciones hay registros cuya "clase" no es acciones
'Tabla denominacion campo denominacion, ¿correcto?
sql1 = "SELECT denominacion from denominacion " _
& "WHERE clase = 'Acciones'"
Set rst1 = db.OpenRecordset(sql1, dbReadOnly)
If Not (rst1.BOF And rst1.EOF) Then
With rst1
Do While Not .EOF
denominacion = .denominacion
sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
& "WHERE (titular='" & titular & "') AND (denominaciones='" & denominacion & "')"
Set rst2 = db.OpenRecordset(sql2, dbReadOnly)
MsgBox ("Para " & denominacion & " el numero de titulos de " & titular & " es: " & rst2.totalacc)
.MoveNext
Loop
End With
Else
MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
End If
Set rst1 = Nothing
Set rst2 = Nothing
Set db = Nothing
End Sub