ADO FILTRAR DATA PARA DATAREPORT

ADRIANOM 14/06/2010 19:32:53
#344799
Uso relatório DataReport sem DataEviorment...

Gostaria que ao digitar a data em txtData (##/##/#### - 11/06/2010), fosse filtrada e somente os registros com a data referida, fosse jogado para o relatório...
Acontece que ele só avisa que nao está encontrando o registro com a data, sendo que o registro está la. (Nenhum registro encontrado com o período informado.)
Vou postar o codigo que uso, e por favor, ajudem a achar o erro;

Dim objRS As ADODB.Recordset

If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else

Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao like [ô][Ô] & txtDevolucao.Text & [Ô]*[ô] order by Codigo[Ô])

If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS

[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Código.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o período informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If

agradeço...
JESUEL.OLIVEIRA 14/06/2010 20:22:03
#344801
Amigo, tente usar

Tira o LIKE e coloca = sem apostrofe

Obs o campo TXTDEVOLUÇÃO for data precisa formatar de acordo com o banco YYYY/MM/DD

  Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = [Ô] & txtDevolucao.Text & [Ô] order by Codigo[Ô])   


Se for periodo DE ATé

 [Ô]SELECT tbl_9828.* From tbl_9828 WHERE (((tbl_9828.MinhaData) Between #[Ô] & Format(Me.mask1.Text, [Ô]mm/dd/yy[Ô]) & [Ô]# And #[Ô] & Format(Me.mask2.Text, [Ô]mm/dd/yy[Ô]) & [Ô]#));[Ô]  
ADRIANOM 14/06/2010 20:53:07
#344803
Caro amigo... coloquei o código e deu o mesmo aviso: MsgBox [Ô]Nenhum registro encontrado com o período informado.[Ô], vbInformation, [Ô]JusSoft[Ô]

Não é perído [Ô]DE ATé[Ô]... é período exato... em outras palavras, serão filtradas todos os registros com aquela data digitada (formato DD/MM/YYYY).

Estou usando Banco de Dados Access, VB6...

Não estou entendendo... os outros formulários funciona, mas este não.. e olha que eu troquei apenas o campo de busca...
onde está o erro???
JESUEL.OLIVEIRA 14/06/2010 21:31:42
#344806
Verifica o formato do campo que esta no BD.
testa o rotina com outras tabelas da sua base, posta seu banco somente com a tabela em questão com meia duzia de dados.
ADRIANOM 14/06/2010 21:36:38
#344807
O carater do campo é texto.. mas está certo pq nao defino a data obrigatoriamente como data..
eu estou usando o mesmo campo, comparando entre datas e está dando certo.. agora com apenas uma data está dando pau...
nao estou entendendo nada...
ADRIANOM 15/06/2010 00:16:47
#344817
Ajudaaaaaa
MARCELO.TREZE 15/06/2010 06:06:26
#344820
adriano o campo precisa ser do tipo DATA/HORA no banco.

se vc usa um BANCO ACCESS

é assim o formato de ve ser #mm/dd/yyyy#

Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = #[Ô] & Format(txtDevolucao.Text,[Ô]mm/dd/yyyy[Ô]) & [Ô]# order by Codigo[Ô])


se o banco for MySQL ou SQLserver

o formato é [ô]YYYY-MM-DD[ô]

assim

Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = [ô][Ô] & Format(txtDevolucao.Text,[Ô]YYYY-MM-DD[Ô]) & [Ô][ô] order by Codigo[Ô])


veja bem as consultas acima funcionarão apenas quando vc digitar toda data no campo e der um enter, e não como deseja ou seja preencher ao ir digitando, pois se trata de data.

espero ter ajudado
ADRIANOM 15/06/2010 08:45:42
#344824
Tudo bem... sei que será após o Enter...
mas me explica uma coisa..
no momento em que criei a tabela (MPDevolucao) e o campo DataDevolucao, eu não a defini como data, eu a defini como texto...
essa máscara funcionará mesmos sendo em um campo definido como texto, estado os dados dispostos em dd/mm/yyyy?
ADRIANOM 15/06/2010 08:51:12
#344827
Tentei e não deu certo, não filtrou!

Não entendo, está tudo certo....
ADRIANOM 15/06/2010 09:37:00
#344838
CONSEGUIIIII

SOLUÇÃO ENCONTRADA EM WWW.MACORATTI.NET

POSTAREI COMO FICOU O CÓDIGO, CASO ALGUéM VENHA PESQUISAR NO FÓRUM

Dim objRS As ADODB.Recordset

If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else

Set objRS = objBD.Execute([Ô]select * from MPDevolucao where DataDevolucao like [ô]%[Ô] & txtDevolucao.Text & [Ô]%[ô][Ô])

If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS

[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Nome.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o período informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If


GRATO A TODOS PELA BOA VONTADE E ESFORÇO EM ME AJUDAR...
Tópico encerrado , respostas não são mais permitidas