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 :P ).

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:

clase

referencias 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:

vb.net [Show Plain Code]:
  1. 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:

vb.net [Show Plain Code]:
  1. Dim con As conexionOleDb
  2. Dim dt As DataTable

A nuestra UI vamos a agregarle los siguientes elementos:

interfaz

El DataGridView se llama Data y deben asignar el siguiente valor en sus propiedades SelectionMode = FullRowSelect

Los TextBoxes se llaman txtUsuariotxtPass, 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:

vb.net [Show Plain Code]:
  1. Dim rutaBD As String = Application.StartupPath + "\bd.mdb"
  2. con = New conexionOleDb(rutaBD)
  3. If con.conectar Then
  4.         dt = con.ejecutaSql("SELECT * FROM usuarios")
  5.         data.DataSource = dt
  6. Else
  7.         MessageBox.Show("No se pudo conectar a la BD" + vbCrLf + vbCrLf + con.error, "Error al conectar", MessageBoxButtons.OK, MessageBoxIcon.Error)
  8. 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:

vb.net [Show Plain Code]:
  1. txtUsuario.Text = data.SelectedCells(1).Value
  2. txtPass.Text = data.SelectedCells(2).Value
  3. 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.

vb.net [Show Plain Code]:
  1. Dim sqlStr As String ‘ aqui pondremos la consulta
  2. ‘ SQL para editar registros
  3. sqlStr = "UPDATE usuarios SET usuario=’" + txtUsuario.Text + "’, pass=’" + txtPass.Text + "’, nombre=’" + txtNombre.Text + "’ WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
  4. con.ejecutaSql(sqlStr) ‘ ejecutamos la consulta directamente en la BD
  5. ‘ refrescamos el DataGridView y las cajas de texto
  6. dt = con.ejecutaSql("SELECT * FROM usuarios")
  7. data.DataSource = dt
  8. txtUsuario.Text = ""
  9. txtPass.Text = ""
  10. txtNombre.Text = ""

Por último a nuestro botón salir en el evento btnSalir_Click le agregamos:

vb.net [Show Plain Code]:
  1. con.cerrarConexion()
  2. 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.

vb.net [Show Plain Code]:
  1. Dim sqlStr As String
  2. sqlStr = "INSERT INTO usuarios (usuario, pass, nombre) VALUES (’" + txtUsuario.Text + "’, ‘" + txtPass.Text + "’, ‘" + txtNombre.Text + "’);"
  3. con.ejecutaSql(sqlStr)
  4. dt = con.ejecutaSql("SELECT * FROM usuarios")
  5. data.DataSource = dt
  6. txtUsuario.Text = ""
  7. txtPass.Text = ""
  8. txtNombre.Text = ""

A nuestro botón editar le ponemos en el evento btnEliminar_Click el siguiente código para eliminar registros.

vb.net [Show Plain Code]:
  1. Dim sqlStr As String
  2. sqlStr = "DELETE FROM usuarios WHERE id_usuario=" + data.SelectedCells(0).Value.ToString()
  3. con.ejecutaSql(sqlStr)
  4. dt = con.ejecutaSql("SELECT * FROM usuarios")
  5. data.DataSource = dt
  6. txtUsuario.Text = ""
  7. txtPass.Text = ""
  8. 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.