Saber el número de registros dentro de un recordset usando VBA

recordset-vba

Escrito por Administrador

25 de noviembre de 2021

Hoy vamos a aprender cómo saber el número de registros que se encuentran dentro de un recordset usando VBA.

Posiblemente, después de realizar una selección de datos en base a un criterio, querramos saber qué número de registros lo cumplen y se encuentran en dicho recordset.

Os traigo un ejemplo (adjunto al final del post) que, aunque es muy sencillito, os servirá para entender cómo se implementa dentro del código de un programa.

El archivo contiene la tabla "Empleados", con el nombre, apellido y edad de cada empleado.

solo-letras-vba

Además, en el formulario "Comprobar Recordset" tenemos dos campos desplegables "Nombre" y "Edad". Con ellos, podremos seleccionar cualquiera de los valores introducidos en la tabla "Empleados".

solo-letras-vba

En primer lugar, seleccionamos el nombre Natalia. Al pulsar el botón Nº Registros con este nombre, se creará un recordset con todos los registros que tengan como nombre Natalia, y nos aparecerá en un cuadro de texto el número de registros contenidos en dicho recordset.

A continuación, os dejo un enlace donde explico cómo usar la función msgbox en VBA, por si os interesa.

Private Sub Numeronombres_Click()

Dim dbs As DAO.Database
Dim rst As DAO.Recordset

'Creamos el Recordset con los registros que tienen el mismo nombre que hemos seleccionado en el formulario

Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("Select * from Empleados where Nombre='" & Form!Nombre & "'")

'Contamos el numero de registros dentro del Recordset

rst.MoveLast
Numero = CStr(rst.RecordCount)

'Lo mostramos en un cuadro de texto

MsgBox "El número de registros es " & Numero

End Sub

solo-letras-vba
solo-letras-vba

Del mismo modo, si seleccionamos el nombre Maria, veremos que existen 4 registros en la tabla con dicho nombre.

solo-letras-vba
solo-letras-vba

Por último, para el caso del campo "Edad", el código es el mismo, salvo un detalle.

Private Sub Numeroedades_Click()

Dim dbs As DAO.Database
Dim rst As DAO.Recordset

'Creamos el Recordset con los registros que tienen la misma edad que hemos seleccionado en el formulario

Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("Select * from Empleados where Edad=" & Form!Edad & "")

'Contamos el numero de registros dentro del Recordset

rst.MoveLast
Numero = CStr(rst.RecordCount)

'Lo mostramos en un cuadro de texto

MsgBox "El número de registros es " & Numero

End Sub

Y es que, como el campo es numérico, suprimimos el uso de las comillas simples (') al hacer referencia al campo.

Set rst = dbs.OpenRecordset("Select * from Empleados where Edad=" & Form!Edad & "")

Mientras que, para el campo Nombre escribíamos,

Set rst = dbs.OpenRecordset("Select * from Empleados where Nombre='" & Form!Nombre & "'")

Espero que con este ejemplo hayas aprendido cómo saber el número de registros que se encuentran dentro de un recordset usando VBA.

Un saludo y hasta la próxima.

Descarga el archivo del ejemplo

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto