Cargar campos de BD Access en ComboBox

Un saludo programadores, creo me ausentado un poco con mis publicaciones. Sin embargo regreso con el mismo aliento para entregarles proyectos en VB2010 y es posible algunos en VB2012 que sean útiles en la creación de aplicaciones por Uds.

Como, dice el tema en esta entrada vamos a cargar los campos o columnas de una tabla en base de datos Access, primeramente les muestro una captura del diseño de mi proyecto:


 Para ello haremos una clase para conectar la base de datos Access:

Clase:Conectar
Imports System.Data
Imports System.Data.OleDb
Public Class Conectar
    Public Class ConectarBase
        Public dt As DataTable
        Public da As OleDbDataAdapter
        Public fila As Integer
        Public ds As New DataSet
        Public Function Conectar(ByVal dirPath As String, ByVal tabla As String) As String
            Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dirPath
            ' La cadena de selección
            Dim sSel As String = tabla
            ' Comprobar si hay algún error
            Try
                ' Crear un nuevo objeto del tipo DataAdapter
                da = New OleDbDataAdapter(sSel, sCnn)
                ' Crear los comandos de insertar, actualizar y eliminar
                Dim cb As New OleDbCommandBuilder(da)
                ' Como hay campos con caracteres especiales,
                ' al usarlos incluirlos entre corchetes.
                cb.QuotePrefix = "["
                cb.QuoteSuffix = "]"
                ' Asignar los comandos al DataAdapter
                ' (se supone que lo hace automáticamente, pero...)
                '   da.UpdateCommand = cb.GetUpdateCommand
                da.InsertCommand = cb.GetInsertCommand
                '  da.DeleteCommand = cb.GetDeleteCommand
                ' Esta base de datos usa el ID con valores automáticos
                ' da.MissingSchemaAction = MissingSchemaAction.AddWithKey
                dt = New DataTable
                ' Llenar la tabla con los datos indicados
                da.Fill(dt)
            Catch ex As Exception
                MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & _
      ex.Message, "Conectar con la base", _
                                                  MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
            Return Conectar
        End Function
    End Class

Muy bien ahora la rutina cargar Combo:
 Sub Cargarcombo()
        Try
            Dim contador As Integer = grid1.Rows.Count - 1
            Dim ruta As String
            Dim tab As String = "SELECT * FROM Tdata  ORDER BY n"
            ruta = System.AppDomain.CurrentDomain.BaseDirectory
            ruta &= "\datac.mdb"
            conex.Conectar(ruta, tab) 'direccion de la base de datos
            ' tabla = connex.dt
            grid1.DataSource = conex.dt ' muestra la grid cargada
            Dim i As Integer ' carga lo campos de la tabla de BDAccess en el combo
            For i = 1 To conex.dt.Columns.Count - 1
                ComboBox1.Items.Add(conex.dt.Columns(i).ColumnName.ToString)
            Next
        Catch ex As Exception
            MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & _
ex.Message, "Conectar con la base", _
 MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

Y por ultimo la codificacion en el form

 Public conex As New Conectar.ConectarBase 'llama la clase Conectar
    Dim datafila As DataRow
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Cargarcombo()
    End Sub

Y mi captura:




Mi proyecto: https://docs.google.com/open?id=0B-UGWA03tc5ZMGVwOHk4VlNFZEE






Comentarios

Entradas populares de este blog

Imprimir directamente ReportViewer a impresora predeterminada

DevComponents DotnetBar 12.5.0.2

Metodo Iterativo Gauss-Seidel en Visual Basic