Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fauze

Filtrar registros entre duas datas usando DBF

Recommended Posts

Pessoal,

 

Preciso acessar um arquivo DBF, e selecionar registro entre duas datas, alguem sabe como fazer ?

dtIni = CDate("01/01/1997")
   dtFim = CDate("30/01/1997")

   Conexão_Joiner.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\softdiet\_Projetos\dbfs;" & "Extended Properties=Dbase IV;"
   rstMovimento.Open "select * from far03 Where Data > " & dtIni & " and Data < " & dtFim & " ORDER BY data", Conexão_Joiner, adOpenKeyset, adLockPessimistic

No dbf tem registros a partir de 01/01/1996.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fauze,

 

Vai um exemplo no mysql, mas tenho certeza que irá de ajudar.

Private Sub cmdOk_Click()
Dim Inicial As String
Dim Final As String

Inicial = Format(dtFrom.Value, "YY/mm/dd")
Final = Format(dtTo.Value, "YY/mm/dd")

If dtFrom.Value > dtTo.Value Then
MsgBox " A data inicial deverá ser menor ou igual data final", vbInformation, "Data Inválida"
Exit Sub
End If
Set rsTemp = New ADODB.Recordset
rsTemp.Open "select fatura.n_fatura,cliente.cod_cliente,cliente.nome_cliente,funcionario.cod_funcion
ario,funcionario.nome_funcionario,fatura.total_fatura,fatura.desconto,fatura.paga
mento,fatura.troco,fatura.forma_pagto,fatura.vencimento,fatura.data_fatura from fatura,cliente,funcionario where fatura.cod_cliente=cliente.cod_cliente and fatura.cod_funcionario=funcionario.cod_funcionario and data_fatura between '" & Inicial & "' AND '" & Final & "' order by data_fatura", mycon, adOpenKeyset, adLockPessimistic
With rsTemp
If .RecordCount > 0 Then
ListViewFaturamento.ListItems.Clear
'Preenche o controle listview com os dados da tabela
Call ListaFaturamento
Else
MsgBox "Não existem transacções para esse período !", vbInformation, "Período"
ListViewFaturamento.ListItems.Clear
Exit Sub
End If
.Close
End With
txttotal.Text = (Format(Faturamento, "currency"))
txtdesconto.Text = (Format(Desconto, "currency"))
txtliquido.Text = Format(txttotal.Text - txtdesconto.Text, "currency")

End Sub

Um abraço.

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fauze,

 

Deu algum erro com o seu código? Ou não trouxe os registros esperados?

 

Normalmente é o formato da data que da m***** em tudo.

 

Veja como é inserido a data na tabela, faça o select com o mesmo formato que foi inserido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

FAUSE NÃO SEI SE ÉXISTE O BETWEEN NO BDF, SE HOUVER TENTE O SEGUINTE:

SELECT * FROM mapcrim AS A, natureza AS B WHERE A.DDNat=B.NatCod

AND CampoX = "___" AND CampoY LIKE

"%___%" AND CampoZ(DDData) BETWEEN "ano/mês/dia" AND "ano/mês/dia"

rstMovimento.Open "select * from far03 Where Data BETWEEN "ano/mês/dia" AND "ano/mês/dia", Conexão_Joiner, adOpenKeyset, adLockPessimistic

 

Espero ter ajudado a você ou a outros.

 

PS.: no VB com Mysql funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.