sábado, 8 de marzo de 2014

Buscar entre 2 fechas en Datagridview conectado a BD Access

Hola que tal, bastante me he tardado haciendo un nuevo post creo..verdad?. Bueno  la finalidad de esta App es buscar datos en un rango de fechas de una base de datos Access con password (pass="matrix")  conectada a un Datagridview.

Haciendo uso de sentencias SQL para realizar la consulta, y usando dos DateTimePicker con propiedades:
Format : Custom y  y CustomFormat=" MM/dd/yyy"(mes, dia, año) se puede hallar la forma mas rapida para realizar busquedas entre dos rangos de fechas.

Sin mas que decir creo la codificacion sencilla lo explica mejor:
Imports System.Data.OleDb
Public Class Form1
    Dim conex As New Conexion
    Dim ruta As String
    Public dtt As DataTable
    Dim ds As New DataSet
    Dim dap As OleDb.OleDbDataAdapter
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Try
            Dim fecha1 As String
            Dim fecha2 As String
            fecha1 = "#" + Datetime1.Text + "#"
            fecha2 = "#" + Datetime2.Text + "#"
            ' var1 = "#" + txtnombre.Text + "#"
            Dim tab As String = "Select* From tabla1 WHERE FECHA BETWEEN" & fecha1 & " AND" & fecha2
            conex.Conectar(ruta, tab)
            dtt = conex.dt
            DataGridView1.DataSource = dtt
            contarrows()
        Catch ex As Exception
            MsgBox("Error Inesperado")
        End Try
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            cargargrid()
        Catch ex As Exception
            MsgBox("error al abrir base de datos", vbCritical)
        End Try
    End Sub
    Sub cargargrid()
        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
                ruta = OpenFileDialog.FileName
                ' TODO: agregue código aquí para abrir el archivo.
            End If
            Dim tab As String = "Select * From tabla1"
            conex.Conectar(ruta, tab)
            dtt = conex.dt
            DataGridView1.DataSource = dtt
            contarrows()
        Catch ex As Exception

        End Try
    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cargargrid()
    End Sub
    Sub contarrows()
        Dim i As Integer
        i = DataGridView1.Rows.Count
        lblcontador.Text = "Número de filas = " & i
    End Sub
End Class

 El la funcion dentro del módulo que hace la coneccion a la BD


Imports System.Data.OleDb
Module Module1
    Public Class Conexion
        Public dt As DataTable
        Public da As OleDbDataAdapter
        Public fila As Integer
        Public ds As New DataSet
        Dim dtw As DataRow
        Public Function Conectar(ByVal dirPath As String, ByVal tabla As String) As String
            Try
                Dim sCnn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dirPath & ";Jet OLEDB:Database Password=matrix;"
                Dim sSel As String = tabla
                ' Crear un nuevo objeto del tipo DataAdapter
                da = New OleDbDataAdapter(sSel, sCnn)
                Dim cb As New OleDbCommandBuilder(da)
                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
End Module


Ahora el pantallazo
 





 Como se aprecia en la Datagridview estan cargados todos los datos y se ve con fechas en desorden
 Ahora escojamos un rango de fechas que esten dentro de la bd, elijamos "01/03/2014" y "05/03/2014 y veremos cuantos items(rows) son encontrados en este rango.



El contador en la parte inferior nos dice = 4 y asi es.

Sin mas explicar les dejo mi ejemplo en el siguiente link y alguna sugerencia o pregunta ya saben a mi correo
en la parte superior. Nos vemos en otra entrega

Link :  https://mega.co.nz/#!1YMHCTwb!cL_r9DMHzLn3kmpaUA-LDge55uFO6AFWqJJJ5S_-hKY