martes, 1 de septiembre de 2009

Visual Basic 2008 y Access 2007


Empezando con lo mas básico en Visual.net, este es el código fuente de como conectar Access 2007 con VB 2008.
----------------------------------------------------------------

Imports System.Data.OleDb

Public Class Form1

Dim dbConnection As Data.OleDb.OleDbConnection
Dim dbDataSet As Data.DataSet
Dim dbDataAdapter As Data.OleDb.OleDbDataAdapter

Dim ConsultaSQL As String
Dim CadenaConexion, RutaNombreBD As String 'Para los que estan criticando, ya se puede declarar variables de esta forma en VB2008

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ConsultaSQL = TextBox1.Text
'Application.StartupPath obtiene la ruta de nuestra carpeta donde se encuentra el exe
'como todavia estamos desarrollando y probando nos llevara a la carpeta DEBUG
RutaNombreBD = Application.StartupPath & "\Base2007.accdb"

'REALIZANDO LA CONEXION
'CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ArchivoDatos 'para access 2003
CadenaConexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
RutaNombreBD & ";Jet OLEDB:Database Password=;"
Try
dbConnection = New Data.OleDb.OleDbConnection(CadenaConexion)
Catch x As Exception
MessageBox.Show("Error al crear la conexión:" & vbCrLf & x.Message)
Exit Sub
End Try
dbConnection.Open()

'CREANDO DATASET (Crea una BD vacia en memoria hasta donde entendi)
dbDataSet = New Data.DataSet()

'CREANDO DATAADAPTER (Nos permite acceder a los datos físicos de la base de datos)
'sera como nuestro puente entre la DB real y el DATASET
dbDataAdapter = New Data.OleDb.OleDbDataAdapter(ConsultaSQL, dbConnection)

'CommandBuilder no se usa nada más pasar comandos SQL al DataAdapter
'y este pueda añadir, modificar y eliminar datos de la DB.
Dim commandBuilder As New Data.OleDb.OleDbCommandBuilder(dbDataAdapter)
dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey 'Esta linea es para no tener problemas con la clave principal

'Llenamos el objeto DataSet con los datos del DataAdapter
'es como crear una nueva tabla virtual dentro el DATASET
'El 2do parametro es el nombre que colocamos a nuestra nueva tabla virtual
dbDataAdapter.Fill(dbDataSet, "TablaX")

'MOSTRANDO LOS DATOS EN UNA GRILLA
DataGridView1.DataSource = dbDataSet
DataGridView1.DataMember = "TablaX"
DataGridView1.Refresh()
End Sub
End Class

y si le gusta la comodidad, aqui les dejo todo el código fuente para descargarse.
http://grupos.emagister.com/ficheros/vcruzada?idGrupo=1024&idFichero=223406