domingo, 11 de septiembre de 2011

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

Por: Víctor M. Saldaña Núñez
Sugiero que para las acciones de conexión a una base de datos siempre se realicen mediante una función, ya que de esta manera solo se ejerce la conexión, se efectúa el acceso y se lleva a cabo la solicitud deseada, se realiza en ese momento el proceso y después se cierra la conexión. Si es una consulta la información traída será guardada en una tabla o un DataSet que permitirá ser entregado como resultado de salida para después poder trabajar con la información contenida en cualquier otro evento que así se indique o se necesite, veamos el siguiente ejemplo:
En declaraciones generales poner:
 Imports System
 Imports System.Data
 Imports System.Data.OleDb
 Imports System.Windows.Forms

Después crear la siguiente función que permitirá traer un conjunto de registros:

Function clsLlenaCombo(ByVal pstrTipo As String, ByVal pstrSql As String, ByVal pNomTabla As String) As DataSet
        Dim oCnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Sicso\DbSicso\practica.mdb;Jet OLEDB:Database Password=IS345ABV;")
        Dim dsDatos As New DataSet

        Try
            oCnn.Open()
            If pstrTipo = "CargaDatos" Then
                Dim oCmd As New OleDbDataAdapter(pstrSql, oCnn)
                oCmd.Fill(dsDatos, pNomTabla)
            End If

        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            oCnn.Close()
            oCnn.Dispose()
            oCnn = Nothing
        End Try

        clsLlenaCombo = dsDatos

End Function
Y cargar los datos en un evento en el que podría encontrarse el siguiente código:
Dim dsEnt As DataSet
      Dim strSql As String

'*** Carga combo de Entidad
        strSql = "Select vEnt_Cve, vEnt_NombreEnt from sicso_Entidad"
        dsEnt = clsPrin.clsLlenaCombo("CargaDatos", strSql, "Entidad")
        cboEnt.DataSource = dsEnt.Tables("Entidad")
        cboEnt.DisplayMember = dsEnt.Tables("Entidad").Columns(1).ToString
        cboEnt.ValueMember = dsEnt.Tables("Entidad").Columns(0).ToString

o en su defecto si se desea traer solo los datos de un registro o un en su defecto un dato en especial podrá efectuarlo de la siguiente manera:
Function vsBuscador(ByVal pstrCadena As String, ByVal pstrClave As String) As Boolean
        Dim Ocnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sicso\DbSicso\practica.mdb;Jet OLEDB:Database Password= IS345ABV;")
        Dim Ocmd As New OleDbCommand
        Dim strCad As String
        Dim blnResultado As Boolean
        Try
            strCad = pstrCadena & pstrClave & "'"
            Ocmd = New OleDbCommand(strCad, Ocnn)
            Ocnn.Open()
            blnResultado = Ocmd.ExecuteScalar
            Return blnResultado

        Catch ex As Exception
            Throw New Exception(ex.Message)

        End Try
Y cargar los datos en un evento en el que podría encontrarse el siguiente código:
Public Function vsVerificaDatos(ByVal pOpcion As String, ByVal pstrUsuario As String, ByVal pstrContrasena As String) As String

Dim oCmd As New OleDbCommand
Dim strVerifica As String
Dim strSql As String

If pOpcion = "TraeUsuario" Then
strSql = "Select vUsua_NomEmp From Sicso_Usuario "
strSql = strSql & "Where vUsua_Nombre ='" & pstrUsuario & "' and "
strSql = strSql & "vUsua_Contrasena = '" & pstrContrasena & "'"
oCmd = New OleDbCommand(strSql, oCnn)
Else
            strVerifica = ""
End If
oCnn.Open()
strVerifica = oCmd.ExecuteScalar
vsVerificaDatos = strVerifica
End Function


No hay comentarios:

Publicar un comentario