Está en la página 1de 9

Como acceder a una base de datos Access 2007 con

Ado.Net

Buenas
hace unos minutos Juan Francisco nos preguntaba como podemos acceder a una Db Access
2007 utilizando Ado.Net. Yo (al igual que él) suponia que el Microsoft Jet Provider, servía
para los nuevos archivos accdb de Microsoft Access 2007, pero la cosa ha cambiado un
poco.
En realidad ahora el acceso es mucho mas simple utilizando ADO 6.0; ya que la cadena de
conexión se simplifica hasta llegar a
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=LOCATION\DB.accdb;Persist
Security Info=False"
y podemos ver que es bastante parecida a una conexion clásica OLEDB. (gracias una vez
mas www.connectionstrings.com) ADO 6.0 está incluido en Windows Vista y es el
equivalente a ADO 2.8; un detalle más completo de la historia y versiones de Ado puede
ser consultado aqui.
Para probarlo paso a paso, lo primero que necesitamos es crear una base de datos Access
2007; como estoy a punto de recibir mi WII no tengo mucho tiempo, aprovecho y descargo
uno de los templates que ya vienen preinstalados con Access 2007.
Yo he elegido el template para manejo de proyectos y lo he descargado en mi Desktop
(ubicación física= C:\Users\brunoc\Desktop\Projects.accdb").
Luego he creado un proyecto en Visual Basic .Net y dentro de un formulario he agregado el
siguiente código en el evento Load del mismo:

1PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
2Dim cnn AsNew OleDb.OleDbConnection
3Dim dt AsNew DataTable
4Dim da AsNew OleDb.OleDbDataAdapter
5Dim cmd AsNew OleDb.OleDbCommand
6
7' abro la conexion
8 cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:\Users\brunoc\Desktop\Projects.accdb;Persist Security
Info=False"
9 cnn.Open()
10
11' creo el comando y lo lleno con la tabla empleados
12 cmd.Connection = cnn
13 cmd.CommandText = "Employees"
14 cmd.CommandType = CommandType.TableDirect
15 da.SelectCommand = cmd
16 da.Fill(dt)
17
18' muestro los resultados en la datagridview
19 Me.DataGridView1.DataSource = dt
20
21End Sub
No voy a entrar en detalle en lo relacionado a Ado y a Oledb; pero si remarcar que a partir
de ahora recordar una cadena de conexión es mucho mas simple :D.

Saludos

Microsoft Access

Conecta a una base de datos de tipo Access mediante OleDB


Dim path_Bd As String

path_Bd = App.Path & "\Nombre.mdb"

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &


_
path_Bd & ";" & "User Id=admin;Password="

Conecta a una base de datos Microsoft Access mediante ODBC. Sin password y sin
contraseña

cnn.Open "driver={Microsoft Access Driver (*.mdb)};" & _


"dbq=c:\LaBase.mdb;uid=admin;pwd="

Conecta mediante ODBC en modo exclusivo

cnn.open "Driver={Microsoft Access Driver (*.mdb)};" & _


"Dbq=C:\Labase.mdb;Exclusive=1;Uid=admin;Pwd=;"

Para .net mediante OleDB y con Password

cnn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _


"Data Source=C:\LaBase.mdb;" & _
"Jet OLEDB:Database Password=Password;"

Conecta a una base de datos Microsoft Access mediante OLEDB, usando un Grupo de
trabajo

Dim path_Bd As String

path_Bd = App.Path & "\Nombre.mdb"

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &


path_Bd & ";" & _
"Jet OLEDB:System Database=c:\Archivo.mdw", "User",
"Password"

Igual al anterior pero usando ODBC

Dim path_Bd As String

path_Bd = "c:\carpta\LaBase.mdb"

cnn.Open "driver={Microsoft Access Driver (*.mdb)};" & _


"dbq=" & path_Bd & ";" & _
"systemdb=c:\Archivo.mdw;", _
"usuario", " password "

Conectar a Access 2007

Private Sub Form_Load()


Dim cs As String
Dim cn As ADODB.Connection

Dim sPath_Access As String


' -- Ruta del archivo ACCDB
sPath_Access = App.Path & "\base\db.accdb"

cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _


sPath_Access & ";Persist Security Info=False;"

' -- Access 2007 con password


cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
sPath_Access & ";Jet OLEDB:Database Password=contraseña;"

cn.Open cs
End Sub
Crear conexiones a bases de datos de Access
Visual Studio .NET 2003

Para conectarse a una base de datos de Access, utilice el Proveedor OLE DB de


Microsoft Jet 4.0.
Nota de seguridad El almacenamiento de los detalles de la cadena de conexión (como el
nombre de servidor, el nombre de usuario y la contraseña) puede afectar a la seguridad de
la aplicación. El uso de la Seguridad integrada de Windows es un modo más seguro de
controlar el acceso a una base de datos. Para obtener más información, vea Seguridad de
bases de datos.

Existen dos maneras de conectarse a una base de datos de Access:


• Visualmente, con herramientas de tiempo de diseño.
• Mediante programación.

Conectar a una base de datos de Access en el Explorador de servidores


El establecimiento de una conexión con una base de datos de Access en el Explorador de
servidores permite crear fácilmente objetos OleDbConnection, OleDbDataAdapter y
OleDbCommand arrastrando objetos de datos desde el Explorador de servidores hasta los
formularios o diseñadores.
Para crear una conexión en el Explorador de servidores
1. En el Explorador de servidores, haga clic con el botón secundario en Conexiones
de datos y, a continuación, en Agregar conexión.
2. En el cuadro de diálogo Propiedades de vínculo de datos, elija la ficha
Proveedor.
3. Haga clic en Proveedor OLE DB de Microsoft Jet 4.0 y después en Siguiente.
4. Haga clic en el botón de puntos suspensivos (...) para buscar el archivo de Microsoft
Access (.mdb) al que desea obtener acceso.
5. Escriba el Id. de usuario que desea utilizar para la autenticación cuando inicie una
sesión en el origen de datos.
6. Escriba la Contraseña que desea utilizar para la autenticación cuando inicie una
sesión con el origen de datos.
7. Haga clic en Aceptar.
Conectar con una base de datos de Access desde la aplicación
La creación de conexiones a orígenes de datos desde la aplicación se puede llevar a cabo
visualmente utilizando las herramientas de tiempo de diseño de Visual Studio .NET
(incluidos el Explorador de servidores y el Cuadro de herramientas) o mediante
programación, creando objetos de conexión a datos en el código.

Conectar a una base de datos de Access Visualmente


Visual Studio admite la creación de objetos de datos arrastrando elementos desde el
Explorador de servidores o la ficha Datos del Cuadro de herramientas hasta el formulario o
diseñador.
Para crear una conexión desde el Explorador de servidores
1. Cree una Conexión de datos en el Explorador de servidores para la base de datos
de Access. Para obtener más información, vea la sección anterior titulada "Conectar
a una base de datos de Access en el Explorador de servidores".
2. Arrastre la conexión desde el Explorador de servidores hasta el formulario o
diseñador.
Aparecerá un objeto OleDbConnection en la bandeja de componentes.
3. Avance hasta la sección "Pasos siguientes" que aparece más adelante en este tema.
Para crear una conexión desde la ficha Datos del Cuadro de herramientas
1. Arrastre un objeto OleDbConnection hasta el formulario o diseñador.
Aparecerá un objeto OleDbConnection no configurado en la bandeja de
componentes.
2. En la ventana Propiedades, haga clic en la propiedad ConnectionString.
3. Siga uno de los procedimientos siguientes:
• Haga clic en una conexión existente en la lista desplegable.
O bien
• Haga clic en Nueva conexión para abrir Propiedades de vínculo de datos
(Cuadro de diálogo) y configure una conexión nueva.
4. Avance hasta la sección "Pasos siguientes" que aparece más adelante en este tema.

Conectar a una base de datos de Access mediante programación


Puede crear un objeto OleDbConnection directamente en el código.
Para crear una conexión mediante programación entre la aplicación y una base
de datos de Access
• El código siguiente crea un objeto OleDbConnection, define la propiedad
OleDbConnection.ConnectionString y abre la conexión.
Copiar
' Visual Basic

Public Sub ConnectToAccess()

Dim conn As New System.Data.OleDb.OleDbConnection()

' TODO: Modify the connection string and include any

' additional required properties for your database.

conn.ConnectionString = & _

"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _

"C:\Documents and Settings\username\My Documents\dbFile.mdb"

Try

conn.Open()

' Insert code to process data.

Catch ex As Exception

MessageBox.Show("Failed to connect to data source")


Finally

conn.Close()

End Try

End Sub

// C#

public void ConnectToAccess()

System.Data.OleDb.OleDbConnection conn = new

System.Data.OleDb.OleDbConnection();

// TODO: Modify the connection string and include any

// additional required properties for your database.

conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +

@"Data source= C:\Documents and Settings\username\" +

@"My Documents\AccessFile.mdb";

try

conn.Open();

// Insert code to process data.

catch (Exception ex)

MessageBox.Show("Failed to connect to data source");

finally

conn.Close();

}
}

Pasos siguientes
Ahora que ha establecido una conexión entre la aplicación y la base de datos de Access,
puede crear objetos para mostrar y actualizar datos. La tabla siguiente proporciona vínculos
a algunos temas importantes.

Para Vea

Mostrar datos de sólo lectura Recuperar datos con DataReader

Llenar un conjunto de datos con Conjuntos de datos de ADO.NET


datos

Ejecutar instrucciones de SQL Realizar operaciones de base de datos directam


directamente

También podría gustarte