domingo, 11 de septiembre de 2011

Conectar una base de datos de Access con Visual Basic 6.0.

Escrito por: Víctor M. Saldaña Núñez
La forma de poder hacer conexión a una base de datos de Access con Visual basic es utilizando su motor de ADO de la siguiente manera:
Cuando estamos trabajando con Visual Basic ver. 6.0 , es importante hacer referencia a:
Microsoft ActiveX Data Objects 2.1 Library o en su defecto a  Microsoft ActiveX Data Objects 2.5 Library o en su defecto a Microsoft ActiveX Data Objects 2.6 Library.
Para esto seleccionaremos en el menú principal del lenguaje en la opción “Proyecto”, aparecerá el submenú y seleccionará la opción “Referencias”, les presentará una ventana donde se encontraran con las referencias que ya están seleccionadas mostrándose con una paloma en un cuadrito al principio y después las referencias que no están seleccionadas se mostraran con un cuadrito en blanco.
Una vez que se ha activado el acceso a esta referencia entonces ya se puede efectuar la creación de las variables que formaran parte en el proceso de conexión como son:
En el área de generales, poner abajo del option explicit lo siguiente:
Dim oCnn as new Adodb.Connection
Dim oRs as new Adodb.Recordset

Puedes realizarlo creando una función o un procedimiento de conexión exclusivamente, el siguiente ejemplo que indicare se efectuará en base a un procedimiento el cual cada vez que se desee crear la conexión solo se le llamará a este procedimiento. Para esto, deberá contener las siguientes instrucciones:
Sub sConecta()
strConex = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Textra\DbTextra\Hextras.mdb;Jet OLEDB:Database Password=heper2008"
    On Error GoTo Cierra_Conex
    With cnnConec
        .ConnectionString = strConex
        .ConnectionTimeout = 300
        .Open
        strMensaje = "Conectado"
        strRespuesta = MsgBox(strMensaje)
        Exit Sub
    End With
   
Cierra_Conex:
    Set cnnConec = Nothing
End Sub

El procedimiento “sConecta”, toma los datos del proveedor que se va a utilizar para abrir la conexión que en este caso es Microsoft.Jet.OLEDB.4.0; este permitirá abrir los archivos de Access 2000, 2003. El Proveedor Microsoft.Jet.OLEDB.3.5 permitirá abrir los archivos de Access 95 y 97, esto se dio de esta forma ya que según se fue avanzando y mejorando, Microsoft fue actualizando su proveedor de conexión para este tipo de archivo. Actualmente para hacer conexión a un archivo Access 2007 se utiliza con el siguiente Proveedor “Microsoft.ACE.OLEDB.12.0
Una vez que se tiene el procedimiento “sConecta”, puedes efectuar el acceso a una tabla dada de la base de datos conectada, efectuando por ejemplo una consulta, como se muestra en el siguiente ejemplo.

Private Sub cmdConsulta_Click()
   Call sConecta
    strSql = "Select * from hext_catper order by cper_nombrec"
    rsDato.Open strSql, cnnConec, adOpenDynamic, adLockOptimistic
    With rsDato
        .MoveFirst
        intNum = 0
        cboDatos.Clear
        cboDatos.AddItem ""
        cboDatos.ItemData(cboDatos.NewIndex) = intNum
        Do Until .EOF
            intNum = intNum + 1
            cboDatos.AddItem .Fields("cper_NombreC") & Space(10) & "|" & .Fields("cper_clave")
            cboDatos.ItemData(cboDatos.NewIndex) = intNum
            If .EOF Then
                Exit Do
            Else
                .MoveNext
            End If
        Loop
        rsDato.Close
        Set rsDato = Nothing
        Exit Sub
    End With
End Sub

No hay comentarios:

Publicar un comentario