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.

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".

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


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


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.
Por último, invitarte a compartir tus dudas en los comentarios o en el foro, y a darle clic a la publicidad de abajo para ayudarme a seguir creando contenido.
Un saludo y hasta la próxima.
Descarga el archivo del ejemplo
Por favor, haz clic en el anuncio y ayúdame a seguir creando contenido. Solo te lleva un segundo 😉
Últimas publicaciones
0 comentarios