Este post va dirigido principalmente a mis alumnos de Ingeniería en Software, pero puede ser útil a varios más.
Primero que nada, eso de MS Access se que no va ya con mi filosofía de herramientas a utilizar, pero muchas veces es necesario ya sea porque es la única herramienta que se conoce o bien es un requisito del cliente/maestro (esto último no es mi caso
).
Para realizar la conexión y las transacciones con la base de datos voy a utilizar una librería que se puede descargar conexionOleDb.dll y también la base de datos.
El motivo de utilizar esta librería es para agilizar las cosas y obviar detalles básicos de una conexión a BD (adaptador, conector, datatables, etc.)
La librería cuenta con los siguientes métodos y atributos:

El primer paso es crear nuestro proyecto y agregar la referencia a la librería, esta referencia se agrega desde el "Explorador de Soluciones".
Una vez agregada la referencia podemos comenzar a programar.
Desde el editor de código le indicamos que vamos a utilizar nuestra librería:
Imports net.pecesama.db.OleDb
-
Imports net.pecesama.db.OleDb
Nuestra clase UI va a necesitar de dos propiedades, una para tener el objeto de conexión y otra para tener el resultado de las consultas a la BD:
Dim con As conexionOleDb
Dim dt As DataTable
-
Dim con As conexionOleDb
-
Dim dt As DataTable
A nuestra UI vamos a agregarle los siguientes elementos:

El DataGridView se llama Data y deben asignar el siguiente valor en sus propiedades SelectionMode = FullRowSelect
Los TextBoxes se llaman txtUsuario, txtPass, txtNombre respectivamente.
El DataGidView lo vamos a utilizar SOLO para ver la información, no lo usaremos en su modo de edición, esto para ver como hacer la edición desde lenguaje SQL.
En el evento Form1_Load vamos a agregar el siguiente código:
Dim rutaBD As String = Application.StartupPath + "\bd.mdb"
con = New conexionOleDb(rutaBD)
If con.conectar Then
dt = con.ejecutaSql("SELECT * FROM usuarios")
data.DataSource = dt
Else
MessageBox.Show("No se pudo conectar a la BD" + vbCrLf + vbCrLf + con.error, "Error al conectar", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
-
Dim rutaBD As String = Application.StartupPath + "\bd.mdb"
-
con = New conexionOleDb(rutaBD)
-
If con.conectar Then
-
dt = con.ejecutaSql("SELECT * FROM usuarios")
-
data.DataSource = dt
-
Else
-
MessageBox.Show("No se pudo conectar a la BD" + vbCrLf + vbCrLf + con.error, "Error al conectar", MessageBoxButtons.OK, MessageBoxIcon.Error)
-
End If
Para probar la edición de registros, vamos a agregarle un evento click a nuestro DataGridView, y en este evento (data_Click) ponemos el siguiente código:
txtUsuario.Text = data.SelectedCells(1).Value
txtPass.Text = data.SelectedCells(2).Value
txtNombre.Text = data.SelectedCells(3).Value
-
txtUsuario.Text = data.SelectedCells(1).Value
-
txtPass.Text = data.SelectedCells(2).Value
-
txtNombre.Text = data.SelectedCells(3).Value
No hay mucho que explicar en el código anterior, solo que las cajas de texto se llenan con la información del renglón seleccionado en el DataGridView.
A nuestro botón editar le ponemos en el evento btnEditar_Click el siguiente código para actualizar la BD.
Dim sqlStr As String ' aqui pondremos la consulta
' SQL para editar registros
sqlStr = "UPDATE usuarios SET usuario='" + txtUsuario.Text + "', pass='" + txtPass.Text + "', nombre='" + txtNombre.Text + "' WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
con.ejecutaSql(sqlStr) ' ejecutamos la consulta directamente en la BD
' refrescamos el DataGridView y las cajas de texto
dt = con.ejecutaSql("SELECT * FROM usuarios")
data.DataSource = dt
txtUsuario.Text = ""
txtPass.Text = ""
txtNombre.Text = ""
-
Dim sqlStr As String ‘ aqui pondremos la consulta
-
‘ SQL para editar registros
-
sqlStr = "UPDATE usuarios SET usuario=’" + txtUsuario.Text + "’, pass=’" + txtPass.Text + "’, nombre=’" + txtNombre.Text + "’ WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
-
con.ejecutaSql(sqlStr) ‘ ejecutamos la consulta directamente en la BD
-
‘ refrescamos el DataGridView y las cajas de texto
-
dt = con.ejecutaSql("SELECT * FROM usuarios")
-
data.DataSource = dt
-
txtUsuario.Text = ""
-
txtPass.Text = ""
-
txtNombre.Text = ""
Por último a nuestro botón salir en el evento btnSalir_Click le agregamos:
con.cerrarConexion()
Application.Exit()
-
con.cerrarConexion()
-
Application.Exit()
Con esto terminamos el ejemplo de como conectarnos a una base de datos en Access, como leer los datos, como editarlos y como cerrar la conexión.
Queda como ejercicio para ustedes la inserción de registros.
Actualización: Les pongo el código para insertar y eliminar en el ejemplo.
Agregue dos nuevos botones en el formulario, btnAgregar y btnEliminar.
A nuestro botón editar le ponemos en el evento btnAgregar_Click el siguiente código para insertar registros.
Dim sqlStr As String
sqlStr = "INSERT INTO usuarios (usuario, pass, nombre) VALUES ('" + txtUsuario.Text + "', '" + txtPass.Text + "', '" + txtNombre.Text + "');"
con.ejecutaSql(sqlStr)
dt = con.ejecutaSql("SELECT * FROM usuarios")
data.DataSource = dt
txtUsuario.Text = ""
txtPass.Text = ""
txtNombre.Text = ""
-
Dim sqlStr As String
-
sqlStr = "INSERT INTO usuarios (usuario, pass, nombre) VALUES (‘" + txtUsuario.Text + "’, ‘" + txtPass.Text + "’, ‘" + txtNombre.Text + "’);"
-
con.ejecutaSql(sqlStr)
-
dt = con.ejecutaSql("SELECT * FROM usuarios")
-
data.DataSource = dt
-
txtUsuario.Text = ""
-
txtPass.Text = ""
-
txtNombre.Text = ""
A nuestro botón editar le ponemos en el evento btnEliminar_Click el siguiente código para eliminar registros.
Dim sqlStr As String
sqlStr = "DELETE FROM usuarios WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
con.ejecutaSql(sqlStr)
dt = con.ejecutaSql("SELECT * FROM usuarios")
data.DataSource = dt
txtUsuario.Text = ""
txtPass.Text = ""
txtNombre.Text = ""
-
Dim sqlStr As String
-
sqlStr = "DELETE FROM usuarios WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
-
con.ejecutaSql(sqlStr)
-
dt = con.ejecutaSql("SELECT * FROM usuarios")
-
data.DataSource = dt
-
txtUsuario.Text = ""
-
txtPass.Text = ""
-
txtNombre.Text = ""
Este código se puede mejorar cambiando la declaración de Dim sqlStr As String al inicio de la clase del formulario, y crear un método para el código de refrescar el DataGridView y los TextBoxes.
Soniia Darliing
March 7, 2012 at 9:02 pm
Olp
Muxiixiimas Graciias Por Tod Loo Qee Nos Indiica Esto
Estp Noos A Ayudadoo Muxoo A Los Qee LooUtiiliizan