martes, 6 de marzo de 2018

Conectar base de datos Access a Devcomponents Superdatagrid Control

Tras un larga temporada sin realizar un post, desde ya disculpas!...Un seguidor me ha pedido si puedo ayudarle con el tema en cuestion, para eso como ya habia hecho ejemplos relacionados, no fue dificil la peticion!... y si la realice y el codigo se expone a continuación: Primeramente el codigo que usa para coneccion, en un modulo:
Module Module1

    Public path As String = Form1.lblruta.Text
    Public conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path)
    Public cmd As New OleDb.OleDbCommand
    Public dr As OleDb.OleDbDataReader
    Public Sql As String = ""
    Public Sub conectarse()
        Try
            conn.Open()
            MsgBox("Conexion exitosa")
        Catch ex As Exception
            MsgBox(ex.ToString())
        End Try
    End Sub

    Sub LlenarGrid(ByRef grid As DevComponents.DotNetBar.SuperGrid.SuperGridControl)
        Try
            ' conectarse()
            Dim dt As New DataTable
            Dim ds As New DataSet
            Dim strSql As String = "SELECT* FROM coleccion" ' llama a la consulta completa de datos
            Dim adp As New OleDb.OleDbDataAdapter(strSql, conn) ' enlaza al adaptador de datos
            adp.Fill(ds) ' el adaptador de datos llena la datatable
            grid.PrimaryGrid.DataSource = ds
            'conecta la grid a la datatable para mostrar los datos
            ' DataGridView1.DataSource = dt
        Catch ex As Exception
            ex.ToString() ' detecta el error y llama a la ayuda de excepciones
        End Try
        conn.Close()
    End Sub
End Module
del mismo modo el codigo que va dentro del form1
Public Class Form1
    'code: Jose Luis Masache
    ' Makeplus 2018
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Dim OpenFileDialog As New OpenFileDialog
            OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            OpenFileDialog.Filter = "Base de datos Access (*.accdb)|*.accdb|Todos los archivos (*.*)|*.*"
            If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
                Dim FileName As String = OpenFileDialog.FileName
                lblruta.Text = FileName
                ' add code for open file access.
            End If
            conectarse() ' conection
            LlenarGrid(SuperGridControl1) ' fill the superdatagrid control
        Catch ex As Exception
            MsgBox("error al abrir base de datos", vbCritical)
        End Try
    End Sub

    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        'save in memory the filename
        SaveSetting("superdatagrid_dbaccess", Me.Name, Me.lblruta.Name, Me.lblruta.Text)

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'open in label "lblruta" the filename saved in memory
        lblruta.Text = GetSetting("superdatagrid_dbaccess", Me.Name, lblruta.Name, Text)
    End Sub
End Class

y ahora un captura ejecutando el form
el link de mi ejemplo:
  https://mega.nz/#!9BFyCIYK!TT7m4JqN7EPdMjbinrrrUGygB3ah95KsupAmY4W8Rg8

 y eso es todo , nos vemos muy pronto!..Bye