Este tutorial es viejo viejo, de cuando recién aprendía a hacer conexiones a bases de datos con el VB6 en aquellos fines de los 90s/inicios de los 2000s. Lo dejo aquí como parte de la historia de la informatica.
La coneja no tiene nada que ver con el tutorial, pero creo que es un bonito separador :)
Empezamos: 
Sucede que quienes 
programamos, en algún 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 señales o a las 
llamadas a Apis. Lo bueno es que una vez que se domina lo básico son lo 
más fácil del mundo. Y lo mejor es que los lenguajes de programación de 
alto nivel ya vienen con herramientas para manejas bases de datos de 
todo tipo.
Y eso es lo que quiero mostrar aquí: lo básico para manejar una pequeña 
base de datos en Access 2002 en el lenguaje de programación más fácil 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 código fuente) se pueden bajar de aquí.
Y ahora una explicación:
Los datos a agregar o eliminar se ingresan en Text1 y Text2. La 
navegación se hace con los botones Anterior y Siguiente (Command3 y 
Command4). El botón Limpiar (Command2) es sólo para borrar lo escrito en
 Text1 y Text2. En el control List1 aparecen todos los registros que 
coinciden con la búsqueda del texto en Text3 realizada al oprimir 
"Buscar Todos" (Command7), en cambio el botón "Buscar" (Command5) sólo 
hace aparecer el primer resultado encontrado.
Para manejar la base de datos no es necesario añadir ningún control especial, basta declarar dos objetos:
| Dim rs As Recordset Dim db As Connection  | 
  
"db" realiza la conexión con la base de datos y "rs" permitirá recorrer 
los resgistros, borrarlos, añadirlos y buscarlos. Para conextar con la 
base de datos (llamada "bd1.mdb") bastan estas líneas:
| db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & pathBD & ";" rs.Open "select * from Datos", db, adOpenDynamic, adLockOptimistic  | 
  
bd1.mdb sólo tiene dos tablas: "Datos" y "datos2". El programa sólo 
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 también en qué programa y en qué versión 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 parámetro 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 lógica booleana. Así, si yo quisiera todos 
los registros cuyos Nombres coinciden con lo que se ingresa en Text3 
(una búsqueda) 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 pondría:
| 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 búsqueda si son de tipo String, estén 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 
después de la ejecución 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 numérica, "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 función propia de rs: AddNew y luego 
especificar los campos con la función "Fields" a donde se añadirán los 
nuevos datos. Al recorrer los registros de atrás o hacia adelante 
(propiedades MoveNext, MovePrevious, MoveLast y MoveFirst), o al hacer 
una búsqueda, "Fields" se coloca automáticamente 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 búsquedas 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 búsqueda no se encuentra nada, EOF y BOF serán True.

No hay comentarios:
Publicar un comentario