En este tutorial, aprenderemos cómo abrir un conjunto de registros, contar el número de registros en el conjunto de registros, recorrer el conjunto de registros, agregar un registro, actualizar un registro, leer un valor de un registro y eliminar un registro.
Tenemos una tabla de acceso, llamada ProductsT que se muestra a continuación:
Abrir un juego de registros
Primero necesitamos establecer la base de datos que pretendemos usar, en este caso es la base de datos abierta actualmente. Luego podemos usar el método CurrentDB.OpenRecordSet para abrir / crear nuestro Recordset.
Para crear un Recordset que nos permita manipular los datos en la tabla llamada ProductsT, usaríamos el siguiente código:
1 | CurrentDb.OpenRecordset ("ProductsT") |
Contando la cantidad de registros usando VBA
Una vez que haya creado un Recordset, lo más probable es que desee hacer algo útil con él o manipular los datos que contiene de alguna manera. Puede contar la cantidad de registros en su conjunto de datos (en este caso, la tabla llamada ProductsT) usando el siguiente código:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Bucle a través de un RecordSet usando VBA
El siguiente código recorre nuestro RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Atenuar nuestra base de datos como base de datosAtenuar nuestro conjunto de registros como conjunto de registrosEstablecer ourDatabase = CurrentDbEstablecer ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Hacer hasta nuestroRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextCírculoEnd Sub |
Programación VBA | ¡Code Generator funciona para usted!
Agregar un registro a un RecordSet
Utilice el método Recordset.AddNew para agregar un nuevo registro al RecordSet:
1234567891011121314 | Sub RecordSet_Add ()Con CurrentDb.OpenRecordset ("ProductsT").AñadirNuevo! [ProductID] = 8! [ProductName] = "Producto HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Juguetes"! [Unidades en existencias] = 15.ActualizarTerminar conEnd Sub |
El resultado es:
Actualización de un juego de registros
Debe utilizar el método Recordset.AddNew o Recordset.Edit. Después de esta declaración, debe utilizar el método Recordset.Update para mantener los cambios.
Leer valores de un registro
Tienes que usar el método Recordset.FindFirst para hacer un registro, el registro actual. Luego debe usar Recordset.Fields para especificar qué campo mirar.
12345678910111213141516 | Sub RecordSet_ReadValue ()Atenuar nuestra base de datos como base de datosAtenuar nuestro conjunto de registros como conjunto de registrosEstablecer ourDatabase = CurrentDbEstablezca ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Tipo: = RecordsetTypeEnum.dbOpenDynaset)Con nuestroRecordset.FindFirst "ProductName =" & "'Producto CCC'"Si .NoMatch EntoncesMsgBox "No se encontraron coincidencias"DemásMsgBox ourRecordset.Fields ("ProductCategory")Terminara siTerminar conEnd Sub |
El resultado es:
¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!
Eliminar un registro de un juego de registros
Para eliminar un registro de un Recordset, primero debe convertirlo en el registro actual utilizando el método Recordset.FindFirst. A continuación, puede eliminarlo utilizando el método Recordset.Delete. El siguiente código muestra cómo eliminar el registro 2 en el conjunto de datos:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Atenuar nuestra base de datos como base de datosAtenuar nuestro conjunto de registros como conjunto de registrosEstablecer ourDatabase = CurrentDbEstablezca ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Tipo: = RecordsetTypeEnum.dbOpenDynaset)Con nuestroRecordset.FindFirst "ProductName =" & "'Producto BBB'"Si .NoMatch EntoncesMsgBox "No se encontraron coincidencias"DemásourRecordset.DeleteTerminara siTerminar con'Reabrir mesaDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProductsT"End Sub |
El resultado es: