vbnet-access-oledb

Dejo un mini proyecto VB NET con ACCESS para programadores que se inician en este campo.

El Ejemplo es muy simple: se trata de hacer un par de busquedas sobre la tabla Empleados de NEPTUNO.MDB, la cual consiste en buscar empleados por su año de nacimiento.

La conexion se hace mediante la libreria OLEDB.

Hay dos versiones para hacer la busqueda: Mediante un parseo de variable STRING y otro con conversion de tipo FECHA.

Version 1

Private Sub btnAño_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAño.Click
Dim stringConexion As String
Dim sql As String
Dim item As String
stringConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\itc\neptuno.mdb;User Id=admin;Password=;"
sql = "SELECT Nombre,Apellidos,Cargo,FechaNacimiento FROM Empleados"
Try
'declaro conexion a base de datos Access
Dim cnn As New OleDbConnection(stringConexion)
Dim cmd As New OleDbCommand(sql, cnn)
Dim reader As OleDbDataReader
'abro la conexion
cnn.Open()
'ejecutar con resultados
reader = cmd.ExecuteReader()
lstAñoNacimiento.Items.Clear()
'recorremos el objeto reader hasta el final
While reader.Read
Dim año As String
año = reader("FechaNacimiento").ToString().Substring(6, 4)
If año = txtAño.Text Then
item = reader("Nombre") & " " & reader("Apellidos")
item &= " " & reader("cargo") & " " & reader("FechaNacimiento")
lstAñoNacimiento.Items.Add(item)
End If
End While
reader.Close() 'cerrar los datos
cnn.Close() 'cerrar conexion
MessageBox.Show("Fin Carga Datos")

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Version 2

Private Sub btnBuscar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar2.Click
Dim stringConexion As String
Dim sql As String
Dim item As String
stringConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\itc\neptuno.mdb;User Id=admin;Password=;"
sql = "SELECT Nombre,Apellidos,Cargo,FechaNacimiento FROM Empleados"

'declaro conexion a base de datos Access
Dim cnn As New OleDbConnection(stringConexion)
Dim cmd As New OleDbCommand(sql, cnn)
Dim reader As OleDbDataReader

Try

'abro la conexion
cnn.Open()
'ejecutar con resultados
reader = cmd.ExecuteReader()
lstAñoNacimiento.Items.Clear()
'recorremos el objeto reader hasta el final
While reader.Read
Dim fecha As Date
fecha = reader("FechaNacimiento").ToString()
If fecha.Year = txtAño.Text Or txtAño.Text = String.Empty Then
item = reader("Nombre") & " " & reader("Apellidos")
item &= " " & reader("cargo") & " " & reader("FechaNacimiento")
lstAñoNacimiento.Items.Add(item)
End If
End While

MessageBox.Show("Fin Carga Datos")

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
reader.Close() 'cerrar los datos
cnn.Close() 'cerrar conexion

End Try
End Sub

Una vez hecha la consulta, se llena el LISTBOX como muestra la figura.

vbnet-access-oledb

vbnet-access-oledb

Si no ingresan el año, arroja un error … queda de Tarea 🙂

mini-ejemplo-vbnet