Hoy os traigo una solución para sumar columnas de un subformulario de Access usando Recordsets. Es algo que soléis preguntarme con bastante frecuencia, por eso espero que este post os sirva de ayuda.
He preparado un ejemplo con una tabla, un formulario y un subformulario. En ellos se recogen los gastos de distintas personas en sus viajes de negocio.
Cuando seleccionemos un nombre en el campo superior del formulario, el subformulario se filtrará mostrando únicamente los valores correspondientes a dicha persona.
En las casillas inferiores del formulario, aparecerá la suma de cada una de las columnas del subformulario filtrado.
A continuación, os comparto el código,
Option Compare Database
Private Sub Form_Load()
'Blanqueamos el valor del campo Nombre al cargar el formulario
Nombre = Null
Nombre.Requery
End Sub
Private Sub Nombre_AfterUpdate()
Forms!Gastos.Requery
'Rellenamos los totalizadores
Set dbs = CurrentDb()
Dim sumaDesplazamiento As Recordset
Dim sumaAlojamiento As Recordset
Dim sumaDieta As Recordset
'Creamos un recordset para cada tipo de gasto y calculamos la suma para el usuario seleccionado
Set sumaDesplazamiento = dbs.OpenRecordset("Select SUM([Desplazamiento]) as totalDesplazamiento from [Gastos] where Nombre='" & Me.Nombre & "'")
Set sumaAlojamiento = dbs.OpenRecordset("Select SUM([Alojamiento]) as totalAlojamiento from [Gastos] where Nombre='" & Me.Nombre & "'")
Set sumaDieta = dbs.OpenRecordset("Select SUM([Dieta]) as totalDieta from [Gastos] where Nombre='" & Me.Nombre & "'")
'Rellenamos los campos con los resultados
Forms![Gastos]!txtTotR = sumaAlojamiento!totalAlojamiento
Forms![Gastos]!txtTotB = sumaDesplazamiento!totalDesplazamiento
Forms![Gastos]!txtTotM = sumaDieta!totalDieta
End Sub
Si, por ejemplo, seleccionamos a "Susana", veremos solamente sus registros, así como la suma total de cada uno de sus gastos.
Espero que con este ejemplo hayas aprendido a sumar columnas de un subformulario de Access usando VBA. Descárgate el archivo de ejemplo y practica.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Hasta la próxima.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
Últimas publicaciones
0 comentarios