PESQUISA COM DATA
Boa tarde
Tenho um datagridview aonde faço uma pesquisa entre datas do mesmo campo, segue código:
Code> TBContasPagarBidingSource;Filter = [Ô]DataVencimento >=[Ô] + [Ô][ô][Ô] + dtpDataInicio.Value + [Ô][Ô][Ô] + [Ô]AND DataVencimento =[Ô] + [Ô][ô][Ô] + dtpDataFinal.value + [Ô][ô][Ô] + [Ô]AND Pago = [ô]Não[ô][Ô]</Code>
O código funciona bem, mas apresenta um problema:
Ao pesquisar data inicio 12/03/2015 e data de final 12/03/2015 o resultado é nulo mesmo havendo registros na data.
Para visualizar os registros do dia 12 tenho que iniciar a pesquisa no dia 11. e finalizar no dia 12; Por que?
Ao entrar com datas como 01/01/2015 para o inicio e 10/03/2015 para o fim só apresenta os dados do dia 02/01/2015 em diante.
Ou seja, a data de inicio está sendo ignorada. Só não sei o motivo. Espero que possam me ajudar.
Grato
Tenho um datagridview aonde faço uma pesquisa entre datas do mesmo campo, segue código:
Code> TBContasPagarBidingSource;Filter = [Ô]DataVencimento >=[Ô] + [Ô][ô][Ô] + dtpDataInicio.Value + [Ô][Ô][Ô] + [Ô]AND DataVencimento =[Ô] + [Ô][ô][Ô] + dtpDataFinal.value + [Ô][ô][Ô] + [Ô]AND Pago = [ô]Não[ô][Ô]</Code>
O código funciona bem, mas apresenta um problema:
Ao pesquisar data inicio 12/03/2015 e data de final 12/03/2015 o resultado é nulo mesmo havendo registros na data.
Para visualizar os registros do dia 12 tenho que iniciar a pesquisa no dia 11. e finalizar no dia 12; Por que?
Ao entrar com datas como 01/01/2015 para o inicio e 10/03/2015 para o fim só apresenta os dados do dia 02/01/2015 em diante.
Ou seja, a data de inicio está sendo ignorada. Só não sei o motivo. Espero que possam me ajudar.
Grato
Amigo, você está comparando a data final com igual ( = ), o correto seria menor ou igual ( <= )
TBContasPagarBidingSource.Filter = [Ô]DataVencimento >=[Ô] + [Ô][ô][Ô] + dtpDataInicio.Value + [Ô][Ô][Ô] + [Ô]AND DataVencimento <=[Ô] + [Ô][ô][Ô] + dtpDataFinal.value + [Ô][ô][Ô] + [Ô]AND Pago = [ô]Não[ô][Ô]
Atente para garantir o mesmo formato em todas as datas, ja fui pego c essas datas ate dia 12 o mes estando no lugar do dia, aprendi depois a sempre forçar um formato
Talvez você deva optar por BETWEEN...
Bom dia
Já tentei usar BETWENN mas dá o seguinte erro: Falta Operador antes de BETWEEN
Se souberem como usar BETWEEN com BidingSource;Filter ficarei agradecido.
No código está <=; Errei aqui no fórum ao digitar
Já tentei usar BETWENN mas dá o seguinte erro: Falta Operador antes de BETWEEN
Se souberem como usar BETWEEN com BidingSource;Filter ficarei agradecido.
No código está <=; Errei aqui no fórum ao digitar
Dim Data1 As Date
Dim Data2 As Date
Data1 = DTPicker1
Data2 = DTPicker2
connect
rs.Open [Ô]SELECT * From ContasPagar where (((Pago) Like [ô][Ô] & [Ô]NÃO[Ô] & [Ô][ô])) AND DataVencimento BetWeen #[Ô] & Format$(Data1, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format$(Data2, [Ô]mm/dd/yyyy[Ô]) & [Ô]# ;[Ô]
Set datagridview.DataSource = rs
Dim Data2 As Date
Data1 = DTPicker1
Data2 = DTPicker2
connect
rs.Open [Ô]SELECT * From ContasPagar where (((Pago) Like [ô][Ô] & [Ô]NÃO[Ô] & [Ô][ô])) AND DataVencimento BetWeen #[Ô] & Format$(Data1, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format$(Data2, [Ô]mm/dd/yyyy[Ô]) & [Ô]# ;[Ô]
Set datagridview.DataSource = rs
em modulo bas
cria a conecção
Public CON As ADODB.Connection
Public rs As ADODB.Recordset
Sub Connect()
Set CON = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])
CON.Open [Ô]Provider = Microsoft.Jet.OLEDB.4.0;Data Source = [Ô]SEU CAMINHO DO BANCO[Ô]
rs.CursorLocation = adUseClient
End Sub
Sub Disconnect()
On Error GoTo TrataErro10
rs.Close
CON.Close
TrataErro10:
If Err.Number = 3265 Then
MsgBox [Ô]Erro de dados[Ô]
End If
Set rs = Nothing
Set CON = Nothing
End Sub
cria a conecção
Public CON As ADODB.Connection
Public rs As ADODB.Recordset
Sub Connect()
Set CON = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])
CON.Open [Ô]Provider = Microsoft.Jet.OLEDB.4.0;Data Source = [Ô]SEU CAMINHO DO BANCO[Ô]
rs.CursorLocation = adUseClient
End Sub
Sub Disconnect()
On Error GoTo TrataErro10
rs.Close
CON.Close
TrataErro10:
If Err.Number = 3265 Then
MsgBox [Ô]Erro de dados[Ô]
End If
Set rs = Nothing
Set CON = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas