Introduccion al SQL desde Visual Basic

Escrito por Mauro Rondinelli el Miércoles 17 de Enero de 2001 a las 00:00hs

Mumbanet-google

Bueno, 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 atraves de SQL.

Lo primero que vamos a ver es que objetos devemos 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) despues 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 devolvera todos los registros de la tabla...

Set TBL = BDD.OpenRecordSet("SELECT * FROM nombre_tabla")

Esta simple instruccion nos llena el objeto RecordSet con todos los registros que contiene la tabla indicada en "nombre_tabla", en este caso nos conviene mas utilizar la siguiente sentencia que realiza la misma operacion...

Set TBL = BDD.OpenRecordSet("nombre_tabla")

Una ves realizada cualquiera de las dos sentencias ya podemos recorrer la tabla, el codigo que viene a continuacion 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 introduccion al Modelo de Objetos de DAO, ahora nos metemos de lleno en la potencia del SQL, vamos a realizar nuestra primera consulta de seleccion, para esto vamos a decir que la Tabla tambien se puede abrir con la instruccion 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 devolvera 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 solucion esta en los operadores logicos, no se asusten, miremos un ejemplo...

TBL.OpenRecordset("SELECT * FROM Autos WHERE Patente < 34433 AND Modelo = 00 ")

Aqui hemos utilizado el operador logico AND (significa Y), esto traducido seria asi: Selecionar 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 demas menos los autos de color rojo, si, la respuesta esta otra ves en los operadores logicos, 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 unico es que fijate el detalle de las comillas simples en la palabra Rojo, esto se debe a que en la base de datos se a 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 asi...

TBL.OpenRecordset("SELECT * FROM Autos WHERE CreadoEl = #14/2/99#" )

Despues de realizar la consulta el objeto TBL se carga solo con los registros que cumplen con lo establecido en la instruccion OpenRecordSet del objeto TBL.

El SQL es muy potente y facil de aprender, pero lo que vimos aca es solo una pequeña parte de lo que este lenguaje de consulta puede hacer. Mas adelante veremos las llamadas consultas de accion que sirven para agregar o eliminar registros de una tabla.

Saludos.


comentarios



  1. Holaaaaaaa.... necesito ayuda, por favor me podrian ayudar con respecto a: como conctar una base de datos de datos con sql server a visual basic ??? me urge, es para un trabajo para poder graduarme... Se los agradesco



  2. Hola, mi pregunta es como conectar mi aplicacion en C# a una base de datos que se encuentra en un servidor con el que solo me puedo cominicar con el por medio de internet, y la aplicacion me tiene que mostrar algunos datos de esa base de datos que esta hecha en SQL server



  3. kok



  4. hola¡¡¡
    me podrian ayudar mandandome mas ejercicios de sql con visual gracias---



  5. Hola...mi problema es q tengo un programa para video club y necesito en el modulo de la caja ingresaar el pago del alquiler con formato moneda pero al hacerlo no lo guarda en la base de datos...cual puede ser el error??



  6. bueno es una explicacion muy clara y bastante util se agradece!
    rindo en unas horas en la universidad consultas en SQL basicas y con algun enlace de tablas y no se nada xD (eso por no ir!!) asi que esto me sirvio bastante



  7. aclaro, la base de datos es en Access



  8. Hola. Tuve un invonveniente en mi trabajo y quiero vengarme ya que no reconocen mi trabajo. Yo he creado una base de datos de forma gratuita a modo de trabajo extra, Ahora mis jefes dependen de esa base de datos pero no quieren que figure ni siquiera mi nombre como autor. Estoy muy molesto ya que me están robando un objeto de propiedad intelectual. Yo estoy por renunciar a mi empleo. Pero antes quiero saber si se puede lograr que cuando el autonumérico de la tabla principal llegue a un determinado número, la base de datos se cierre para que no puedan usarla más una vez que supere tal número. Me quieren robar y no sé que hacer.. por favor si alguien sabe como puedo lograr esto.



  9. Espero alguien de ustedes me pueda ayudar con esto que es urgente pues llevo tiempo tratando de hacerlo para mi trabajo y no he podido....

    SQL = "SELECT varnomcampo FROM Tabla WHERE varnomcampo= & Variable & "

    Es decir, que el nombre del campo lo seleccione de una variable
    y el valor del campo también.
    Espero haber sido claro.
    Gracias.



  10. agradezco la informacion; pues es concreta y muy completa



  11. tego esta consulta, pero la consulta no lo toma como fecha si no como numeros, me imagino que los ha de sumar los numeros de la fecha y asi genera la consulta....

    Data1.RecordSource = "SELECT S.Name_Supervisor,O.Name_Operador,R.Ventas,R.Faltantes,R.Errores,R.Faltas,R.Articulo_Min,R.Socios_Hora,R.Fecha_Reg FROM tblRegistro as R, tblSupervisor as S, tblOperador as O Where R.IdOperador = O.IdOperador AND O.IdSupervisor = S.IdSupervisor AND R.Fecha_Reg > #" & fecha & "#"

    tengo unos registros con fechas de 03/05/2008, 02/05/2008, 04/05/2008 y cuando hago una consulta que variable fecha sea 06/05/2008, no me genera ninguna consulta, pero si le pongo 04/05/2008 me arroja todos los datos....



  12. Muchas gracias por la info me a sido de gran ayuda



  13. Omar, si no te mal interpreto seria asi como deberias consultar datos de una DB cuando el argumento es una variable:
    SQL = "SELECT * FROM Tabla WHERE Nombre = '" & Variable & "'"
    *En la sentencia podes incluir tantas variable como quieras, siempre y cuando respetes la sintaxis: COMANDO(Select, Insert, Update, Delete, Create...), CLAUSULA(From, Where...), OPERADOR(Hay una bocha). Y uniendo todas las cadenas de texto que componen la sentencia.
    Espero ser claro. Slds



  14. Buenas Tardes : al guien me puede ayudar con una sentencia de sql desde visual basic 60? la duda es como hago para seleccionar datos donde la condicion es una variable?. gracias.

    ejemplo del codigo que tengo es :

    v2005.Open "select * from OESLSHST_SQL where (hst_year = '2005') and (slspsn_no = variable )", CNN, adOpenDynamic, adLockOptimistic

    donde va la palabra variable cambia de acuerdo a un case, pero no se como hacer que el select se ejecute. estoy perdido en ese `pedazo de sintaxis.

    Gracias de antemano por la colaboracion prestada



  15. Hola, podrian comentar como se puede realizar una conexion desde VB a una base de datos en sql.

    Gracias.



  16. quisiera seber si me pueden enviar ejemplos de ingresar datos usando un formulario en visual basic a SQL



  17. Hola, hice la aplicacion como se indico pero cuando la ejecuto me sale "Error 3343 en tiempo de ejecucion - No se reconoce el formato de base de datos "C:PROGRAMASVISUAL BASICBASE DE DATOSAmigos.mdb". Por favor si me pueden ayudar... mi correo es hot_fenix@hotmail.com les agradezco de antemano su ayuda.........



  18. el from autos y el where patente que es en la base de datos??????????????????????????????????



  19. oigan miren este codigo que estoy escribiendo, me sale error de ejecucion:

    Public Function comprobarNom(Nom As String)
    conexion
    Set rst = New Recordset

    rst.Open "SELECT * FROM Hosting h WHERE h.NombreHosting = Nom", Cnn, adOpenStatic, adLockOptimistic
    If rst.RecordCount > 0 Then
    comprobarNom = 1
    Else
    comprobarNom = 0
    End If
    Cnn.Close

    quiero saber si alguno de ustedes me dice donde esta el error, muchas gracias



  20. ESTA BIEN LA EXPLICACION`PERO QUE PASA SI QUIERO CAMBIAR LOS DATOS A SELECCIONAR SIN TENER QUE ENTRAR A SQL



  21. Como le hago para inicializar una sesion de sql en vb 6.0 edecir si tengo un programa donde los usuarios deben tener diferentes limitaciones en el acceso a los datos como inicio la sesion desde vb?? me urge un poquito la inf, de antemano gracias



  22. Cesar
    si todavia quieres la ayuda q pides ... escribeme a
    jctwamozart@hotmail.com.



  23. hola tengo una duda que no eh podido resolver.....("SELECT * FROM Autos " )

    ahora bien yo al usuario le doy a elejir mediante un combo box los campos de las tablas que kiera ver en un data grid, guardo los campos seleccionados en una variable y lo que no se es como usar esa variable en el select ej:

    el usuario elijio modelo y yo la guarde en la variable opcion1, como ago la select para que el data grid me muestre solo el campo modelo de la tabla autos ?
    ("SELECT opcion1 FROM Autos") asi no me anda jeje, como debo hacer ??



  24. EL QUE ME PUEDA AYUDAR CON GUSTO LE ENVIO EL ARCHIVO QUE LLEVO. REALMENTE ESTOY APRENDIENDO Y ESTOY HACIENDO UNA BASE DE DATOS EN ACCESS Y LA VERDAD NOSE COMO AGREGAR UN UN REGISTRO EN UNA TABLA DESPUES DE VALIDAR QUE EL REGISTRO NO EXISTA, YA PUDE VERIFICAR QUE SI EL REGISTRO EXISTE SUME SU VALO O RESTE SEGUN SEA EL CASO- LE AGRADEZCO EL QUE ME PUEDA AYUDAR EN ESTE CASO., josefer1976@hotmail.com.

    SALUDOS DESDE MI LINDA COLOMBIA



  25. HOLA TENGO UN GRAN PROBLEMA Y ES QUE MI MAENJO EN ACCESS ES LIMITADO Y LA VERDAD QUISIERA SI ME PUDIERAN INDICAR COMO AGREGAR UN REGISTRO.



  26. siempre pensé que este metodo era DAO, al parecer estaba equivocado



  27. como hacer la conexion de sql con visual basic estoy empezandoa trabajar en eso



  28. ta buena la intro a SQL, aunque medio cortina la cosa... pero para principiantes va re bien, lo que quiero es saber como encuentro una tupla de datos en una bd preguntando a cerca de un codigo que introduzca en un textbox (con SQL), si sabes como publicalo porfa.... XD



  29. pss esta bien la explicacion pero necesitaba un poco mas .
    gracias bye



  30. Excelente explicacion!! gracias



  31. Hola
    Gracias poe la informacion, me ha seiso de gran utilidad

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API