Información de una base de datos Access

WebProgramacion > Recursos sobre informática y tecnología > Programacion > VB.NET > Información de una base de datos Access
Autor: Dámaso Velázquez Álvarez

Incialmente hacemos:

Imports System.Data.OleDb

Y posteriormente:

Dim bbdd As OleDbConnection
Dim sConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\base.mdb"
bbdd = New OleDb.OleDbConnection(sConnString)
Dim dt As DataTable
dt = bbdd.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
Dim lista As ArrayList
lista = New ArrayList()
Dim intCount As Integer
For intCount = 0 To dt.Rows.Count - 1
   If Not dt.Rows(intCount)(dt.Columns(2).ColumnName).ToString.StartsWith("MSys") Then
      lista.Add(dt.Rows(intCount)(dt.Columns(2).ColumnName).ToString)
   End If
Next
bbdd.Close()
lista.Sort()

Esta rutina nos proporciona un objeto de la clase ArrayList con los nombres de todas las tablas que tiene la base de datos.

Ahora para obtener el nombre de los campos realizamos una consulta que no nos devuelva datos (para que sea más rápido) y procedemos a analizar las columnas que se ha "traído". Veámos el código:

Dim bbdd As OleDbConnection
Dim sConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\base.mdb"
bbdd.Open()
Dim lista As ArrayList
lista = New ArrayList()
Dim ds As DataSet
ds = New DataSet()
Dim cm As OleDbCommand
cm = New OleDbCommand("SELECT * FROM " & tabla_de_la_que_deseamos_informacion_de_sus_campos & " WHERE 1=2", bbdd)
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter(cm)
da.Fill(ds)
Dim i As Integer
For i = 0 To ds.Tables(0).Columns.Count - 1
   lista.Add(ds.Tables(0).Columns(i).ColumnName)
Next
bbdd.Close()
lista.Sort()

También generamos una lista con el nombre de cada uno de los campos de la tabla en cuestión.