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.nz/#!EVN1AIbY!cL_r9DMHzLn3kmpaUA-LDge55uFO6AFWqJJJ5S_-hKY
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.nz/#!EVN1AIbY!cL_r9DMHzLn3kmpaUA-LDge55uFO6AFWqJJJ5S_-hKY
Comentarios
Publicar un comentario