Buenas, me gustaría saber ¿cómo puede poner en código en Visual Basic la conexión a una base de datos en Access, sin utilizar el objeto data o adoc?, lo quiero para luego hacer consultas Gracias
1 respuesta
Respuesta de virmix
1
1
virmix, Que quieres que te diga, desde pequeño arreglaba enchufes, luego...
Hoy vamos a hablar de SQL que traducido significa Lenguaje de Consulta Estructurada y sirva para realizar consultas en bases de datos, este articulo va a tratar sobre como acceder a bases de datos desde Visual Basic a través de SQL. Lo primero que vamos a ver es que objetos debemos utilizar en visual basic para accedes a bases de datos, en este caso trabajaremos con una base de datos de Access (MDB). Antes que nada debemos realizar la referencia al motor de bases de datos de Microsoft para esto desde Visual Basic vamos al menu Proyecto -> Referencia y seleccionamos Microsoft DAO 3.51 Object Library (puede que tengas otra version en ves de la 3.51, igual funcionara) después de esto declaramos las variables que utilizaremos Dim BDD as DataBase 'Objeto que manejara la base de datos Dim TBL as RecordSet 'Objeto que manejara la Tabla Ahora para poder realizar la consulta en la Tabla (TBL) debemos abrir la base de datos Set BDD = OpenDatabase("mibasededatos.mdb") 'Abre la base de datos Muy Bien, una ves abierta la base de datos se puede trabajar con la tabla, lo primero que vamos a hacer es una consulta que nos devolverá todos los registros de la tabla Set TBL = BDD.OpenRecordSet("SELECT * FROM nombre_tabla") Esta simple instrucción nos llena el objeto RecordSet con todos los registros que contiene la tabla indicada en "nombre_tabla", en este caso nos conviene más utilizar la siguiente sentencia que realiza la misma operación Set TBL = BDD.OpenRecordSet("nombre_tabla") Una ves realizada cualquiera de las dos sentencias ya podemos recorrer la tabla, el código que viene a continuación recorre todos los registros que contiene el objecto RecordSet llamado TBL While NOT TBL.EOF 'La propiedad EOF se pone TRUE cuando se a llegado al final de la tabla msgbox TBL!nombre_campo 'Accede al valor del campo especificado en nombre_campo TBL. MoveNext 'Adelantamos hasta el registro siguienteWend Wend Bueno lo anterior no era SQL sino una breve introducción al Modelo de Objetos de DAO, ahora nos metemos de lleno en la potencia del SQL, vamos a realizar nuestra primera consulta de selección, para esto vamos a decir que la Tabla también se puede abrir con la instrucción TBL. OpenRecordSet("cadena_sql"). Vamos a realizar nuestra primera consulta SQL TBL.OpenRecordset("SELECT * FROM Autos WHERE Patente = 589975") Significa que, seleccione (SELECT) todos los campos (*) de (FROM) la tabla llamada Autos (Autos) donde (WHERE) Patente se igual a 589975 (Patente = 589975), sobre esta base se pueden realizar algunos cambios y obtendremos otra consulta, por ejemplo podemos cambiar "Patente = 589975" por "Patente < 589975" y nos devolvera todos los autos con la patente menor a 589975 o si tenemos un campo llamado modelo podemos reemplazar "Patente = 589975" por "modelo > 99" y nos devolverá todos lo autos con el modelo mayor a 99 (1999), pero que tal si queremos que nos devuelva todos los autos con Patente menor a 34433 y de modelo 00 (2000), ... la solución esta en los operadores lógicos, no se asusten, miremos un ejemplo TBL.OpenRecordset("SELECT * FROM Autos WHERE Patente < 34433 AND Modelo = 00 " ) Aquí hemos utilizado el operador lógico AND (significa Y), esto traducido seria así: Seleccionar todos los campos de la tabla autos donde la Patente sea menor a 34433 Y el modelo igual a 00, ¿se entiende?. Bueno si se entiende vamos a presentar otro problema, que tal si ahora quiero todo lo demás menos los autos de color rojo, si, la respuesta esta otra ves en los operadores lógicos, en este caso NOT (no), y el modo de uso es el siguiente TBL.OpenRecordset("SELECT * FROM Autos WHERE Patente < 34433 AND Modelo = 00 AND NOT Color = 'Rojo'" ) Bueno, me parece que no hace falta explicar nada, lo único es que fíjate el detalle de las comillas simples en la palabra Rojo, esto se debe a que en la base de datos se ha definido el campo color como una cadena de caracteres, ahora si la consulta es sobre una compo del tipo FECHA (date/time) la consulta seria así TBL.OpenRecordset("SELECT * FROM Autos WHERE CreadoEl = #14/2/99#" ) Después de realizar la consulta el objeto TBL se carga solo con los registros que cumplen con lo establecido en la instrucción OpenRecordSet del objeto TBL. El SQL es muy potente y fácil de aprender, pero lo que vimos acá es solo una pequeña parte de lo que este lenguaje de consulta puede hacer. Más adelante veremos las llamadas consultas de acción que sirven para agregar o eliminar registros de una tabla.