Vous êtes sur la page 1sur 3

BASES DE DATOS CON VISUAL BASIC 6

Sucede que quienes programamos, en algn momento, tenemos que toparnos con las bases de datos queramos o no. Lo malo es que stas son un mundo muy diferente a los punteros, al manejo de puertos, a la captura de seales o a las llamadas a Apis. Lo bueno es que una vez que se domina lo bsico son lo ms fcil del mundo. Y lo mejor es que los lenguajes de programacin de alto nivel ya vienen con herramientas para manejas bases de datos de todo tipo. Y eso es lo que quiero mostrar aqu: lo bsico para manejar una pequea base de datos en Access 2002 en el lenguaje de programacin ms fcil de entender de la Historia: Visual Basic 6. Antes que nada hay que cargar el componente ADO (Click derecho en la barra de herramientas -> Componentes -> Microsoft ADO Data Control 6.0) y ponerlo en el formulario. Luego se guarda y se borra el componente ADO y, si se quiere, la referencia en la barra de herramientas. Esto es para que el Visual Basic reconozca los objetos Recordset y Connection. El programa (con su cdigo fuente) se pueden bajar de aqu.

Y ahora una explicacin: Los datos a agregar o eliminar se ingresan en Text1 y Text2. La navegacin se hace con los botones Anterior y Siguiente (Command3 y Command4). El botn Limpiar (Command2) es slo para borrar lo escrito en Text1 y Text2. En el control List1 aparecen todos los registros que coinciden con la bsqueda del texto en Text3 realizada al oprimir "Buscar Todos" (Command7), en cambio el botn "Buscar" (Command5) slo hace aparecer el primer resultado encontrado. Para manejar la base de datos no es necesario aadir ningn control especial, basta declarar dos objetos:

Dim rs As Recordset Dim db As Connection

"db" realiza la conexin con la base de datos y "rs" permitir recorrer los resgistros, borrarlos, aadirlos y buscarlos. Para conextar con la base de datos (llamada "bd1.mdb") bastan estas lneas:

db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & pathBD & ";" rs.Open "select * from Datos", db, adOpenDynamic, adLockOptimistic

bd1.mdb slo tiene dos tablas: "Datos" y "datos2". El programa slo trabaja con "Datos". El programador debe saber qu tablas y qu campos tiene su base de datos para poder trabajar con ella. Es importante saber tambin en qu programa y en qu versin est hecha la base de datos, sino no podr conectar. Para versiones anteriores de Access se pone: db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & pathBD & ";" Aqu hay que observar el primer parmetro que se le pasa a rs.Open: "select * from Datos" esto significa que rs dee recibir todos los registros de la tabla Datos de la base de datos. "select" es un comando de los Procedimientos Almacenados de las bases de datos. Los Procedimientos Almacenados son rdenes que stas interpretan y ejecutan y se basan en la lgica booleana. As, si yo quisiera todos los registros cuyos Nombres coinciden con lo que se ingresa en Text3 (una bsqueda) basta poner:

rs.Close rs.Open "select * from Datos where Nombre = '" & Text3.Text & "'", db, adOpenDynamic, adLockOptimistic

Para buscar todos los registros que coincidan con Text1 con Text2 (Nombre o Apellido) se pondra:

rs.Open "select * from Datos where Nombre = '" & Text1.Text & "' or Apellido = '" & Text2.Text & "'", db, adOpenDynamic, adLockOptimistic

(hay que tener cuidado de que el contenido de Text1 y Text2, o las condiciones de bsqueda si son de tipo String, estn entre comillas simples). Como rs se vuelve a abrir, es necesario cerrarlo previamente. Otro comando es "delete", cuando se lo usa el objeto rs se cierra despus de la ejecucin porllo que ya no es necesario poner rs.Close. Pero para que se pueda seguir navegando entre todos los registros de la tabla Datos se debe vovler a abrir.

rs.Open "delete * from Datos where Nombre = '" & Text1.Text & "' and Apellido = '" & Text2.Text & "'", db, adOpenDynamic, adLockOptimistic

Esta orden borra los registros cuyo Nombre y Apellido coincidan con los textos en Text1 y Text2. Los procedimientos almacenados permiten realizar muchas cosas en la base de datos. Por ejemplo, imaginando que se tiene una tabla "Empleados" con campos "Edad" que contiene data numrica, "ID" y "Profesion". Luego de hacer las conexiones respectivas, para obtener a todos los ID y las profesiones correspondientes a mayores de edad se puede poner: select ID, Profesion from Empleados where Edad > 18 Para agregar un registro basta una funcin propia de rs: AddNew y luego especificar los campos con la funcin "Fields" a donde se aadirn los nuevos datos. Al recorrer los registros de atrs o hacia adelante (propiedades MoveNext, MovePrevious, MoveLast y MoveFirst), o al hacer una bsqueda, "Fields" se coloca automticamente en el registro actual. Las propiedades de rs: EOF y BOF indican si se est al final o al principio de la tabla Datos. Mientras no se lo est, sus valores son False. Tanto las bsquedas como los recorridos y los borrados de los registros en las tablas de la base de datos deben hacerse mientras EOF y BOF son False, si no nos "saldremos" de la base de datos y nos botar error. Si en una bsqueda no se encuentra nada, EOF y BOF sern True.

Vous aimerez peut-être aussi