Aprender DAO VBA

Crear un objeto Recordset de DAO desde una tabla en la base de datos activa

En el ejemplo de código siguiente se usa el método OpenRecordset para crear un objeto Recordset de tipo tabla para una tabla de la base de datos activa.

Crear un objeto Recordset de DAO desde un formulario

Puede crear un objeto Recordset basado en un formulario de Access. Para ello, utilice la propiedad RecordsetClone del formulario. Esto crea un objeto Recordset de tipo Dynaset que hace referencia a la misma consulta o datos base que el formulario.

Crear un objeto Recordset de DAO desde una consulta

Puede crear un objeto Recordset basado en una consulta de selección almacenada. En el siguiente ejemplo de código Current Product List , es una consulta de selección existente almacenada en la base de datos activa.

Agregar un registro a un objeto Recordset de DAO

Puede Agregar un nuevo registro a un objeto Recordset de tipo tabla o de tipo Dynaset mediante el método AddNew .

Desplazarse por un objeto Recordset de DAO

Un objeto Recordset suele tener una posición actual, con frecuencia en un registro. Al hacer referencia a los campos de un objeto Recordset, obtiene los valores del registro en la posición actual, lo que se conoce como el registro actual. Pero la posición actual también puede estar inmediatamente antes del primer registro en un objeto Recordset o inmediatamente después del último registro.En algunas circunstancias, la posición actual no se define.

Buscar un registro en un objeto Recordset de DAO dinámico o tipo instantánea

Puede usar los métodos find para localizar un registro en un objeto Recordset de tipo Dynaset o Snapshot.

Buscar un registro en un objeto Recordset de DAO tipo tabla

Use el método Seek para localizar un registro en un objeto Recordset de tipo tabla. Cuando se usa el método Seek para localizar un registro, el motor de base de datos de Access usa el índice actual de la tabla, definido por la propiedad index .

Modificar un registro existente en un objeto Recordset de DAO

Si lo prefiere, puede modificar registros existentes en un objeto Recordset de tipo tabla o tipo conjunto de registros dinámicos mediante los métodos Edit y Update.

Leer desde un campo y escribir en este en un objeto Recordset de DAO

Cuando lee o escribe datos en un campo, en realidad está leyendo o configurando la propiedad DAO Value de un objeto Field. La propiedad DAO Value es la propiedad predeterminada de un objeto Field. Por lo tanto, puede establecer la propiedad Value de DAO del campo LastName en el objeto Recordset rstEmployees de cualquiera de las siguientes formas.

Contar el número de registros de un objeto Recordset de DAO

Es posible que desee conocer el número de registros de un objeto Recordset . Por ejemplo, puede que necesite crear un formulario que muestre cuántos registros hay en cada una de las tablas de una base de datos. O puede que necesite cambiar la apariencia de un formulario o informe en función del número de registros que contiene.

Eliminar un registro de un objeto Recordset de DAO

Puede eliminar un registro existente en un objeto Recordset de tipo tabla o Dynaset mediante el método Delete. No puede eliminar registros de un objeto Recordset de tipo instantánea.

Sincronizar un registro de un objeto Recordset de DAO con el registro actual de un formulario

En el siguiente ejemplo de código se utiliza la propiedad RecordsetClone y el objeto Recordset para sincronizar un registro de un conjunto de registros con el registro actual del formulario.

Detectar los límites de un objeto Recordset de DAO

En un objeto Recordset, si intenta ir más allá del registro inicial o final, se produce un error en tiempo de ejecución. Por ejemplo, si intenta utilizar el método MoveNext cuando ya está en el último registro del objeto Recordset, se producirá un error capturable. Por esta razón, resulta útil conocer los límites del objeto Recordset.

Extraer datos de un registro en un objeto Recordset de DAO

Después de haber localizado uno o varios registros concretos, puede necesitar extraer datos para utilizarlos en la aplicación en lugar de modificar la tabla de origen subyacente.

Buscar la posición actual en un objeto Recordset de DAO

En algunas situaciones, necesita determinar cuánto se ha movido en un objeto Recordset la posición del registro actual y, quizás, indicar la posición del registro actual a un usuario. Por ejemplo, puede que quiera indicar la posición actual en un dial, un medidor u otro tipo de control similar. Hay disponibles dos propiedades que permiten indicar la posición actual: AbsolutePosition y PercentPosition.

Marcar una posición un objeto Recordset de DAO

Un marcador es una matriz de bytes generada por el sistema que identifica de forma exclusiva cada uno de los registros. La propiedad Bookmark de DAO de un objeto Recordset cambia cada vez que el usuario se mueve a un nuevo registro. Para identificar un registro, desplácese a él y, a continuación, asigne el valor de la propiedad Bookmark de DAO a una variable de tipo Variant. Para regresar al registro, establezca la propiedad Bookmark de DAO en el valor de dicha variable.

Realizar cambios masivos en un objeto Recordset de DAO

Una vez creado un objeto Recordset de tipo tabla o Dynaset, puede cambiar, eliminar o agregar nuevos registros. Sin embargo, no podrá cambiar, eliminar o agregar registros en un objeto Recordset de tipo Snapshot o de sólo avance.

Ordenar datos en un objeto Recordset de DAO

A menos que abra un objeto Recordset de tipo tabla y establezca su propiedad Index, no podrá estar seguro de que vayan a aparecer todos los registros en un orden específico. Sin embargo, generalmente necesitará recuperarlos en un orden determinado. Por ejemplo, es posible que desee ver las facturas ordenadas por número de factura de forma ascendente, o recuperar registros de empleados en orden alfabético por apellidos. Si desea ver los registros en un orden determinado, ordénelos.

Usar transacciones en un objeto Recordset de DAO

Una transacción es un conjunto de operaciones que se agrupan y administran como una sola unidad de trabajo. El trabajo en una transacción debe completarse como un conjunto; Si se produce un error en alguna parte de la transacción, se producirá un error en toda la transacción. Las transacciones ofrecen al desarrollador la capacidad de aplicar la integridad de los datos. Una vez que varias operaciones de base de datos se agrupan en una única unidad que deben tener éxito o fallar en su totalidad, la base de datos no puede alcanzar un estado incoherente. Las transacciones son comunes a la mayoría de los sistemas de administración de bases de datos.

Trabajar con datos adjuntos en DAO

En DAO (objetos de acceso a datos), los campos de datos adjuntos funcionan de la misma manera que los demás campos multivalor. El campo que contiene los datos adjuntos contiene un conjunto de registros secundario del conjunto de registros de la tabla. Hay dos nuevos métodos de DAO, LoadFromFile y SaveToFile, que trabajan exclusivamente con datos adjuntos.

Manipular campos multivalor con DAO

Los campos multivalor están representados como objetos Recordset en DAO. El conjunto de registros para un campo es secundario del conjunto de registros para la tabla que contiene el campo multivalor. Para crear una instancia del conjunto de registros secundario, use la propiedad Value del campo multivalor como se indica a continuación.