Está en la página 1de 3

Las operaciones básicas DML de Visual Basic son:

a. apertura y cierre de la base de datos


b. escritura de datos (AddNew,Edit, Update y Delete [que son los equivalentes al
DML de SQL: básicamente insert, update y delete)
c. búsqueda de datos (fundamentalmente el método Seek de VB; y en algunos
casos FindFirst,
FindNext, etc.)
d. movimiento de datos (que mueven el apuntador de registro entre las tablas:
MoveFirst, MovLast, etc.)

a. Apertura y cierre de la base de datos: se encargan de abrir y cerrar una base


de datos los siguientes métodos:

• OpenDatabase
• OpenRecordSet
• Close
OpenDatabase (Archivo) se encarga de abrir la base de datos y ponerla a
disposición de DAO a través de la creación de un objeto Database. Este objeto puede
crearse mediante código o bien al añadir un control Data a un Formulario. [para la
práctica recomendamos ver tanto la práctica como la teoría de base vista en los Proyectos
Cargos y DBGrid]. OpenRecordset
(Tabla, Tipo) es un método del objeto
Database que devuelve un objeto Recorset.
Un Recordset es un objeto de Visual Basic
que representa un conjunto lógico de
registros; y en definitiva está
representando los registros físicos de una
tabla o de una consulta. El Recordset es
el objeto fundamental de DML ya
que al consultar el Recorset y manipularlo
se puede afectar directamente la estructura
física de la base de datos.
Un RecordSet puede ser abierto de cinco
formas distintas; es decir, existen cinco
tipos de RecordSet: Table, Dynaset,
Snapshot, Dynamic y ForwarConly. La
siguiente tabla resume cada tipo y su
funcionalidad así como las constantes
usuales que se utilizan para declararlos.
Un objeto TableDef representa la
estructura de una tabla de la base de datos, en cambio un objeto Recordset representa a
los registros contenidos en una tabla que pertenece a la base de datos abierta.

En el Proyecto DMLVB en su formulario Cargos5 puede verse un ejemplo de estos


métodos.

Close es un método de la base de datos abierta. Su sintaxis es: BaseDeDatos.Close. En


los ejemplos prácticos también encontrará su utilización en un entorno gráfico.
La siguiente imagen muestra la lógica para utilizar los métodos anteriores:
b. Escritura de datos
Para la escritura de datos se utiliza lenguaje DML de Visual Basic con métodos que se
aplican sobre el Recordset:

• AddNew
• Edit
• Update
• Delete

c. Búsqueda de datos utilizando el método Seek

Existen varias maneras de realizar la búsqueda de datos en Visual Basic aplicando el


lenguaje de manipulación de datos. Una de esas formas, tal vez la más eficiente, es
utilizando el método Seek del objeto Recordset.
Este método tiene la sintaxis: Recordset.Seek comparacion, valor. Para poder
utilizarlo debemos contar con una clave primaria y a su vez el Recordset debe ser del tipo
Table. No sirve para efectuar búsquedas sobre campos que no sean clave primaria.
Para hacer esto es necesario declarar un índice mediante programación utilizando la
propiedad Recordset.index = 'nombre del índice', es decir que el índice es la clave
primaria.
Por lo tanto, para su aplicación es necesario primero establecer un índice mediante la
propiedad index y además utilizar el método Recordset.NoMatch que devolverá un valor
lógico de True o False según si la búsqueda tuvo o no éxito.
Las búsquedas son fundamentales puesto que es imposible realizar una
modificación o una eliminación sin efectuar antes una búsqueda en el Recordset.

La diferencia entre Seek y otros métodos existentes como FindFirst, FindNext,


FindPreious,FindLast es que Seek sólo puede utilizarse con claves primarias, utiliza
un índice y el Recordset debe ser del tipo Table.
Los otros métodos para búsqueda mencionados utilizan cualquier campo que no sea clave
primaria. En lugar de utilizar un índice para la búsqueda, la misma se lleva a cabo en base
a una condición y no un índice. Finalmente el Recordset debe ser del tipo Dynaset.
Para verificar si se cumple o no la condición hay que utilizar el método NoMatch.

Un ejemplo típico en el que deberíamos utilizar Seek es cuando queremos obtener un


registro único y paticular. Por ejemplo un empleado en particular, entonces utilizaríamos
este método con la clave primaria IdEmp.
En cambio, si quisiera encontrar todos los empleados que tienen un código de cargo
determinado, en este caso la condición sería 'que el idcargo sea igual a X' y podemos
aplicarla con el método FindFirst que devolverá el primer registro que coincida con la
búsqueda; luego con FindNext podremos encontrar el siguiente registro que cumple con
la condición y así sucesivamente.

Estos últimos métodos están desarrollados en forma práctica en el Proyecto DMLVB en


el formulario Cargos7.

d. Movimiento de datos (moverse o navegar entre registros de un Recordset)

Los métodos MoveFirst, MoveLast, MoveNext y MovePreious permiten mover el


apuntador de registro al primer, último, siguiente o anterior registro respecto a dónde se
encuentra el apuntador de registro antes de aplicar el método.
La diferencia entre MoveFisrt y FindFirst es que MoveFirst mueve el puntero de registro al
primer elemento del Recordset y FindFirst mueve el puntero de registro al primer registro
del Recordset que coincide con la condición de búsqueda.
Estos métodos son los que utiliza el control Data para navegar entre los distintos registros
del Recorset abierto y al cual referencia este objeto visual. En el Proyecto DMLVB,
formulario Cargos8 se encuentra desarrollado en forma práctica la utilización de estos
métodos.

También podría gustarte